From 04d9d5f35d7ce9cb0a4f2cfb7f0d34a96d9b5b24 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Mon, 18 Dec 2023 16:30:18 +0000 Subject: [PATCH 1/9] CHORE: Workspace level Cargo.toml --- .gitignore | 1 + fendermint/Cargo.lock => Cargo.lock | 470 +- fendermint/Cargo.toml => Cargo.toml | 110 +- fendermint/LICENSE-APACHE => LICENSE-APACHE | 0 fendermint/LICENSE-MIT => LICENSE-MIT | 0 README.md | 23 +- contracts/binding/Cargo.lock | 4589 ----------------- fvm-utils/Cargo.toml | 16 - fvm-utils/runtime/src/lib.rs | 1 - fvm-utils/src/lib.rs | 2 - ipc/ipc/cli/Cargo.toml | 47 +- ipc/ipc/identity/Cargo.toml | 26 +- ipc/ipc/ipld/resolver/README.md | 3 - ipc/ipc/provider/Cargo.toml | 20 +- ipc/ipc/sdk/Cargo.toml | 13 +- ipld-resolver/Cargo.toml | 77 +- ipld-resolver/LICENSE | 21 - ipld-resolver/rust-toolchain.toml | 4 - ...rust-toolchain.toml => rust-toolchain.toml | 0 fendermint/rustfmt.toml => rustfmt.toml | 2 +- 20 files changed, 487 insertions(+), 4938 deletions(-) create mode 100644 .gitignore rename fendermint/Cargo.lock => Cargo.lock (96%) rename fendermint/Cargo.toml => Cargo.toml (68%) rename fendermint/LICENSE-APACHE => LICENSE-APACHE (100%) rename fendermint/LICENSE-MIT => LICENSE-MIT (100%) delete mode 100644 contracts/binding/Cargo.lock delete mode 100644 fvm-utils/Cargo.toml delete mode 100644 fvm-utils/src/lib.rs delete mode 100644 ipc/ipc/ipld/resolver/README.md delete mode 100644 ipld-resolver/LICENSE delete mode 100644 ipld-resolver/rust-toolchain.toml rename fendermint/rust-toolchain.toml => rust-toolchain.toml (100%) rename fendermint/rustfmt.toml => rustfmt.toml (56%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..2f7896d1d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/fendermint/Cargo.lock b/Cargo.lock similarity index 96% rename from fendermint/Cargo.lock rename to Cargo.lock index 3d017b4196..fc3500abc1 100644 --- a/fendermint/Cargo.lock +++ b/Cargo.lock @@ -206,9 +206,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" dependencies = [ "anstyle", "anstyle-parse", @@ -226,30 +226,30 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -410,9 +410,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" dependencies = [ "async-lock", "cfg-if", @@ -421,7 +421,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 0.38.25", + "rustix 0.38.28", "slab", "tracing", "windows-sys 0.52.0", @@ -429,9 +429,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.1.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ "event-listener 4.0.0", "event-listener-strategy", @@ -456,7 +456,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -698,7 +698,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1187,9 +1187,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.10" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" dependencies = [ "clap_builder", "clap_derive", @@ -1197,9 +1197,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" dependencies = [ "anstream", "anstyle", @@ -1207,6 +1207,15 @@ dependencies = [ "strsim 0.10.0", ] +[[package]] +name = "clap_complete" +version = "4.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae" +dependencies = [ + "clap 4.4.11", +] + [[package]] name = "clap_derive" version = "4.4.7" @@ -1216,7 +1225,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1285,9 +1294,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] @@ -1340,9 +1349,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" @@ -1390,9 +1399,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -1400,9 +1409,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -1569,9 +1578,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1579,9 +1588,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -1590,22 +1599,21 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1613,9 +1621,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -1765,7 +1773,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1781,6 +1789,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "darling" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c" +dependencies = [ + "darling_core 0.12.4", + "darling_macro 0.12.4", +] + [[package]] name = "darling" version = "0.14.4" @@ -1801,6 +1819,20 @@ dependencies = [ "darling_macro 0.20.3", ] +[[package]] +name = "darling_core" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + [[package]] name = "darling_core" version = "0.14.4" @@ -1826,7 +1858,18 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.39", + "syn 2.0.41", +] + +[[package]] +name = "darling_macro" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a" +dependencies = [ + "darling_core 0.12.4", + "quote", + "syn 1.0.109", ] [[package]] @@ -1848,7 +1891,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1947,7 +1990,16 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", +] + +[[package]] +name = "derive_builder" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d13202debe11181040ae9063d739fa32cfcaaebe2275fe387703460ae2365b30" +dependencies = [ + "derive_builder_macro 0.10.2", ] [[package]] @@ -1956,7 +2008,19 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" dependencies = [ - "derive_builder_macro", + "derive_builder_macro 0.11.2", +] + +[[package]] +name = "derive_builder_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66e616858f6187ed828df7c64a6d71720d83767a7f19740b2d1b6fe6327b36e5" +dependencies = [ + "darling 0.12.4", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -1971,13 +2035,23 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_builder_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58a94ace95092c5acb1e97a7e846b310cfbd499652f72297da7493f618a98d73" +dependencies = [ + "derive_builder_core 0.10.2", + "syn 1.0.109", +] + [[package]] name = "derive_builder_macro" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" dependencies = [ - "derive_builder_core", + "derive_builder_core 0.11.2", "syn 1.0.109", ] @@ -2071,7 +2145,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2322,6 +2396,19 @@ dependencies = [ "regex", ] +[[package]] +name = "env_logger" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -2504,7 +2591,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.39", + "syn 2.0.41", "toml 0.8.8", "walkdir", ] @@ -2522,7 +2609,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2548,7 +2635,7 @@ dependencies = [ "serde", "serde_json", "strum 0.25.0", - "syn 2.0.39", + "syn 2.0.41", "tempfile", "thiserror", "tiny-keccak", @@ -2742,7 +2829,7 @@ checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b" dependencies = [ "execute-command-tokens", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2762,9 +2849,9 @@ dependencies = [ [[package]] name = "eyre" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f656be11ddf91bd709454d15d5bd896fbaf4cc3314e69349e4d1569f5b46cd" +checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799" dependencies = [ "indenter", "once_cell", @@ -2883,7 +2970,7 @@ version = "0.1.0" dependencies = [ "bytes", "cid", - "clap 4.4.10", + "clap 4.4.11", "fendermint_vm_actor_interface", "fvm_ipld_encoding 0.3.3", "fvm_shared", @@ -2932,7 +3019,7 @@ dependencies = [ "async-trait", "axum", "cid", - "clap 4.4.10", + "clap 4.4.11", "erased-serde", "ethers", "ethers-core", @@ -2999,7 +3086,7 @@ dependencies = [ "base64 0.21.5", "bytes", "cid", - "clap 4.4.10", + "clap 4.4.11", "ethers", "fendermint_crypto", "fendermint_vm_actor_interface", @@ -3268,7 +3355,7 @@ dependencies = [ "async-stm", "async-trait", "cid", - "clap 4.4.10", + "clap 4.4.11", "ethers", "fvm_ipld_encoding 0.3.3", "fvm_shared", @@ -3328,7 +3415,6 @@ dependencies = [ [[package]] name = "fil_actors_runtime" version = "0.0.1" -source = "git+https://github.com/consensus-shipyard/fvm-utils#368ad258a82204d0004b7321f1015373fb4d17b9" dependencies = [ "anyhow", "base64 0.13.1", @@ -3336,6 +3422,7 @@ dependencies = [ "byteorder", "castaway", "cid", + "derive_builder 0.10.2", "frc42_dispatch", "fvm_ipld_amt 0.4.2", "fvm_ipld_blockstore", @@ -3344,6 +3431,7 @@ dependencies = [ "fvm_sdk", "fvm_shared", "getrandom 0.2.11", + "hex", "indexmap 1.9.3", "integer-encoding", "itertools 0.10.5", @@ -3684,9 +3772,9 @@ checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-lite" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" dependencies = [ "futures-core", "pin-project-lite", @@ -3710,7 +3798,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4275,9 +4363,9 @@ checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" [[package]] name = "hkdf" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ "hmac 0.12.1", ] @@ -4324,11 +4412,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4355,9 +4443,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -4376,11 +4464,17 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -4393,7 +4487,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -4446,7 +4540,7 @@ dependencies = [ "futures-util", "http", "hyper", - "rustls 0.21.9", + "rustls 0.21.10", "tokio", "tokio-rustls 0.24.1", ] @@ -4622,6 +4716,12 @@ dependencies = [ "hashbrown 0.14.3", ] +[[package]] +name = "indoc" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" + [[package]] name = "inout" version = "0.1.3" @@ -4676,10 +4776,51 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" +[[package]] +name = "ipc-cli" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-channel", + "async-trait", + "base64 0.21.5", + "bytes", + "cid", + "clap 4.4.11", + "clap_complete", + "env_logger 0.10.1", + "ethers", + "ethers-contract", + "fil_actors_runtime 11.0.0", + "futures-util", + "fvm_ipld_encoding 0.3.3", + "fvm_shared", + "hex", + "ipc-identity", + "ipc-provider", + "ipc-sdk", + "libsecp256k1", + "log", + "num-derive", + "num-traits", + "primitives", + "reqwest", + "serde", + "serde_bytes", + "serde_json", + "serde_tuple", + "strum 0.24.1", + "thiserror", + "tokio", + "tokio-tungstenite 0.18.0", + "toml 0.7.8", + "url", + "zeroize", +] + [[package]] name = "ipc-identity" version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/ipc.git?branch=dev#68d5c10e5f801dd3e89f96e39dff5144489861f0" dependencies = [ "ahash 0.8.6", "anyhow", @@ -4694,11 +4835,15 @@ dependencies = [ "libsecp256k1", "log", "primitives", + "quickcheck 1.0.3", + "quickcheck_macros", "rand 0.8.5", "serde", "serde_ipld_dagcbor", "serde_json", + "tempfile", "thiserror", + "tokio", "xsalsa20poly1305", "zeroize", ] @@ -4706,7 +4851,6 @@ dependencies = [ [[package]] name = "ipc-provider" version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/ipc.git?branch=dev#68d5c10e5f801dd3e89f96e39dff5144489861f0" dependencies = [ "anyhow", "async-channel", @@ -4717,11 +4861,12 @@ dependencies = [ "dirs", "ethers", "ethers-contract", - "fil_actors_runtime 0.0.1", + "fil_actors_runtime 11.0.0", "futures-util", "fvm_ipld_encoding 0.3.3", "fvm_shared", "hex", + "indoc", "ipc-identity", "ipc-sdk", "ipc_actors_abis", @@ -4735,6 +4880,7 @@ dependencies = [ "serde_json", "serde_tuple", "strum 0.24.1", + "tempfile", "thiserror", "tokio", "tokio-tungstenite 0.18.0", @@ -4746,11 +4892,11 @@ dependencies = [ [[package]] name = "ipc-sdk" version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/ipc.git?branch=dev#68d5c10e5f801dd3e89f96e39dff5144489861f0" dependencies = [ "anyhow", "cid", "ethers", + "fil_actors_runtime 11.0.0", "fnv", "fvm_ipld_blockstore", "fvm_ipld_encoding 0.3.3", @@ -4763,6 +4909,7 @@ dependencies = [ "num-traits", "primitives", "serde", + "serde_json", "serde_tuple", "thiserror", ] @@ -4770,7 +4917,6 @@ dependencies = [ [[package]] name = "ipc_actors_abis" version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/ipc-solidity-actors.git?branch=dev#ae9edfbf9ca41fbf31f28b8428229f091ada0917" dependencies = [ "anyhow", "ethers", @@ -4780,17 +4926,19 @@ dependencies = [ [[package]] name = "ipc_ipld_resolver" version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/ipc-ipld-resolver.git?branch=main#4888d016b639ad6519c17cd3d8ff3ea8cda94122" dependencies = [ "anyhow", "base64 0.21.5", "blake2b_simd", "bloom", + "env_logger 0.10.1", "fvm_ipld_blockstore", "fvm_ipld_encoding 0.3.3", + "fvm_ipld_hamt 0.6.1", "fvm_shared", "gcra", "ipc-sdk", + "ipc_ipld_resolver", "lazy_static", "libipld", "libp2p", @@ -4798,6 +4946,7 @@ dependencies = [ "log", "prometheus", "quickcheck 1.0.3", + "quickcheck_macros", "rand 0.8.5", "serde", "serde_json", @@ -4830,7 +4979,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.3", - "rustix 0.38.25", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -4872,9 +5021,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" @@ -5017,9 +5166,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libipld" @@ -5695,9 +5844,9 @@ checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "literally" @@ -5804,7 +5953,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.25", + "rustix 0.38.28", ] [[package]] @@ -5898,9 +6047,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -6291,7 +6440,7 @@ dependencies = [ "proc-macro-crate 2.0.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -6344,9 +6493,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -6381,9 +6530,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.60" +version = "0.10.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -6402,7 +6551,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -6413,18 +6562,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.2.1+3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.96" +version = "0.9.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" dependencies = [ "cc", "libc", @@ -6734,7 +6883,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -6798,7 +6947,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -6836,7 +6985,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -6892,7 +7041,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.25", + "rustix 0.38.28", "tracing", "windows-sys 0.52.0", ] @@ -6982,7 +7131,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -7002,7 +7151,6 @@ dependencies = [ [[package]] name = "primitives" version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/fvm-utils#368ad258a82204d0004b7321f1015373fb4d17b9" dependencies = [ "anyhow", "cid", @@ -7544,7 +7692,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.9", + "rustls 0.21.10", "rustls-pemfile", "serde", "serde_json", @@ -7610,9 +7758,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.6" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", "getrandom 0.2.11", @@ -7776,15 +7924,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.25" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno 0.3.8", "libc", - "linux-raw-sys 0.4.11", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -7814,12 +7962,12 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.9" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.6", + "ring 0.17.7", "rustls-webpki", "sct 0.7.1", ] @@ -7863,7 +8011,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", "untrusted 0.9.0", ] @@ -7886,9 +8034,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "salsa20" @@ -7975,7 +8123,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", "untrusted 0.9.0", ] @@ -8098,7 +8246,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -8142,7 +8290,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -8212,7 +8360,7 @@ dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -8417,7 +8565,7 @@ dependencies = [ "chacha20poly1305", "curve25519-dalek 4.1.1", "rand_core 0.6.4", - "ring 0.17.6", + "ring 0.17.7", "rustc_version", "sha2 0.10.8", "subtle", @@ -8715,7 +8863,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -8800,9 +8948,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", @@ -8869,7 +9017,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.4.1", - "rustix 0.38.25", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -9063,22 +9211,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -9165,9 +9313,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", @@ -9190,7 +9338,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -9231,7 +9379,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.9", + "rustls 0.21.10", "tokio", ] @@ -9268,7 +9416,7 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", - "rustls 0.21.9", + "rustls 0.21.10", "tokio", "tokio-rustls 0.24.1", "tungstenite 0.20.1", @@ -9501,7 +9649,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -9620,9 +9768,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -9659,7 +9807,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.21.9", + "rustls 0.21.10", "sha1", "thiserror", "url", @@ -9717,9 +9865,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" @@ -9950,7 +10098,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-shared", ] @@ -9984,7 +10132,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10040,9 +10188,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.118.0" +version = "0.118.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebbb91574de0011ded32b14db12777e7dd5e9ea2f9d7317a1ab51a9495c75924" +checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9" dependencies = [ "indexmap 2.1.0", "semver", @@ -10050,12 +10198,12 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a7a046e6636d25c06a5df00bdc34e02f9e6e0e8a356d738299b961a6126114" +checksum = "3d027eb8294904fc715ac0870cebe6b0271e96b90605ee21511e7565c4ce568c" dependencies = [ "anyhow", - "wasmparser 0.118.0", + "wasmparser 0.118.1", ] [[package]] @@ -10230,7 +10378,7 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", "untrusted 0.9.0", ] @@ -10297,7 +10445,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100" dependencies = [ "bytes", - "derive_builder", + "derive_builder 0.11.2", "log", "thiserror", "tokio", @@ -10466,7 +10614,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.25", + "rustix 0.38.28", ] [[package]] @@ -10759,9 +10907,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" dependencies = [ "memchr", ] @@ -10927,22 +11075,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.26" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.26" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -10962,7 +11110,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] diff --git a/fendermint/Cargo.toml b/Cargo.toml similarity index 68% rename from fendermint/Cargo.toml rename to Cargo.toml index 0538736bd6..55e1b24de6 100644 --- a/fendermint/Cargo.toml +++ b/Cargo.toml @@ -1,37 +1,54 @@ [workspace] resolver = "2" members = [ - "fendermint/abci", - "fendermint/app", - "fendermint/app/options", - "fendermint/crypto", - "fendermint/app/settings", - "fendermint/eth/*", - "fendermint/rocksdb", - "fendermint/rpc", - "fendermint/storage", - "fendermint/testing", - "fendermint/testing/*-test", - "fendermint/vm/*", + # contracts + "contracts/binding", + # fvm-utils, + "fvm-utils/primitives", + "fvm-utils/runtime", + # ipc + "ipc/ipc/cli", + "ipc/ipc/identity", + "ipc/ipc/provider", + "ipc/ipc/sdk", + # Tests seem to be obsolete (using IPC agent): + # "ipc/ipc/testing/*", + # resolver + "ipld-resolver", + # fendermint + "fendermint/fendermint/abci", + "fendermint/fendermint/app", + "fendermint/fendermint/app/options", + "fendermint/fendermint/crypto", + "fendermint/fendermint/app/settings", + "fendermint/fendermint/eth/*", + "fendermint/fendermint/rocksdb", + "fendermint/fendermint/rpc", + "fendermint/fendermint/storage", + "fendermint/fendermint/testing", + "fendermint/fendermint/testing/*-test", + "fendermint/fendermint/vm/*", ] -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [workspace.package] authors = ["Protocol Labs"] edition = "2021" license = "MIT OR Apache-2.0" license-file = "LICENSE-APACHE" +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + [workspace.dependencies] anyhow = "1" arbitrary = { version = "1", features = ["derive"] } arbtest = "0.2" async-stm = "0.4" async-trait = "0.1" +async-channel = "1.8.0" axum = { version = "0.6", features = ["ws"] } base64 = "0.21" blake2b_simd = "1.0" +bloom = "0.3" bytes = "1.4" clap = { version = "4.1", features = ["derive", "env"] } config = "0.13" @@ -43,19 +60,38 @@ fnv = "1.0" futures = "0.3" futures-core = "0.3" futures-util = "0.3" +gcra = "0.4" hex = "0.4" im = "15.1.0" jsonrpc-v2 = { version = "0.11", default-features = false, features = ["bytes-v10"] } k256 = "0.11" # Same as tendermint-rs lazy_static = "1.4" libipld = { version = "0.14", default-features = false, features = ["dag-cbor"] } -libp2p = "0.50" +libp2p = { version = "0.50", default-features = false, features = [ + "gossipsub", + "kad", + "identify", + "ping", + "noise", + "yamux", + "tcp", + "dns", + "mplex", + "request-response", + "metrics", + "tokio", + "macros", + "serde", + "secp256k1", + "plaintext", +] } libp2p-bitswap = "0.25.1" lru_time_cache = "0.11" merkle-tree-rs = "0.1.0" multiaddr = "0.16" multihash = { version = "0.16.1", default-features = false } num-bigint = "0.4" +num-derive = "0.3" num-traits = "0.2" paste = "1" pin-project = "1.1.2" @@ -67,7 +103,8 @@ rand_chacha = "0.3" regex = "1" sha2 = "0.10" serde = { version = "1", features = ["derive"] } -serde_json = { version = "1" } +serde_bytes = "0.11" +serde_json = { version = "1", features = ["raw_value"] } serde_tuple = "0.5" serde_with = "2.3" tempfile = "3.7" @@ -82,29 +119,44 @@ tokio = { version = "1", features = [ ] } tokio-stream = "0.1.14" tokio-util = { version = "0.7.8", features = ["compat"] } +toml = "0.7" tracing = "0.1" tracing-subscriber = "0.3" -url = "2.4.1" +url = { version = "2.4.1", features = ["serde"] } zeroize = "1.6" trace4rs = "0.5.1" literally = "0.1.3" +reqwest = { version = "0.11.13", features = ["json"] } +log = "0.4" +env_logger = "0.10" +prometheus = "0.13" +tokio-tungstenite = { version = "0.18.0", features = ["native-tls"] } +libsecp256k1 = "0.7" +ethers-contract = "2.0.8" +integer-encoding = {version = "3.0.3", default-features = false} + +# Workspace deps +ipc-sdk = { path = "ipc/ipc/sdk" } +ipc-provider = { path = "ipc/ipc/provider" } +ipc-identity = { path = "ipc/ipc/identity", features = ["with-ethers"] } +ipc_ipld_resolver = { path = "ipld-resolver" } +primitives = { path = "fvm-utils/primitives" } +ipc_actors_abis = { path = "contracts/binding" } # Vendored for cross-compilation, see https://github.com/cross-rs/cross/wiki/Recipes#openssl openssl = { version = "0.10", features = ["vendored"] } # Stable FVM dependencies from crates.io - # Using the 3.3 version of the FVM because the newer ones update the IPLD dependencies # to version which are different than the ones in the builtin-actors project, and since # they are 0.x cargo cannot upgrade them automatically, which leads to version conflicts. fvm = { version = "~3.2", default-features = false } # no opencl feature or it fails on CI fvm_shared = { version = "~3.2", features = ["crypto"] } -primitives = { git = "https://github.com/consensus-shipyard/fvm-utils" } fvm_ipld_blockstore = "0.1" fvm_ipld_car = "0.6" fvm_ipld_encoding = "0.3" -fvm_ipld_hamt = "0.6" +fvm_ipld_hamt = "0.6.0" # Local FVM debugging # fvm = { path = "../ref-fvm/fvm", default-features = false } @@ -119,11 +171,12 @@ fvm_ipld_hamt = "0.6" # and this copy-paste is clunky, so at least for those that have it, we should use it. # Keep the version here in sync with the Makefile! fil_actors_evm_shared = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v11.0.0" } +fil_actors_runtime = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v11.0.0" } # Using 0.8 because of ref-fvm. # 0.9 would be better because of its updated quickcheck dependency. # 0.10 breaks some API. -cid = { version = "0.8", features = ["serde-codec", "std"] } +cid = { version = "0.8", default-features = false, features = ["serde-codec", "std"] } # Depending on the release cycle, this dependency might want an earlier version of the FVM. # We can work around it by hardcoding the method hashes; currently there is only one. @@ -136,23 +189,8 @@ tendermint-config = "0.33.0" tendermint-rpc = { version = "0.31", features = ["secp256k1", "http-client", "websocket-client"] } tendermint-proto = { version = "0.31" } -ipc-sdk = { git = "https://github.com/consensus-shipyard/ipc.git", branch = "dev" } -ipc_ipld_resolver = { git = "https://github.com/consensus-shipyard/ipc-ipld-resolver.git", branch = "main" } -ipc-provider = { git = "https://github.com/consensus-shipyard/ipc.git", branch = "dev" } -# NOTE: If you change the branch here make sure to change IPC_ACTORS_TAG in the Makefile as well. -ipc_actors_abis = { git = "https://github.com/consensus-shipyard/ipc-solidity-actors.git", branch = "dev" } - [patch.crates-io] # Use stable-only features. gcra = { git = "https://github.com/consensus-shipyard/gcra-rs.git", branch = "main" } # Contains some API changes that the upstream has not merged. merkle-tree-rs = { git = "https://github.com/consensus-shipyard/merkle-tree-rs.git", branch = "dev" } - - -# Uncomment to point to your local versions -# [patch."https://github.com/consensus-shipyard/ipc"] -# ipc-sdk = { path = "../ipc/ipc/sdk" } -# ipc-provider = { path = "../ipc/ipc/provider" } - -# [patch."https://github.com/consensus-shipyard/ipc-solidity-actors.git"] -# ipc_actors_abis = { path = "../ipc-solidity-actors/binding" } diff --git a/fendermint/LICENSE-APACHE b/LICENSE-APACHE similarity index 100% rename from fendermint/LICENSE-APACHE rename to LICENSE-APACHE diff --git a/fendermint/LICENSE-MIT b/LICENSE-MIT similarity index 100% rename from fendermint/LICENSE-MIT rename to LICENSE-MIT diff --git a/README.md b/README.md index 40c2565b17..c1d65c3d37 100644 --- a/README.md +++ b/README.md @@ -1 +1,22 @@ -# mono-ipc +# IPC Monorepo + +This is a monorepo to simplify the synchronisation effort that used to plague development of features that span the following constituent repositories: +* https://github.com/consensus-shipyard/fvm-utils +* https://github.com/consensus-shipyard/ipc-solidity-actors +* https://github.com/consensus-shipyard/ipc-ipld-resolver +* https://github.com/consensus-shipyard/ipc +* https://github.com/consensus-shipyard/fendermint + +These repositories were addes as subtrees, which should allow us to pull in more updates from them while they are still alive. + +The original setup command were as follows, all consolidating some local checkouts: + +```shell +git subtree add -P contracts ../ipc-solidity-actors dev +git subtree add -P fendermint ../fendermint main +git subtree add -P ipc ../ipc dev +git subtree add -P fvm-utils ../fvm-utils main +git subtree add -P ipld-resolver ../ipc-ipld-resolver main +``` + +TODO: Add examples of pulling updates from the upstream repos. diff --git a/contracts/binding/Cargo.lock b/contracts/binding/Cargo.lock deleted file mode 100644 index 54f85285ca..0000000000 --- a/contracts/binding/Cargo.lock +++ /dev/null @@ -1,4589 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aes" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aho-corasick" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0" -dependencies = [ - "memchr", -] - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - -[[package]] -name = "async-trait" -version = "0.1.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version", -] - -[[package]] -name = "auto_impl" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] -name = "bellperson" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1a8623f815c0b1fd89efd9b5f4afbb937f91f51c1ebe3f6dda399c69fa938f3" -dependencies = [ - "bincode", - "blake2s_simd 1.0.2", - "blstrs", - "byteorder", - "crossbeam-channel", - "digest 0.10.7", - "ec-gpu", - "ec-gpu-gen", - "ff 0.12.1", - "group 0.12.1", - "log", - "memmap2", - "pairing", - "rand", - "rand_core", - "rayon", - "rustversion", - "serde", - "sha2 0.10.7", - "thiserror", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "blake2s_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq 0.1.5", -] - -[[package]] -name = "blake2s_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" -dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bls-signatures" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1659e487883b92123806f16ff3568dd57563991231d187d29b23eea5d910e800" -dependencies = [ - "blst", - "blstrs", - "ff 0.12.1", - "group 0.12.1", - "pairing", - "rand_core", - "subtle", - "thiserror", -] - -[[package]] -name = "blst" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "blstrs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff3694b352ece02eb664a09ffb948ee69b35afa2e6ac444a6b8cb9d515deebd" -dependencies = [ - "blst", - "byte-slice-cast", - "ec-gpu", - "ff 0.12.1", - "group 0.12.1", - "pairing", - "rand_core", - "serde", - "subtle", -] - -[[package]] -name = "bs58" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" -dependencies = [ - "sha2 0.10.7", - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -dependencies = [ - "serde", -] - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "camino" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" -dependencies = [ - "camino", - "cargo-platform", - "semver", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - -[[package]] -name = "cbor4ii" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4" -dependencies = [ - "serde", -] - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "jobserver", - "libc", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" -dependencies = [ - "num-traits", -] - -[[package]] -name = "cid" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" -dependencies = [ - "core2", - "multibase", - "multihash", - "serde", - "serde_bytes", - "unsigned-varint", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac 0.12.1", - "k256", - "serde", - "sha2 0.10.7", - "thiserror", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.12.2", - "rand", - "sha2 0.10.7", - "thiserror", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.4", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.7", - "sha3", - "thiserror", -] - -[[package]] -name = "config" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ad70579325f1a38ea4c13412b82241c5900700a69785d73e2736bd65a33f86" -dependencies = [ - "async-trait", - "lazy_static", - "nom", - "pathdiff", - "serde", - "toml 0.5.11", -] - -[[package]] -name = "const-hex" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08849ed393c907c90016652a01465a12d86361cd38ad2a7de026c56a520cc259" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpufeatures" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" -dependencies = [ - "cfg-if", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "data-encoding" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" - -[[package]] -name = "data-encoding-macro" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - -[[package]] -name = "der" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "ec-gpu" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd63582de2b59ea1aa48d7c1941b5d87618d95484397521b3acdfa0e1e9f5e45" - -[[package]] -name = "ec-gpu-gen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd09bf9d5313ad60379f70250590bccc10f7a04e2773062ac13255a37022584e" -dependencies = [ - "bitvec", - "crossbeam-channel", - "ec-gpu", - "execute", - "ff 0.12.1", - "group 0.12.1", - "hex", - "log", - "num_cpus", - "once_cell", - "rayon", - "sha2 0.10.7", - "thiserror", - "yastl", -] - -[[package]] -name = "ecdsa" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "elliptic-curve" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff 0.13.0", - "generic-array", - "group 0.13.0", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "ena" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" -dependencies = [ - "base64 0.21.4", - "bytes", - "hex", - "k256", - "log", - "rand", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "rand", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.7", - "sha3", - "thiserror", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad13497f6e0a24292fc7b408e30d22fe9dc262da1f40d7b542c3a44e7fc0476" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e9e8acd0ed348403cc73a670c24daba3226c40b98dc1a41903766b3ab6240a" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d79269278125006bb0552349c03593ffa9702112ca88bc7046cc669f148fb47c" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce95a43c939b2e4e2f3191c5ad4a1f279780b8a39139c9905b43a7433531e2ab" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest", - "serde", - "serde_json", - "syn 2.0.37", - "toml 0.7.8", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9ce44906fc871b3ee8c69a695ca7ec7f70e50cb379c9b9cb5e532269e492f6" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.37", -] - -[[package]] -name = "ethers-core" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a17f0708692024db9956b31d7a20163607d2745953f5ae8125ab368ba280ad" -dependencies = [ - "arrayvec 0.7.4", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.37", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e53451ea4a8128fbce33966da71132cf9e1040dcfd2a2084fd7733ada7b2045" -dependencies = [ - "ethers-core", - "reqwest", - "semver", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473f1ccd0c793871bbc248729fa8df7e6d2981d6226e4343e3bbaa9281074d5d" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6838fa110e57d572336178b7c79e94ff88ef976306852d8cb87d9e5b1fc7c0b5" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.4", - "bytes", - "const-hex", - "enr", - "ethers-core", - "futures-channel", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea44bec930f12292866166f9ddbea6aa76304850e4d8dcd66dc492b43d00ff1" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand", - "sha2 0.10.7", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de34e484e7ae3cab99fbfd013d6c5dc7f9013676a4e0e414d8b12e1213e8b3ba" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - -[[package]] -name = "execute" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d9a9ea4c04632c16bc5c71a2fcc63d308481f7fc67eb1a1ce6315c44a426ae" -dependencies = [ - "execute-command-macro", - "execute-command-tokens", - "generic-array", -] - -[[package]] -name = "execute-command-macro" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5fbc65a0cf735106743f4c38c9a3671c1e734b5c2c20d21a3c93c696daa3157" -dependencies = [ - "execute-command-macro-impl", -] - -[[package]] -name = "execute-command-macro-impl" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a9a55d1dab3b07854648d48e366f684aefe2ac78ae28cec3bf65e3cd53d9a3" -dependencies = [ - "execute-command-tokens", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "execute-command-tokens" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba569491c70ec8471e34aa7e9c0b9e82bb5d2464c0398442d17d3c4af814e5a" - -[[package]] -name = "eyre" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "fastrand" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" - -[[package]] -name = "fdlimit" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" -dependencies = [ - "libc", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fil_pasta_curves" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3303ea3c462ab949ab95b49f6e6d255d8d9396ebd4f1626ccb34c7037615aa8f" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "lazy_static", - "rand", - "static_assertions", - "subtle", -] - -[[package]] -name = "filecoin-hashers" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d7e656d4f01d7772ef2dd0f59854c8f904370a946053cf37ef420c854d9a35" -dependencies = [ - "anyhow", - "bellperson", - "blstrs", - "ff 0.12.1", - "generic-array", - "hex", - "lazy_static", - "merkletree", - "neptune", - "rand", - "serde", - "sha2 0.10.7", -] - -[[package]] -name = "filecoin-proofs" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00449c0e89be0922127e7e927e578247825450abdaf0da2fc30b733cb0e535b" -dependencies = [ - "anyhow", - "bellperson", - "bincode", - "blake2b_simd", - "blstrs", - "filecoin-hashers", - "fr32", - "generic-array", - "hex", - "lazy_static", - "log", - "memmap2", - "merkletree", - "once_cell", - "rand", - "rayon", - "serde", - "serde_json", - "sha2 0.10.7", - "storage-proofs-core", - "storage-proofs-porep", - "storage-proofs-post", - "storage-proofs-update", - "typenum", -] - -[[package]] -name = "filecoin-proofs-api" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347a43603e12b147cc3d8285fee27771e1e9702d90f1f8e5018b8dd96b5da467" -dependencies = [ - "anyhow", - "bellperson", - "bincode", - "blstrs", - "filecoin-hashers", - "filecoin-proofs", - "fr32", - "lazy_static", - "serde", - "storage-proofs-core", -] - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "flume" -version = "0.10.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" -dependencies = [ - "spin 0.9.8", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fr32" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f07b8a600b8c699f8ddc5f520231bc2aac03e944c64055eccfd9a959c3fd60" -dependencies = [ - "anyhow", - "blstrs", - "byte-slice-cast", - "byteorder", - "ff 0.12.1", - "thiserror", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-timer" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fvm_ipld_blockstore" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee8c75be2b58943e1a9755802d34d4c3934f6ea151b6be192ff98f644e515bd" -dependencies = [ - "anyhow", - "cid", - "multihash", -] - -[[package]] -name = "fvm_ipld_encoding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0816a2a6df4853de08a723d261110d56a121aa313bc570fe9d248f0a4bc5288" -dependencies = [ - "anyhow", - "cid", - "fvm_ipld_blockstore", - "multihash", - "serde", - "serde_ipld_dagcbor", - "serde_repr", - "serde_tuple", - "thiserror", -] - -[[package]] -name = "fvm_shared" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "674e86afc2ce02808d24f578296f105b13c23300e60e0eac331c4c1575beabb5" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "blake2b_simd", - "bls-signatures", - "cid", - "data-encoding", - "data-encoding-macro", - "filecoin-proofs-api", - "fvm_ipld_encoding", - "lazy_static", - "libsecp256k1", - "multihash", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "serde", - "serde_tuple", - "thiserror", - "unsigned-varint", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand", - "rand_core", - "rand_xorshift", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", - "rand_core", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 1.9.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" - -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array", - "hmac 0.8.1", -] - -[[package]] -name = "home" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.9", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" -dependencies = [ - "futures-util", - "http", - "hyper", - "rustls", - "tokio", - "tokio-rustls", -] - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "ipc_actors_abis" -version = "0.1.0" -dependencies = [ - "anyhow", - "ethers", - "fvm_shared", -] - -[[package]] -name = "ipnet" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" - -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi", - "rustix", - "windows-sys", -] - -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "jobserver" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.4", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "k256" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2 0.10.7", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lalrpop" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" -dependencies = [ - "ascii-canvas", - "bit-set", - "diff", - "ena", - "is-terminal", - "itertools 0.10.5", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.148" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" - -[[package]] -name = "libsecp256k1" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" -dependencies = [ - "arrayref", - "base64 0.13.1", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" - -[[package]] -name = "lock_api" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "md-5" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "merkletree" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d348b5b0d1707be1c8a727b7078daa08e2a3051d63b35715a19c35a324d2aaac" -dependencies = [ - "anyhow", - "arrayref", - "log", - "memmap2", - "positioned-io", - "rayon", - "serde", - "tempfile", - "typenum", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "wasi", - "windows-sys", -] - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" -dependencies = [ - "blake2b_simd", - "core2", - "digest 0.10.7", - "multihash-derive", - "ripemd", - "serde", - "serde-big-array", - "sha2 0.10.7", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "neptune" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dedb261f1b35ddfd867295eacbc25eb78b4b5b63b08b1c0dc4c1b5ef0e5b2c2" -dependencies = [ - "bellperson", - "blake2s_simd 0.5.11", - "blstrs", - "byteorder", - "ff 0.12.1", - "fil_pasta_curves", - "generic-array", - "itertools 0.8.2", - "lazy_static", - "log", - "trait-set", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "object" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec 0.7.4", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "pairing" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" -dependencies = [ - "group 0.12.1", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" -dependencies = [ - "arrayvec 0.7.4", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.3.5", - "smallvec", - "windows-targets", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] - -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", - "password-hash", - "sha2 0.10.7", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "petgraph" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" -dependencies = [ - "fixedbitset", - "indexmap 2.0.0", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "positioned-io" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d0208bedc5252e7054a4f65f24f2ccfe740178fb2284028ac5f06efbdcc55" -dependencies = [ - "byteorder", - "libc", - "winapi", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "pretty_assertions" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" -dependencies = [ - "diff", - "yansi", -] - -[[package]] -name = "prettyplease" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" -dependencies = [ - "proc-macro2", - "syn 2.0.37", -] - -[[package]] -name = "primitive-types" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "reqwest" -version = "0.11.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" -dependencies = [ - "base64 0.21.4", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-rustls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.2", - "winreg", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rlp-derive", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.38.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" -dependencies = [ - "bitflags 2.4.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "rustls" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.5", - "sct", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" -dependencies = [ - "base64 0.21.4", -] - -[[package]] -name = "rustls-webpki" -version = "0.100.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" -dependencies = [ - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.7", -] - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "semver" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" -dependencies = [ - "serde", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.188" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-big-array" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.188" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "serde_ipld_dagcbor" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e23de7a4a18dff77ab9531f279a882500b8cf3549fde044d4e10481b411f1e" -dependencies = [ - "cbor4ii", - "cid", - "scopeguard", - "serde", -] - -[[package]] -name = "serde_json" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "serde_spanned" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_tuple" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f025b91216f15a2a32aa39669329a475733590a015835d1783549a56d09427" -dependencies = [ - "serde", - "serde_tuple_macros", -] - -[[package]] -name = "serde_tuple_macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4076151d1a2b688e25aaf236997933c66e18b870d0369f8b248b8ab2be630d7e" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", - "sha2-asm", -] - -[[package]] -name = "sha2-asm" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27ba7066011e3fb30d808b51affff34f0a66d3a03a58edd787c6e420e40e44e" -dependencies = [ - "cc", -] - -[[package]] -name = "sha2raw" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ec45c74ebb91d25e61e14cfc1925e7571723ae14a38fc6c8bd0b2e516db101" -dependencies = [ - "byteorder", - "cpufeatures", - "digest 0.10.7", - "fake-simd", - "lazy_static", - "opaque-debug", - "sha2-asm", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "signature" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" -dependencies = [ - "digest 0.10.7", - "rand_core", -] - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "solang-parser" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb9fa2fa2fa6837be8a2495486ff92e3ffe68a99b6eeba288e139efdd842457" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "storage-proofs-core" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f756ef2dd06efda2eb30bf6806399d493072d8469b0a724f1905dc051fea59c1" -dependencies = [ - "aes", - "anyhow", - "bellperson", - "blake2b_simd", - "blstrs", - "byteorder", - "cbc", - "config", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "fs2", - "generic-array", - "itertools 0.10.5", - "lazy_static", - "log", - "memmap2", - "merkletree", - "num_cpus", - "rand", - "rand_chacha", - "rayon", - "semver", - "serde", - "serde_json", - "sha2 0.10.7", - "thiserror", -] - -[[package]] -name = "storage-proofs-porep" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2450a62eb009602a4a4d697a027ab1025657cd76b325a99dfeb8d263d44b1c5c" -dependencies = [ - "anyhow", - "bellperson", - "bincode", - "blstrs", - "byte-slice-cast", - "byteorder", - "crossbeam", - "fdlimit", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "generic-array", - "hex", - "lazy_static", - "libc", - "log", - "memmap2", - "merkletree", - "neptune", - "num-bigint", - "num-traits", - "num_cpus", - "pretty_assertions", - "rayon", - "rustversion", - "serde", - "serde_json", - "sha2 0.10.7", - "sha2raw", - "storage-proofs-core", - "yastl", -] - -[[package]] -name = "storage-proofs-post" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e034a55f3c5137120c4cd1abb717cd397c660447c4393c2550be3ee5b070c4" -dependencies = [ - "anyhow", - "bellperson", - "blake2b_simd", - "blstrs", - "byteorder", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "generic-array", - "hex", - "log", - "rayon", - "serde", - "sha2 0.10.7", - "storage-proofs-core", -] - -[[package]] -name = "storage-proofs-update" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3433b2832153e2744bfa87176dcb0b587392b57fd1bd770804d366c98822285a" -dependencies = [ - "anyhow", - "bellperson", - "blstrs", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "generic-array", - "lazy_static", - "log", - "memmap2", - "merkletree", - "neptune", - "rayon", - "serde", - "storage-proofs-core", - "storage-proofs-porep", -] - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", -] - -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.37", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "svm-rs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597e3a746727984cb7ea2487b6a40726cad0dbe86628e7d429aa6b8c4c153db4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest", - "semver", - "serde", - "serde_json", - "sha2 0.10.7", - "thiserror", - "url", - "zip", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "thiserror" -version = "1.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" -dependencies = [ - "deranged", - "itoa", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" - -[[package]] -name = "time-macros" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" -dependencies = [ - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2 0.5.4", - "windows-sys", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dbec703c26b00d74844519606ef15d09a7d6857860f84ad223dec002ddea2" -dependencies = [ - "futures-util", - "log", - "rustls", - "tokio", - "tokio-rustls", - "tungstenite", - "webpki-roots 0.23.1", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.0.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "tracing-core" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "trait-set" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand", - "rustls", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "url" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.37", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.3", -] - -[[package]] -name = "webpki-roots" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "winnow" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "yastl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca6c5a4d66c1a9ea261811cf4773c27343de7e5033e1b75ea3f297dc7db3c1a" -dependencies = [ - "flume", - "scopeguard", -] - -[[package]] -name = "zeroize" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.8+zstd.1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" -dependencies = [ - "cc", - "libc", - "pkg-config", -] diff --git a/fvm-utils/Cargo.toml b/fvm-utils/Cargo.toml deleted file mode 100644 index dc5d9edb30..0000000000 --- a/fvm-utils/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "fvm-utils" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[dependencies] -fil_actors_runtime = { path = "./runtime", features = ["test_utils", "fil-actor"] } -primitives = { path = "primitives" } - -[workspace] -members = [ - "runtime", - "primitives", - "example", -] diff --git a/fvm-utils/runtime/src/lib.rs b/fvm-utils/runtime/src/lib.rs index d6e777a940..e5909a34ae 100644 --- a/fvm-utils/runtime/src/lib.rs +++ b/fvm-utils/runtime/src/lib.rs @@ -8,7 +8,6 @@ extern crate lazy_static; // workaround for a compiler bug, see https://github.com/rust-lang/rust/issues/55779 extern crate serde; -use builtin::HAMT_BIT_WIDTH; use cid::Cid; use fvm_ipld_amt::Amt; use fvm_ipld_blockstore::Blockstore; diff --git a/fvm-utils/src/lib.rs b/fvm-utils/src/lib.rs deleted file mode 100644 index fcd34ea6c2..0000000000 --- a/fvm-utils/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub use fil_actors_runtime as runtime; -pub use primitives; diff --git a/ipc/ipc/cli/Cargo.toml b/ipc/ipc/cli/Cargo.toml index 30f5996a18..350b8a5a11 100644 --- a/ipc/ipc/cli/Cargo.toml +++ b/ipc/ipc/cli/Cargo.toml @@ -10,38 +10,37 @@ license-file.workspace = true anyhow = { workspace = true } async-channel = { workspace = true } async-trait = { workspace = true } +base64 = { workspace = true } +bytes = "1.4.0" +cid = { workspace = true } +clap = { version = "4.1.4", features = ["env", "derive"] } +clap_complete = "4.2.1" +env_logger = "0.10.0" +ethers = { workspace = true } +ethers-contract = { workspace = true } +fil_actors_runtime = { workspace = true } futures-util = { workspace = true } -reqwest = { workspace = true } +fvm_ipld_encoding = { workspace = true } +fvm_shared = { workspace = true } +hex = { workspace = true } +libsecp256k1 = { workspace = true } log = { workspace = true } +num-derive = "0.3.3" +num-traits = { workspace = true } +reqwest = { workspace = true } serde = { workspace = true } +serde_bytes = "0.11.9" serde_json = { workspace = true } -cid = { workspace = true } +serde_tuple = { workspace = true } +strum = { version = "0.24", features = ["derive"] } +thiserror = { workspace = true } tokio = { workspace = true } tokio-tungstenite = { workspace = true } -num-traits = { workspace = true } -num-derive = "0.3.3" -env_logger = "0.10.0" -base64 = { workspace = true } -strum = { version = "0.24", features = ["derive"] } toml = "0.7.2" url = { workspace = true } -bytes = "1.4.0" -serde_bytes = "0.11.9" -clap = { version = "4.1.4", features = ["env", "derive"] } -clap_complete = "4.2.1" -thiserror = { workspace = true } -hex = { workspace = true } -serde_tuple = { workspace = true } zeroize = "1.6.0" -libsecp256k1 = { workspace = true } -ethers-contract = { workspace = true } -ethers = { workspace = true } -fvm_shared = { workspace = true } -fil_actors_runtime = { workspace = true } -fvm_ipld_encoding = { workspace = true } +ipc-identity = { workspace = true } +ipc-provider = { workspace = true } +ipc-sdk = { workspace = true } primitives = { workspace = true } - -ipc-identity = { path = "../identity", features = ["with-ethers"] } -ipc-provider = { path = "../provider" } -ipc-sdk = { path = "../sdk" } \ No newline at end of file diff --git a/ipc/ipc/identity/Cargo.toml b/ipc/ipc/identity/Cargo.toml index f84417d4bc..8c1b03d931 100644 --- a/ipc/ipc/identity/Cargo.toml +++ b/ipc/ipc/identity/Cargo.toml @@ -8,27 +8,27 @@ license-file.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +ahash = "0.8" anyhow = { workspace = true } +argon2 = "0.5" base64 = { workspace = true } blake2b_simd = { workspace = true } -rand = { workspace = true } +bls-signatures = { version = "0.13.0", default-features = false, features = ["blst"] } +ethers = { workspace = true, optional = true } +fvm_shared = { workspace = true } +hex = { workspace = true } +libc = "0.2" libsecp256k1 = { workspace = true } -ahash = "0.8" -argon2 = "0.5" -xsalsa20poly1305 = "0.9" +log = { workspace = true } +rand = { workspace = true } +serde = { workspace = true } serde_ipld_dagcbor = "0.2" -libc = "0.2" -bls-signatures = { version = "0.13.0", default-features = false, features = ["blst"] } serde_json = { workspace = true } -serde = { workspace = true } -log = { workspace = true } thiserror = { workspace = true } -fvm_shared = { workspace = true } -primitives = { workspace = true } - +xsalsa20poly1305 = "0.9" zeroize = "1.6.0" -ethers = { workspace = true, optional = true } -hex = { workspace = true } + +primitives = { workspace = true } [dev-dependencies] tempfile = { workspace = true } diff --git a/ipc/ipc/ipld/resolver/README.md b/ipc/ipc/ipld/resolver/README.md deleted file mode 100644 index 31f0091d58..0000000000 --- a/ipc/ipc/ipld/resolver/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# IPLD Resolver - -The IPLD Resolver has been moved to its own repository at https://github.com/consensus-shipyard/ipc-ipld-resolver diff --git a/ipc/ipc/provider/Cargo.toml b/ipc/ipc/provider/Cargo.toml index 8e08bf7030..49b359d7ec 100644 --- a/ipc/ipc/provider/Cargo.toml +++ b/ipc/ipc/provider/Cargo.toml @@ -21,31 +21,31 @@ cid = { workspace = true } tokio = { workspace = true } tokio-tungstenite = { workspace = true } num-traits = { workspace = true } -num-derive = "0.3.3" +num-derive = { workspace = true } base64 = { workspace = true } strum = { version = "0.24", features = ["derive"] } -toml = "0.7.2" +toml = { workspace = true } url = { workspace = true } -bytes = "1.4.0" -dirs = "5.0" -serde_bytes = "0.11.9" +bytes = { workspace = true } +dirs = { workspace = true } +serde_bytes = { workspace = true } thiserror = { workspace = true } hex = { workspace = true } -serde_tuple = "0.5.0" -zeroize = "1.6.0" +serde_tuple = { workspace = true } +zeroize = { workspace = true } ethers-contract = { workspace = true } ethers = { workspace = true } fvm_shared = { workspace = true } fil_actors_runtime = { workspace = true } fvm_ipld_encoding = { workspace = true } -primitives = { workspace = true } -ipc-identity = { path = "../identity", features = ["with-ethers"] } +primitives = { workspace = true } +ipc-identity = { workspace = true, features = ["with-ethers"] } ipc-sdk = { workspace = true } ipc_actors_abis = { workspace = true } [dev-dependencies] tempfile = { workspace = true } hex = { workspace = true } -indoc = "2.0.0" \ No newline at end of file +indoc = "2.0.0" diff --git a/ipc/ipc/sdk/Cargo.toml b/ipc/ipc/sdk/Cargo.toml index a6561c8a48..67e8e88a07 100644 --- a/ipc/ipc/sdk/Cargo.toml +++ b/ipc/ipc/sdk/Cargo.toml @@ -10,27 +10,28 @@ license-file.workspace = true [dependencies] anyhow = "1.0.56" fil_actors_runtime = { workspace = true, optional = true } -fnv = "1.0.7" +fnv = { workspace = true } fvm_ipld_blockstore = { workspace = true } fvm_ipld_encoding = { workspace = true } fvm_ipld_hamt = { workspace = true } fvm_shared = { workspace = true } -integer-encoding = { version = "3.0.3", default-features = false } +integer-encoding = { workspace = true } lazy_static = { workspace = true } log = { workspace = true } cid = { workspace = true } -primitives = { workspace = true } num-traits = { workspace = true } serde = { workspace = true } serde_tuple = { workspace = true } thiserror = { workspace = true } -ipc_actors_abis = { workspace = true } ethers = { workspace = true } +ipc_actors_abis = { workspace = true } +primitives = { workspace = true } + [dev-dependencies] -serde_json = "1.0.95" +serde_json = { workspace = true } fil_actors_runtime = { workspace = true } [features] default = [] -fil-actor = ["fil_actors_runtime"] \ No newline at end of file +fil-actor = ["fil_actors_runtime"] diff --git a/ipld-resolver/Cargo.toml b/ipld-resolver/Cargo.toml index 3263ec61f2..4b663fa824 100644 --- a/ipld-resolver/Cargo.toml +++ b/ipld-resolver/Cargo.toml @@ -2,58 +2,39 @@ name = "ipc_ipld_resolver" version = "0.1.0" description = "P2P library to resolve IPLD content across IPC subnets." -authors = ["Protocol Labs"] -edition = "2021" -license-file = "LICENSE" +authors.workspace = true +edition.workspace = true +license.workspace = true [dependencies] -anyhow = "1.0" -base64 = "0.21.0" -blake2b_simd = "1.0" -bloom = "0.3" -gcra = "0.4" -lazy_static = "1.4" -libipld = { version = "0.14", default-features = false, features = ["dag-cbor"] } -libp2p = { version = "0.50", default-features = false, features = [ - "gossipsub", - "kad", - "identify", - "ping", - "noise", - "yamux", - "tcp", - "dns", - "mplex", - "request-response", - "metrics", - "tokio", - "macros", - "serde", - "secp256k1", - "plaintext", -] } -libp2p-bitswap = "0.25.1" -log = "0.4" -prometheus = "0.13" -quickcheck = { version = "1", optional = true } -rand = "0.8" -serde = { version = "1.0", features = ["derive"] } -serde_json = { version = "1.0.91", features = ["raw_value"] } -thiserror = "1.0.38" -tokio = { version = "1.16", features = ["full"] } +anyhow = { workspace = true } +base64 = { workspace = true } +blake2b_simd = { workspace = true } +bloom = { workspace = true } +gcra = { workspace = true } +lazy_static = { workspace = true } +libipld = { workspace = true } +libp2p = { workspace = true } +libp2p-bitswap = { workspace = true } +log = { workspace = true } +prometheus = { workspace = true } +quickcheck = { workspace = true, optional = true } +rand = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true, features = ["raw_value"] } +thiserror = { workspace = true } +tokio = { workspace = true } -fvm_ipld_encoding = "0.3" -fvm_shared = { version = "~3.2", default-features = false, features = ["crypto"], optional = true } -fvm_ipld_blockstore = { version = "0.1", optional = true } +fvm_ipld_encoding = { workspace = true } +fvm_shared = { workspace = true } +fvm_ipld_blockstore = { workspace = true, optional = true } -# Using the IPC SDK without the `fil-actor` feature so as not to depend on the actor `Runtime`. -# Using the `main` branch instead of the highest available tag `v0.3.0` because the latter doesn't have a feature flag for the `Runtime`. -ipc-sdk = { git = "https://github.com/consensus-shipyard/ipc.git", default-features = false, branch = "dev" } +ipc-sdk = { path = "../ipc/ipc/sdk", default-features = false } [dev-dependencies] -quickcheck_macros = "1" -env_logger = "0.10" -fvm_ipld_hamt = "0.6" +quickcheck_macros = { workspace = true } +env_logger = { workspace = true } +fvm_ipld_hamt = { workspace = true } ipc_ipld_resolver = { path = ".", features = ["arb"] } @@ -61,7 +42,3 @@ ipc_ipld_resolver = { path = ".", features = ["arb"] } default = ["arb", "missing_blocks"] arb = ["quickcheck", "fvm_shared/arb"] missing_blocks = ["fvm_ipld_blockstore"] - -[patch.crates-io] -# Use stable-only features. -gcra = { git = "https://github.com/consensus-shipyard/gcra-rs.git", branch = "main" } diff --git a/ipld-resolver/LICENSE b/ipld-resolver/LICENSE deleted file mode 100644 index 11df919e14..0000000000 --- a/ipld-resolver/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 ConsensusLab - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/ipld-resolver/rust-toolchain.toml b/ipld-resolver/rust-toolchain.toml deleted file mode 100644 index a59cf37c5f..0000000000 --- a/ipld-resolver/rust-toolchain.toml +++ /dev/null @@ -1,4 +0,0 @@ -[toolchain] -channel = "stable" -components = ["clippy", "llvm-tools", "rustfmt"] -targets = ["wasm32-unknown-unknown"] diff --git a/fendermint/rust-toolchain.toml b/rust-toolchain.toml similarity index 100% rename from fendermint/rust-toolchain.toml rename to rust-toolchain.toml diff --git a/fendermint/rustfmt.toml b/rustfmt.toml similarity index 56% rename from fendermint/rustfmt.toml rename to rustfmt.toml index bcd7169952..cb2a68e585 100644 --- a/fendermint/rustfmt.toml +++ b/rustfmt.toml @@ -1,4 +1,4 @@ edition = "2021" # Ignore auto-generated files. -ignore = ["fendermint/vm/ipc_actors"] +ignore = ["contracts/binding/src"] From efcc043f07e26e0bfc94e794baba471efbcc8dd0 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Mon, 18 Dec 2023 17:27:37 +0000 Subject: [PATCH 2/9] TEST: make test; path fixes --- Cargo.lock | 60 +- Makefile | 8 + fendermint/Makefile | 32 +- .../fendermint/eth/api/examples/ethers.rs | 6 +- .../fendermint/rpc/examples/simplecoin.rs | 4 +- .../testing/contract-test/Cargo.toml | 2 +- .../contract-test/tests/staking/machine.rs | 6 +- .../fendermint/testing/smoke-test/Cargo.toml | 2 +- fvm-utils/Makefile | 2 + ipc/Cargo.lock | 5793 ----------------- ipc/Cargo.toml | 66 - ipc/Makefile | 2 +- ipld-resolver/Makefile | 2 +- 13 files changed, 57 insertions(+), 5928 deletions(-) create mode 100644 Makefile create mode 100644 fvm-utils/Makefile delete mode 100644 ipc/Cargo.lock delete mode 100644 ipc/Cargo.toml diff --git a/Cargo.lock b/Cargo.lock index fc3500abc1..10e422a98d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1365,32 +1365,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" -[[package]] -name = "contract-test" -version = "0.1.0" -dependencies = [ - "anyhow", - "arbitrary", - "arbtest", - "ethers", - "fendermint_crypto", - "fendermint_testing", - "fendermint_vm_actor_interface", - "fendermint_vm_core", - "fendermint_vm_genesis", - "fendermint_vm_interpreter", - "fendermint_vm_message", - "fvm", - "fvm_ipld_blockstore", - "fvm_shared", - "hex", - "ipc-sdk", - "ipc_actors_abis", - "rand 0.8.5", - "tendermint-rpc", - "tokio", -] - [[package]] name = "convert_case" version = "0.4.0" @@ -3002,6 +2976,32 @@ dependencies = [ "tendermint-rpc", ] +[[package]] +name = "fendermint_contract_test" +version = "0.1.0" +dependencies = [ + "anyhow", + "arbitrary", + "arbtest", + "ethers", + "fendermint_crypto", + "fendermint_testing", + "fendermint_vm_actor_interface", + "fendermint_vm_core", + "fendermint_vm_genesis", + "fendermint_vm_interpreter", + "fendermint_vm_message", + "fvm", + "fvm_ipld_blockstore", + "fvm_shared", + "hex", + "ipc-sdk", + "ipc_actors_abis", + "rand 0.8.5", + "tendermint-rpc", + "tokio", +] + [[package]] name = "fendermint_crypto" version = "0.1.0" @@ -3107,6 +3107,10 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "fendermint_smoke_test" +version = "0.1.0" + [[package]] name = "fendermint_storage" version = "0.1.0" @@ -8550,10 +8554,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "smoke-test" -version = "0.1.0" - [[package]] name = "snow" version = "0.9.4" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..bf39dd639c --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +# Each major sub-repository in this monorepo has their own Makefiles; +# instead of making an even more compilicated common one, let's delegate to them. + +test: + make -C fvm-utils test + make -C ipc test + make -C ipld-resolver test + make -C fendermint test diff --git a/fendermint/Makefile b/fendermint/Makefile index ffde79ea85..bbce009016 100644 --- a/fendermint/Makefile +++ b/fendermint/Makefile @@ -2,13 +2,9 @@ BUILTIN_ACTORS_TAG ?= v11.0.0 BUILTIN_ACTORS_BUNDLE := $(PWD)/builtin-actors/output/bundle.car -BUILTIN_ACTORS_DIR := ../builtin-actors +BUILTIN_ACTORS_DIR := ../../builtin-actors -# Make sure this tag matches the one in Cargo.toml -IPC_ACTORS_TAG ?= origin/dev -IPC_ACTORS_DIR := $(PWD)/../ipc-solidity-actors -IPC_ACTORS_CODE := $(shell find $(IPC_ACTORS_DIR) -type f -name "*.sol") -IPC_ACTORS_ABI := .make/.ipc-actors-abi +IPC_ACTORS_DIR := $(PWD)/../contracts IPC_ACTORS_OUT := $(IPC_ACTORS_DIR)/out FENDERMINT_CODE := $(shell find . -type f \( -name "*.rs" -o -name "Cargo.toml" \) | grep -v target) @@ -37,10 +33,10 @@ install: cargo install --locked --path fendermint/app # Using --release for testing because wasm can otherwise be slow. -test: $(IPC_ACTORS_ABI) $(BUILTIN_ACTORS_BUNDLE) $(BUILTIN_ACTORS_DIR) +test: $(BUILTIN_ACTORS_BUNDLE) $(BUILTIN_ACTORS_DIR) FM_BUILTIN_ACTORS_BUNDLE=$(BUILTIN_ACTORS_BUNDLE) \ FM_CONTRACTS_DIR=$(IPC_ACTORS_OUT) \ - cargo test --release --workspace --exclude smoke-test + cargo test --release --package 'fendermint_*' e2e: docker-build $(BUILTIN_ACTORS_DIR) cd fendermint/testing/smoke-test && cargo make --profile $(PROFILE) @@ -65,7 +61,7 @@ check-fmt: check-clippy: cargo clippy --all --tests -- -D clippy::all -docker-deps: $(BUILTIN_ACTORS_BUNDLE) $(FENDERMINT_CODE) $(IPC_ACTORS_ABI) +docker-deps: $(BUILTIN_ACTORS_BUNDLE) $(FENDERMINT_CODE) rm -rf docker/.artifacts mkdir -p docker/.artifacts/contracts cp -r $(IPC_ACTORS_OUT)/* docker/.artifacts/contracts @@ -109,24 +105,6 @@ $(BUILTIN_ACTORS_DIR): git clone https://github.com/filecoin-project/builtin-actors.git . && \ git checkout $(BUILTIN_ACTORS_TAG) - -# Compile the ABI artifacts of the IPC Solidity actors. -ipc-actors-abi: $(IPC_ACTORS_ABI) - -# Check out the IPC Solidity actors if necessary so we get the ABI artifacts, putting down a marker at the end. -$(IPC_ACTORS_ABI): $(IPC_ACTORS_CODE) - if [ ! -d $(IPC_ACTORS_DIR) ]; then \ - mkdir -p $(IPC_ACTORS_DIR) && \ - cd $(IPC_ACTORS_DIR) && \ - git clone https://github.com/consensus-shipyard/ipc-solidity-actors.git .; \ - fi - cd $(IPC_ACTORS_DIR) && \ - git fetch origin && \ - git checkout $(IPC_ACTORS_TAG) - @# The ABI are already checked in; otherwise we'd have to compile with foundry - @# make -C $(IPC_ACTORS_DIR) compile-abi - mkdir -p $(dir $@) && touch $@ - .PHONY: protoc protoc: @if [ -z "$(shell which protoc)" ]; then \ diff --git a/fendermint/fendermint/eth/api/examples/ethers.rs b/fendermint/fendermint/eth/api/examples/ethers.rs index 7043962f5a..18faa440ac 100644 --- a/fendermint/fendermint/eth/api/examples/ethers.rs +++ b/fendermint/fendermint/eth/api/examples/ethers.rs @@ -61,10 +61,10 @@ type TestContractCall = ContractCall, T>; // This assumes that https://github.com/filecoin-project/builtin-actors is checked out next to this project, // which the Makefile in the root takes care of with `make actor-bundle`, a dependency of creating docker images. const SIMPLECOIN_HEX: &'static str = - include_str!("../../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.bin"); + include_str!("../../../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.bin"); // const SIMPLECOIN_ABI: &'static str = -// include_str!("../../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.abi"); +// include_str!("../../../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.abi"); /// Gas limit to set for transactions. const ENOUGH_GAS: u64 = 10_000_000_000u64; @@ -76,7 +76,7 @@ const FILTERS_ENABLED: bool = true; // An example of what it looks like is at https://github.com/filecoin-project/ref-fvm/blob/evm-integration-tests/testing/integration/tests/evm/src/simple_coin/simple_coin.rs abigen!( SimpleCoin, - "../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.abi" + "../../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.abi" ); #[derive(Parser, Debug)] diff --git a/fendermint/fendermint/rpc/examples/simplecoin.rs b/fendermint/fendermint/rpc/examples/simplecoin.rs index 4e0ae5f267..8577886be6 100644 --- a/fendermint/fendermint/rpc/examples/simplecoin.rs +++ b/fendermint/fendermint/rpc/examples/simplecoin.rs @@ -40,7 +40,7 @@ type MockProvider = ethers::providers::Provider type MockContractCall = ethers::prelude::ContractCall; const CONTRACT_HEX: &'static str = - include_str!("../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.bin"); + include_str!("../../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.bin"); lazy_static! { /// Default gas params based on the testkit. @@ -56,7 +56,7 @@ lazy_static! { // which the `make actor-bundle` command takes care of if it wasn't. abigen!( SimpleCoin, - "../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.abi" + "../../../../builtin-actors/actors/evm/tests/contracts/SimpleCoin.abi" ); // Alternatively we can generate the ABI code as follows: diff --git a/fendermint/fendermint/testing/contract-test/Cargo.toml b/fendermint/fendermint/testing/contract-test/Cargo.toml index 943a423f91..e3d02e6b79 100644 --- a/fendermint/fendermint/testing/contract-test/Cargo.toml +++ b/fendermint/fendermint/testing/contract-test/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "contract-test" +name = "fendermint_contract_test" description = "Model based testing for smart contracts" version = "0.1.0" authors.workspace = true diff --git a/fendermint/fendermint/testing/contract-test/tests/staking/machine.rs b/fendermint/fendermint/testing/contract-test/tests/staking/machine.rs index 554782dc57..4613454831 100644 --- a/fendermint/fendermint/testing/contract-test/tests/staking/machine.rs +++ b/fendermint/fendermint/testing/contract-test/tests/staking/machine.rs @@ -3,7 +3,7 @@ use std::{cell::RefCell, collections::HashSet, sync::Arc}; use arbitrary::{Arbitrary, Unstructured}; -use contract_test::ipc::{registry::RegistryCaller, subnet::SubnetCaller}; +use fendermint_contract_test::ipc::{registry::RegistryCaller, subnet::SubnetCaller}; use ethers::types as et; use fendermint_crypto::{PublicKey, SecretKey}; use fendermint_testing::smt::StateMachine; @@ -29,7 +29,7 @@ use super::{ choose_amount, state::{StakingAccount, StakingState}, }; -use contract_test::ipc::registry::SubnetConstructorParams; +use fendermint_contract_test::ipc::registry::SubnetConstructorParams; /// System Under Test for staking. pub struct StakingSystem { @@ -85,7 +85,7 @@ impl StateMachine for StakingMachine { let rt = tokio::runtime::Runtime::new().expect("create tokio runtime for init"); let (mut exec_state, _) = rt - .block_on(contract_test::init_exec_state( + .block_on(fendermint_contract_test::init_exec_state( self.multi_engine.clone(), state.parent_genesis.clone(), )) diff --git a/fendermint/fendermint/testing/smoke-test/Cargo.toml b/fendermint/fendermint/testing/smoke-test/Cargo.toml index 048e18af41..7da75698a7 100644 --- a/fendermint/fendermint/testing/smoke-test/Cargo.toml +++ b/fendermint/fendermint/testing/smoke-test/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "smoke-test" +name = "fendermint_smoke_test" description = "Provides some end-to-end integration testing between Fendermint and a full Tendermint node." version = "0.1.0" authors.workspace = true diff --git a/fvm-utils/Makefile b/fvm-utils/Makefile new file mode 100644 index 0000000000..ef306a70ab --- /dev/null +++ b/fvm-utils/Makefile @@ -0,0 +1,2 @@ +test: + cargo test --release --package primitives --package "fil_*" diff --git a/ipc/Cargo.lock b/ipc/Cargo.lock deleted file mode 100644 index c8bd9a529a..0000000000 --- a/ipc/Cargo.lock +++ /dev/null @@ -1,5793 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array 0.14.7", -] - -[[package]] -name = "aes" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" -dependencies = [ - "getrandom 0.2.11", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" -dependencies = [ - "cfg-if", - "getrandom 0.2.11", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "anstream" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" - -[[package]] -name = "anstyle-parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" -dependencies = [ - "anstyle", - "windows-sys 0.48.0", -] - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "argon2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9" -dependencies = [ - "base64ct", - "blake2", - "cpufeatures", - "password-hash 0.5.0", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-trait" -version = "0.1.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version", -] - -[[package]] -name = "auto_impl" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] -name = "bellperson" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1a8623f815c0b1fd89efd9b5f4afbb937f91f51c1ebe3f6dda399c69fa938f3" -dependencies = [ - "bincode", - "blake2s_simd 1.0.2", - "blstrs", - "byteorder", - "crossbeam-channel", - "digest 0.10.7", - "ec-gpu", - "ec-gpu-gen", - "ff 0.12.1", - "group 0.12.1", - "log", - "memmap2", - "pairing", - "rand 0.8.5", - "rand_core 0.6.4", - "rayon", - "rustversion", - "serde", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "blake2s_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq 0.1.5", -] - -[[package]] -name = "blake2s_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" -dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "bls-signatures" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1659e487883b92123806f16ff3568dd57563991231d187d29b23eea5d910e800" -dependencies = [ - "blst", - "blstrs", - "ff 0.12.1", - "group 0.12.1", - "pairing", - "rand_core 0.6.4", - "subtle", - "thiserror", -] - -[[package]] -name = "blst" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "blstrs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff3694b352ece02eb664a09ffb948ee69b35afa2e6ac444a6b8cb9d515deebd" -dependencies = [ - "blst", - "byte-slice-cast", - "ec-gpu", - "ff 0.12.1", - "group 0.12.1", - "pairing", - "rand_core 0.6.4", - "serde", - "subtle", -] - -[[package]] -name = "bs58" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -dependencies = [ - "serde", -] - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "camino" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "castaway" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc" -dependencies = [ - "rustversion", -] - -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - -[[package]] -name = "cbor4ii" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4" -dependencies = [ - "serde", -] - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "jobserver", - "libc", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" -dependencies = [ - "num-traits", -] - -[[package]] -name = "cid" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" -dependencies = [ - "core2", - "multibase", - "multihash", - "serde", - "serde_bytes", - "unsigned-varint", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", - "zeroize", -] - -[[package]] -name = "clap" -version = "4.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_complete" -version = "4.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae" -dependencies = [ - "clap", -] - -[[package]] -name = "clap_derive" -version = "4.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "clap_lex" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" - -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac 0.12.1", - "k256", - "serde", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.12.2", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.5", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "concurrent-queue" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "config" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ad70579325f1a38ea4c13412b82241c5900700a69785d73e2736bd65a33f86" -dependencies = [ - "async-trait", - "lazy_static", - "nom", - "pathdiff", - "serde", - "toml 0.5.11", -] - -[[package]] -name = "const-hex" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpufeatures" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" -dependencies = [ - "cfg-if", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array 0.14.7", - "subtle", -] - -[[package]] -name = "cs_serde_bytes" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc673ddabf48214550526b068dc28065a75f05e21e452880095247c635b1d91" -dependencies = [ - "serde", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "data-encoding" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" - -[[package]] -name = "data-encoding-macro" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - -[[package]] -name = "der" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "ec-gpu" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd63582de2b59ea1aa48d7c1941b5d87618d95484397521b3acdfa0e1e9f5e45" - -[[package]] -name = "ec-gpu-gen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd09bf9d5313ad60379f70250590bccc10f7a04e2773062ac13255a37022584e" -dependencies = [ - "bitvec", - "crossbeam-channel", - "ec-gpu", - "execute", - "ff 0.12.1", - "group 0.12.1", - "hex", - "log", - "num_cpus", - "once_cell", - "rayon", - "sha2 0.10.8", - "thiserror", - "yastl", -] - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff 0.13.0", - "generic-array 0.14.7", - "group 0.13.0", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "ena" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" -dependencies = [ - "base64 0.21.5", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "env_logger" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5344eea9b20effb5efeaad29418215c4d27017639fd1f908260f59cbbd226e" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c405f24ea3a517899ba7985385c43dc4a7eb1209af3b1e0a1a32d7dcc7f8d09" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0111ead599d17a7bff6985fd5756f39ca7033edc79a31b23026a8d5d64fa95cd" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51258120c6b47ea9d9bec0d90f9e8af71c977fbefbef8213c91bfed385fe45eb" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest", - "serde", - "serde_json", - "syn 2.0.39", - "toml 0.8.8", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e7a0f1197cee2b62dc89f63eff3201dbf87c283ff7e18d86d38f83b845483" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.39", -] - -[[package]] -name = "ethers-core" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f03e0bdc216eeb9e355b90cf610ef6c5bb8aca631f97b5ae9980ce34ea7878d" -dependencies = [ - "arrayvec 0.7.4", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum 0.25.0", - "syn 2.0.39", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abbac2c890bdbe0f1b8e549a53b00e2c4c1de86bb077c1094d1f38cdf9381a56" -dependencies = [ - "chrono", - "ethers-core", - "reqwest", - "semver", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681ece6eb1d10f7cf4f873059a77c04ff1de4f35c63dd7bccde8f438374fcb93" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25d6c0c9455d93d4990c06e049abf9b30daf148cf461ee939c11d88907c60816" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.5", - "bytes", - "const-hex", - "enr", - "ethers-core", - "futures-channel", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite 0.20.1", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb1b714e227bbd2d8c53528adb580b203009728b17d0d0e4119353aa9bc5532" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64f710586d147864cff66540a6d64518b9ff37d73ef827fee430538265b595f" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "execute" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a82608ee96ce76aeab659e9b8d3c2b787bffd223199af88c674923d861ada10" -dependencies = [ - "execute-command-macro", - "execute-command-tokens", - "generic-array 1.0.0", -] - -[[package]] -name = "execute-command-macro" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90dec53d547564e911dc4ff3ecb726a64cf41a6fa01a2370ebc0d95175dd08bd" -dependencies = [ - "execute-command-macro-impl", -] - -[[package]] -name = "execute-command-macro-impl" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b" -dependencies = [ - "execute-command-tokens", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "execute-command-tokens" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69dc321eb6be977f44674620ca3aa21703cb20ffbe560e1ae97da08401ffbcad" - -[[package]] -name = "eyre" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f656be11ddf91bd709454d15d5bd896fbaf4cc3314e69349e4d1569f5b46cd" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - -[[package]] -name = "fdlimit" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" -dependencies = [ - "libc", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fil_actors_runtime" -version = "0.0.1" -source = "git+https://github.com/consensus-shipyard/fvm-utils#368ad258a82204d0004b7321f1015373fb4d17b9" -dependencies = [ - "anyhow", - "base64 0.13.1", - "blake2b_simd", - "byteorder", - "castaway", - "cid", - "frc42_dispatch", - "fvm_ipld_amt", - "fvm_ipld_blockstore", - "fvm_ipld_encoding 0.3.3", - "fvm_ipld_hamt 0.5.1", - "fvm_sdk", - "fvm_shared", - "getrandom 0.2.11", - "indexmap 1.9.3", - "integer-encoding", - "itertools 0.10.5", - "lazy_static", - "log", - "multihash", - "num-derive", - "num-traits", - "paste", - "rand 0.7.3", - "regex", - "serde", - "serde_repr", - "serde_tuple", - "sha2 0.10.8", - "thiserror", - "unsigned-varint", -] - -[[package]] -name = "fil_pasta_curves" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3303ea3c462ab949ab95b49f6e6d255d8d9396ebd4f1626ccb34c7037615aa8f" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "lazy_static", - "rand 0.8.5", - "static_assertions", - "subtle", -] - -[[package]] -name = "filecoin-hashers" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d7e656d4f01d7772ef2dd0f59854c8f904370a946053cf37ef420c854d9a35" -dependencies = [ - "anyhow", - "bellperson", - "blstrs", - "ff 0.12.1", - "generic-array 0.14.7", - "hex", - "lazy_static", - "merkletree", - "neptune", - "rand 0.8.5", - "serde", - "sha2 0.10.8", -] - -[[package]] -name = "filecoin-proofs" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00449c0e89be0922127e7e927e578247825450abdaf0da2fc30b733cb0e535b" -dependencies = [ - "anyhow", - "bellperson", - "bincode", - "blake2b_simd", - "blstrs", - "filecoin-hashers", - "fr32", - "generic-array 0.14.7", - "hex", - "lazy_static", - "log", - "memmap2", - "merkletree", - "once_cell", - "rand 0.8.5", - "rayon", - "serde", - "serde_json", - "sha2 0.10.8", - "storage-proofs-core", - "storage-proofs-porep", - "storage-proofs-post", - "storage-proofs-update", - "typenum", -] - -[[package]] -name = "filecoin-proofs-api" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347a43603e12b147cc3d8285fee27771e1e9702d90f1f8e5018b8dd96b5da467" -dependencies = [ - "anyhow", - "bellperson", - "bincode", - "blstrs", - "filecoin-hashers", - "filecoin-proofs", - "fr32", - "lazy_static", - "serde", - "storage-proofs-core", -] - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "flume" -version = "0.10.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" -dependencies = [ - "spin 0.9.8", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "forest_hash_utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb061ad769411763a5d6ae39d596696657472b25a66387fbb0ba8c133bb6575" -dependencies = [ - "cs_serde_bytes", - "serde", -] - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fr32" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f07b8a600b8c699f8ddc5f520231bc2aac03e944c64055eccfd9a959c3fd60" -dependencies = [ - "anyhow", - "blstrs", - "byte-slice-cast", - "byteorder", - "ff 0.12.1", - "thiserror", -] - -[[package]] -name = "frc42_dispatch" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fda233581861602b8c1c0922a44d79977cb0f56cfe1c3b71eafb589d1da749" -dependencies = [ - "frc42_hasher", - "frc42_macros", - "fvm_ipld_encoding 0.3.3", - "fvm_sdk", - "fvm_shared", - "thiserror", -] - -[[package]] -name = "frc42_hasher" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1cf7cebdc57c39906ba8b1148cde4a633cd76614131b983eb4c07f35c735d0" -dependencies = [ - "fvm_sdk", - "fvm_shared", - "thiserror", -] - -[[package]] -name = "frc42_macros" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9479347c6b83b53f1c041045e9954e3213bb6d1cfc9d2f2927340765a1aabd58" -dependencies = [ - "blake2b_simd", - "frc42_hasher", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" - -[[package]] -name = "futures-executor" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "futures-sink" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" - -[[package]] -name = "futures-task" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" - -[[package]] -name = "futures-timer" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - -[[package]] -name = "futures-util" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fvm_ipld_amt" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d09e5aa7de45452676d18fcb70b750acd65faae7a4fe18fe784b4c85f869fb" -dependencies = [ - "ahash 0.7.7", - "anyhow", - "cid", - "fvm_ipld_blockstore", - "fvm_ipld_encoding 0.2.3", - "itertools 0.10.5", - "once_cell", - "serde", - "thiserror", -] - -[[package]] -name = "fvm_ipld_blockstore" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee8c75be2b58943e1a9755802d34d4c3934f6ea151b6be192ff98f644e515bd" -dependencies = [ - "anyhow", - "cid", - "multihash", -] - -[[package]] -name = "fvm_ipld_encoding" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa1ff5ba581625ab38cf2829fbd04ac232c6277466fdbe0270b42dcb976902d5" -dependencies = [ - "anyhow", - "cid", - "cs_serde_bytes", - "fvm_ipld_blockstore", - "multihash", - "serde", - "serde_ipld_dagcbor", - "serde_repr", - "serde_tuple", - "thiserror", -] - -[[package]] -name = "fvm_ipld_encoding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0816a2a6df4853de08a723d261110d56a121aa313bc570fe9d248f0a4bc5288" -dependencies = [ - "anyhow", - "cid", - "fvm_ipld_blockstore", - "multihash", - "serde", - "serde_ipld_dagcbor", - "serde_repr", - "serde_tuple", - "thiserror", -] - -[[package]] -name = "fvm_ipld_hamt" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b5c939897aa1bfd63e7cb9c458ba10689371af3278ff20d66c6f8ca152c6c0" -dependencies = [ - "anyhow", - "byteorder", - "cid", - "cs_serde_bytes", - "forest_hash_utils", - "fvm_ipld_blockstore", - "fvm_ipld_encoding 0.2.3", - "libipld-core 0.13.1", - "multihash", - "once_cell", - "serde", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "fvm_ipld_hamt" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c942494dde990aeac314311bde34c787be99cab7d0836397a75556cbaa2c3e7" -dependencies = [ - "anyhow", - "byteorder", - "cid", - "forest_hash_utils", - "fvm_ipld_blockstore", - "fvm_ipld_encoding 0.3.3", - "libipld-core 0.14.0", - "multihash", - "once_cell", - "serde", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "fvm_sdk" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8ac1214ca6c31bcbb4e2e7461cd17af18e0496b9053547d465f15c8d8429a7" -dependencies = [ - "cid", - "fvm_ipld_encoding 0.3.3", - "fvm_shared", - "lazy_static", - "log", - "num-traits", - "thiserror", -] - -[[package]] -name = "fvm_shared" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "674e86afc2ce02808d24f578296f105b13c23300e60e0eac331c4c1575beabb5" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "blake2b_simd", - "bls-signatures", - "cid", - "data-encoding", - "data-encoding-macro", - "filecoin-proofs-api", - "fvm_ipld_encoding 0.3.3", - "lazy_static", - "libsecp256k1", - "multihash", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "serde", - "serde_tuple", - "thiserror", - "unsigned-varint", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "generic-array" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe739944a5406424e080edccb6add95685130b9f160d5407c639c7df0c5836b0" -dependencies = [ - "typenum", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand 0.8.5", - "rand_core 0.6.4", - "rand_xorshift", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 2.1.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.7", - "hmac 0.8.1", -] - -[[package]] -name = "home" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "http" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.10", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http", - "hyper", - "rustls", - "tokio", - "tokio-rustls", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", -] - -[[package]] -name = "indoc" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding", - "generic-array 0.14.7", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "integer-encoding" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" - -[[package]] -name = "ipc-cli" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-channel", - "async-trait", - "base64 0.21.5", - "bytes", - "cid", - "clap", - "clap_complete", - "env_logger 0.10.1", - "ethers", - "ethers-contract", - "fil_actors_runtime", - "futures-util", - "fvm_ipld_encoding 0.3.3", - "fvm_shared", - "hex", - "ipc-identity", - "ipc-provider", - "ipc-sdk", - "libsecp256k1", - "log", - "num-derive", - "num-traits", - "primitives", - "reqwest", - "serde", - "serde_bytes", - "serde_json", - "serde_tuple", - "strum 0.24.1", - "thiserror", - "tokio", - "tokio-tungstenite 0.18.0", - "toml 0.7.8", - "url", - "zeroize", -] - -[[package]] -name = "ipc-identity" -version = "0.1.0" -dependencies = [ - "ahash 0.8.6", - "anyhow", - "argon2", - "base64 0.21.5", - "blake2b_simd", - "bls-signatures", - "ethers", - "fvm_shared", - "hex", - "libc", - "libsecp256k1", - "log", - "primitives", - "quickcheck", - "quickcheck_macros", - "rand 0.8.5", - "serde", - "serde_ipld_dagcbor", - "serde_json", - "tempfile", - "thiserror", - "tokio", - "xsalsa20poly1305", - "zeroize", -] - -[[package]] -name = "ipc-provider" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-channel", - "async-trait", - "base64 0.21.5", - "bytes", - "cid", - "dirs", - "ethers", - "ethers-contract", - "fil_actors_runtime", - "futures-util", - "fvm_ipld_encoding 0.3.3", - "fvm_shared", - "hex", - "indoc", - "ipc-identity", - "ipc-sdk", - "ipc_actors_abis", - "log", - "num-derive", - "num-traits", - "primitives", - "reqwest", - "serde", - "serde_bytes", - "serde_json", - "serde_tuple", - "strum 0.24.1", - "tempfile", - "thiserror", - "tokio", - "tokio-tungstenite 0.18.0", - "toml 0.7.8", - "url", - "zeroize", -] - -[[package]] -name = "ipc-sdk" -version = "0.1.0" -dependencies = [ - "anyhow", - "cid", - "ethers", - "fil_actors_runtime", - "fnv", - "fvm_ipld_blockstore", - "fvm_ipld_encoding 0.3.3", - "fvm_ipld_hamt 0.6.1", - "fvm_shared", - "integer-encoding", - "ipc_actors_abis", - "lazy_static", - "log", - "num-traits", - "primitives", - "serde", - "serde_json", - "serde_tuple", - "thiserror", -] - -[[package]] -name = "ipc_actors_abis" -version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/ipc-solidity-actors.git?branch=dev#ae9edfbf9ca41fbf31f28b8428229f091ada0917" -dependencies = [ - "anyhow", - "ethers", - "fvm_shared", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "jobserver" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.5", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "k256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2 0.10.8", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lalrpop" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" -dependencies = [ - "ascii-canvas", - "bit-set", - "diff", - "ena", - "is-terminal", - "itertools 0.10.5", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax 0.7.5", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.150" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" - -[[package]] -name = "libipld-core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdd758764f9680a818af33c31db733eb7c45224715d8816b9dcf0548c75f7c5" -dependencies = [ - "anyhow", - "cid", - "core2", - "multibase", - "multihash", - "serde", - "thiserror", -] - -[[package]] -name = "libipld-core" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44790246ec6b7314cba745992c23d479d018073e66d49ae40ae1b64e5dd8eb5" -dependencies = [ - "anyhow", - "cid", - "core2", - "multibase", - "multihash", - "serde", - "thiserror", -] - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libredox" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" -dependencies = [ - "bitflags 2.4.1", - "libc", - "redox_syscall", -] - -[[package]] -name = "libsecp256k1" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" -dependencies = [ - "arrayref", - "base64 0.13.1", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.5", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" - -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "merkletree" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d348b5b0d1707be1c8a727b7078daa08e2a3051d63b35715a19c35a324d2aaac" -dependencies = [ - "anyhow", - "arrayref", - "log", - "memmap2", - "positioned-io", - "rayon", - "serde", - "tempfile", - "typenum", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" -dependencies = [ - "blake2b_simd", - "core2", - "digest 0.10.7", - "multihash-derive", - "ripemd", - "serde", - "serde-big-array", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "neptune" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dedb261f1b35ddfd867295eacbc25eb78b4b5b63b08b1c0dc4c1b5ef0e5b2c2" -dependencies = [ - "bellperson", - "blake2s_simd 0.5.11", - "blstrs", - "byteorder", - "ff 0.12.1", - "fil_pasta_curves", - "generic-array 0.14.7", - "itertools 0.8.2", - "lazy_static", - "log", - "trait-set", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" -dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "object" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec 0.7.4", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "openssl" -version = "0.10.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" -dependencies = [ - "bitflags 2.4.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.96" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "pairing" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" -dependencies = [ - "group 0.12.1", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" -dependencies = [ - "arrayvec 0.7.4", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" -dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.48.5", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", - "password-hash 0.4.2", - "sha2 0.10.8", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "petgraph" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" -dependencies = [ - "fixedbitset", - "indexmap 2.1.0", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "positioned-io" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccabfeeb89c73adf4081f0dca7f8e28dbda90981a222ceea37f619e93ea6afe9" -dependencies = [ - "byteorder", - "libc", - "winapi", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "pretty_assertions" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" -dependencies = [ - "diff", - "yansi", -] - -[[package]] -name = "prettyplease" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" -dependencies = [ - "proc-macro2", - "syn 2.0.39", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "primitives" -version = "0.1.0" -source = "git+https://github.com/consensus-shipyard/fvm-utils#368ad258a82204d0004b7321f1015373fb4d17b9" -dependencies = [ - "anyhow", - "cid", - "fil_actors_runtime", - "fvm_ipld_blockstore", - "fvm_ipld_encoding 0.3.3", - "fvm_ipld_hamt 0.5.1", - "fvm_shared", - "hex", - "indexmap 1.9.3", - "integer-encoding", - "lazy_static", - "log", - "num-derive", - "num-traits", - "serde", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" -dependencies = [ - "bitflags 2.4.1", - "lazy_static", - "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax 0.8.2", - "unarray", -] - -[[package]] -name = "quickcheck" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" -dependencies = [ - "env_logger 0.8.4", - "log", - "rand 0.8.5", -] - -[[package]] -name = "quickcheck_macros" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.11", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rayon" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" -dependencies = [ - "getrandom 0.2.11", - "libredox", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-automata" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "reqwest" -version = "0.11.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" -dependencies = [ - "base64 0.21.5", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "system-configuration", - "tokio", - "tokio-native-tls", - "tokio-rustls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" -dependencies = [ - "cc", - "getrandom 0.2.11", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.48.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rlp-derive", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.38.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" -dependencies = [ - "bitflags 2.4.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustls" -version = "0.21.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" -dependencies = [ - "log", - "ring 0.17.6", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.5", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.6", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" -dependencies = [ - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "schannel" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.8", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.6", - "untrusted 0.9.0", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array 0.14.7", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" -dependencies = [ - "serde", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.193" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-big-array" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.193" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_ipld_dagcbor" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e23de7a4a18dff77ab9531f279a882500b8cf3549fde044d4e10481b411f1e" -dependencies = [ - "cbor4ii", - "cid", - "scopeguard", - "serde", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_spanned" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_tuple" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f025b91216f15a2a32aa39669329a475733590a015835d1783549a56d09427" -dependencies = [ - "serde", - "serde_tuple_macros", -] - -[[package]] -name = "serde_tuple_macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4076151d1a2b688e25aaf236997933c66e18b870d0369f8b248b8ab2be630d7e" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", - "sha2-asm", -] - -[[package]] -name = "sha2-asm" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27ba7066011e3fb30d808b51affff34f0a66d3a03a58edd787c6e420e40e44e" -dependencies = [ - "cc", -] - -[[package]] -name = "sha2raw" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ec45c74ebb91d25e61e14cfc1925e7571723ae14a38fc6c8bd0b2e516db101" -dependencies = [ - "byteorder", - "cpufeatures", - "digest 0.10.7", - "fake-simd", - "lazy_static", - "opaque-debug", - "sha2-asm", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "storage-proofs-core" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f756ef2dd06efda2eb30bf6806399d493072d8469b0a724f1905dc051fea59c1" -dependencies = [ - "aes", - "anyhow", - "bellperson", - "blake2b_simd", - "blstrs", - "byteorder", - "cbc", - "config", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "fs2", - "generic-array 0.14.7", - "itertools 0.10.5", - "lazy_static", - "log", - "memmap2", - "merkletree", - "num_cpus", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rayon", - "semver", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "storage-proofs-porep" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2450a62eb009602a4a4d697a027ab1025657cd76b325a99dfeb8d263d44b1c5c" -dependencies = [ - "anyhow", - "bellperson", - "bincode", - "blstrs", - "byte-slice-cast", - "byteorder", - "crossbeam", - "fdlimit", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "generic-array 0.14.7", - "hex", - "lazy_static", - "libc", - "log", - "memmap2", - "merkletree", - "neptune", - "num-bigint", - "num-traits", - "num_cpus", - "pretty_assertions", - "rayon", - "rustversion", - "serde", - "serde_json", - "sha2 0.10.8", - "sha2raw", - "storage-proofs-core", - "yastl", -] - -[[package]] -name = "storage-proofs-post" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e034a55f3c5137120c4cd1abb717cd397c660447c4393c2550be3ee5b070c4" -dependencies = [ - "anyhow", - "bellperson", - "blake2b_simd", - "blstrs", - "byteorder", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "generic-array 0.14.7", - "hex", - "log", - "rayon", - "serde", - "sha2 0.10.8", - "storage-proofs-core", -] - -[[package]] -name = "storage-proofs-update" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3433b2832153e2744bfa87176dcb0b587392b57fd1bd770804d366c98822285a" -dependencies = [ - "anyhow", - "bellperson", - "blstrs", - "ff 0.12.1", - "filecoin-hashers", - "fr32", - "generic-array 0.14.7", - "lazy_static", - "log", - "memmap2", - "merkletree", - "neptune", - "rayon", - "serde", - "storage-proofs-core", - "storage-proofs-porep", -] - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] - -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" -dependencies = [ - "strum_macros 0.25.3", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "strum_macros" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.39", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "svm-rs" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20689c7d03b6461b502d0b95d6c24874c7d24dea2688af80486a130a06af3b07" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest", - "semver", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "url", - "zip", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" -dependencies = [ - "deranged", - "itoa", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" -dependencies = [ - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.5.5", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" -dependencies = [ - "futures-util", - "log", - "native-tls", - "tokio", - "tokio-native-tls", - "tungstenite 0.18.0", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls", - "tokio", - "tokio-rustls", - "tungstenite 0.20.1", - "webpki-roots", -] - -[[package]] -name = "tokio-util" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.21.0", -] - -[[package]] -name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.1.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap 2.1.0", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" -dependencies = [ - "indexmap 2.1.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "trait-set" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "tungstenite" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" -dependencies = [ - "base64 0.13.1", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "native-tls", - "rand 0.8.5", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.8.5", - "rustls", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.11", - "serde", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.39", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" - -[[package]] -name = "web-sys" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.0", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" - -[[package]] -name = "winnow" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "xsalsa20poly1305" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a6dad357567f81cd78ee75f7c61f1b30bb2fe4390be8fb7c69e2ac8dffb6c7" -dependencies = [ - "aead", - "poly1305", - "salsa20", - "subtle", - "zeroize", -] - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "yastl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca6c5a4d66c1a9ea261811cf4773c27343de7e5033e1b75ea3f297dc7db3c1a" -dependencies = [ - "flume", - "scopeguard", -] - -[[package]] -name = "zerocopy" -version = "0.7.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/ipc/Cargo.toml b/ipc/Cargo.toml deleted file mode 100644 index 0b763788ed..0000000000 --- a/ipc/Cargo.toml +++ /dev/null @@ -1,66 +0,0 @@ -[workspace] -resolver = "2" -members = [ - "ipc/cli", - "ipc/provider", - "ipc/identity", - "ipc/sdk", -] - -[workspace.package] -authors = ["Protocol Labs"] -edition = "2021" -license-file = "LICENSE" - -[workspace.dependencies] -anyhow = "1.0" -reqwest = { version = "0.11.13", features = ["json"] } -async-trait = "0.1.73" -async-channel = "1.8.0" -url = { version = "2.3.1", features = ["serde"] } -num-traits = "0.2.15" -base64 = "0.21.0" -lazy_static = "1.4" -log = "0.4" -env_logger = "0.10" -cid = { version = "0.8.3", default-features = false, features = ["serde-codec"] } -futures-util = { version = "0.3", default-features = false, features = ["sink", "std"] } -prometheus = "0.13" -serde = { version = "1.0", features = ["derive"] } -serde_tuple = "0.5.0" -tokio = { version = "1.16", features = ["full"] } -tokio-tungstenite = { version = "0.18.0", features = ["native-tls"] } -thiserror = "1.0.38" -quickcheck = "1" -quickcheck_macros = "1" -blake2b_simd = "1.0" -rand = "0.8" -hex = "0.4.3" -tempfile = "3.4.0" -serde_json = { version = "1.0.91", features = ["raw_value"] } - -ipc_actors_abis = { git = "https://github.com/consensus-shipyard/ipc-solidity-actors.git", branch = "dev" } - -libipld = { version = "0.14", default-features = false, features = ["dag-cbor"] } -libsecp256k1 = "0.7" -ethers = "2.0.8" -ethers-contract = "2.0.8" - -ipc-sdk = { path = "./ipc/sdk" } - -fvm_ipld_blockstore = "0.1.1" -fvm_ipld_encoding = "0.3.3" -fvm_ipld_hamt = "0.6" -fvm_shared = { version = "=3.2.0", default-features = false, features = ["crypto"] } -fil_actors_runtime = { git = "https://github.com/consensus-shipyard/fvm-utils", features = [ - "fil-actor", -] } -primitives = { git = "https://github.com/consensus-shipyard/fvm-utils" } - -# Uncomment to point to you local versions -# [patch."https://github.com/consensus-shipyard/fvm-utils"] -# primitives = { path = "../fvm-utils/primitives" } -# fil_actors_runtime = { path = "../fvm-utils/runtime" } - -# [patch."https://github.com/consensus-shipyard/ipc-solidity-actors.git"] -# ipc_actors_abis = { path = "../ipc-solidity-actors/binding" } diff --git a/ipc/Makefile b/ipc/Makefile index bf98860ce5..86e721b16b 100644 --- a/ipc/Makefile +++ b/ipc/Makefile @@ -6,7 +6,7 @@ build: cargo build --release -p ipc-cli && mkdir -p bin/ && cp target/release/ipc-cli ./bin/ipc-cli test: - cargo test --release --workspace --exclude ipc_e2e itest + cargo test --release --package 'ipc-*' itest: cargo test -p itest --test checkpoint -- --nocapture diff --git a/ipld-resolver/Makefile b/ipld-resolver/Makefile index c5ef24e9cb..07a7f42587 100644 --- a/ipld-resolver/Makefile +++ b/ipld-resolver/Makefile @@ -6,7 +6,7 @@ build: cargo build -Z unstable-options --release test: - cargo test --release --workspace + cargo test --release --package ipc_ipld_resolver clean: cargo clean From 4a9a0dfd6cf778e74d870049250c716fc790c892 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Mon, 18 Dec 2023 21:35:06 +0000 Subject: [PATCH 3/9] TEST: Test contracts --- Makefile | 1 + contracts/Makefile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index bf39dd639c..9908732474 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ # instead of making an even more compilicated common one, let's delegate to them. test: + make -C contracts test make -C fvm-utils test make -C ipc test make -C ipld-resolver test diff --git a/contracts/Makefile b/contracts/Makefile index 7d3ca9d244..48d4bd5e84 100644 --- a/contracts/Makefile +++ b/contracts/Makefile @@ -46,7 +46,7 @@ fmt: build: | forge forge build -test: +test: | forge forge test -vvv --ffi install-dev: install-npm-package install-eth-abi From fa23a91a4136298ac6fb361e8f0d71a7b7e9a1c2 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Mon, 18 Dec 2023 22:00:40 +0000 Subject: [PATCH 4/9] TEST: Use path substitution to run tests --- Makefile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 9908732474..7f1154108a 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,10 @@ # Each major sub-repository in this monorepo has their own Makefiles; # instead of making an even more compilicated common one, let's delegate to them. -test: - make -C contracts test - make -C fvm-utils test - make -C ipc test - make -C ipld-resolver test - make -C fendermint test +SUBTREES := contracts fvm-utils ipc ipld-resolver fendermint + +test: $(patsubst %, test/%, $(SUBTREES)) + +test/%: + @# Using `cd` instead of `-C` so $(PWD) is correct. + cd $* && make test From 72edc47baa0f7eb53b22002dcb7570c298292455 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Mon, 18 Dec 2023 22:02:27 +0000 Subject: [PATCH 5/9] TEST: make check --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 7f1154108a..b4e487bcf9 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,13 @@ # Each major sub-repository in this monorepo has their own Makefiles; # instead of making an even more compilicated common one, let's delegate to them. -SUBTREES := contracts fvm-utils ipc ipld-resolver fendermint +SUBTREES := contracts fvm-utils ipc ipld-resolver fendermint test: $(patsubst %, test/%, $(SUBTREES)) test/%: @# Using `cd` instead of `-C` so $(PWD) is correct. cd $* && make test + +check: + cargo check From 2df79b7215ec6c72e68073ef86f4173d2cf6789c Mon Sep 17 00:00:00 2001 From: Alfonso de la Rocha Date: Tue, 19 Dec 2023 10:18:10 +0100 Subject: [PATCH 6/9] FIX: solidity deps submodules --- .gitmodules | 15 + .../lib/forge-std/.github/workflows/ci.yml | 92 - .../lib/forge-std/.github/workflows/sync.yml | 29 - contracts/lib/forge-std/.gitignore | 4 - contracts/lib/forge-std/.gitmodules | 3 - contracts/lib/forge-std/LICENSE-APACHE | 203 --- contracts/lib/forge-std/LICENSE-MIT | 25 - contracts/lib/forge-std/README.md | 250 --- contracts/lib/forge-std/foundry.toml | 21 - .../lib/ds-test/.github/workflows/build.yml | 41 - .../lib/forge-std/lib/ds-test/.gitignore | 4 - contracts/lib/forge-std/lib/ds-test/LICENSE | 674 ------- contracts/lib/forge-std/lib/ds-test/Makefile | 14 - .../lib/forge-std/lib/ds-test/default.nix | 4 - .../lib/forge-std/lib/ds-test/demo/demo.sol | 222 --- .../lib/forge-std/lib/ds-test/package.json | 15 - .../lib/forge-std/lib/ds-test/src/test.sol | 592 ------- .../lib/forge-std/lib/ds-test/src/test.t.sol | 417 ----- contracts/lib/forge-std/package.json | 16 - contracts/lib/forge-std/src/Base.sol | 33 - contracts/lib/forge-std/src/Script.sol | 26 - contracts/lib/forge-std/src/StdAssertions.sol | 376 ---- contracts/lib/forge-std/src/StdChains.sol | 231 --- contracts/lib/forge-std/src/StdCheats.sol | 639 ------- contracts/lib/forge-std/src/StdError.sol | 15 - contracts/lib/forge-std/src/StdInvariant.sol | 92 - contracts/lib/forge-std/src/StdJson.sol | 179 -- contracts/lib/forge-std/src/StdMath.sol | 43 - contracts/lib/forge-std/src/StdStorage.sol | 327 ---- contracts/lib/forge-std/src/StdStyle.sol | 333 ---- contracts/lib/forge-std/src/StdUtils.sol | 192 -- contracts/lib/forge-std/src/Test.sol | 32 - contracts/lib/forge-std/src/Vm.sol | 490 ------ contracts/lib/forge-std/src/console.sol | 1533 ---------------- contracts/lib/forge-std/src/console2.sol | 1546 ----------------- .../lib/forge-std/src/interfaces/IERC1155.sol | 105 -- .../lib/forge-std/src/interfaces/IERC165.sol | 12 - .../lib/forge-std/src/interfaces/IERC20.sol | 43 - .../lib/forge-std/src/interfaces/IERC4626.sol | 190 -- .../lib/forge-std/src/interfaces/IERC721.sol | 164 -- .../forge-std/src/interfaces/IMulticall3.sol | 73 - .../lib/forge-std/test/StdAssertions.t.sol | 999 ----------- contracts/lib/forge-std/test/StdChains.t.sol | 160 -- contracts/lib/forge-std/test/StdCheats.t.sol | 418 ----- contracts/lib/forge-std/test/StdError.t.sol | 118 -- contracts/lib/forge-std/test/StdMath.t.sol | 197 --- contracts/lib/forge-std/test/StdStorage.t.sol | 283 --- contracts/lib/forge-std/test/StdStyle.t.sol | 110 -- contracts/lib/forge-std/test/StdUtils.t.sol | 297 ---- .../test/compilation/CompilationScript.sol | 10 - .../compilation/CompilationScriptBase.sol | 10 - .../test/compilation/CompilationTest.sol | 10 - .../test/compilation/CompilationTestBase.sol | 10 - .../test/fixtures/broadcast.log.json | 187 -- 54 files changed, 15 insertions(+), 12109 deletions(-) create mode 100644 .gitmodules delete mode 100644 contracts/lib/forge-std/.github/workflows/ci.yml delete mode 100644 contracts/lib/forge-std/.github/workflows/sync.yml delete mode 100644 contracts/lib/forge-std/.gitignore delete mode 100644 contracts/lib/forge-std/.gitmodules delete mode 100644 contracts/lib/forge-std/LICENSE-APACHE delete mode 100644 contracts/lib/forge-std/LICENSE-MIT delete mode 100644 contracts/lib/forge-std/README.md delete mode 100644 contracts/lib/forge-std/foundry.toml delete mode 100644 contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml delete mode 100644 contracts/lib/forge-std/lib/ds-test/.gitignore delete mode 100644 contracts/lib/forge-std/lib/ds-test/LICENSE delete mode 100644 contracts/lib/forge-std/lib/ds-test/Makefile delete mode 100644 contracts/lib/forge-std/lib/ds-test/default.nix delete mode 100644 contracts/lib/forge-std/lib/ds-test/demo/demo.sol delete mode 100644 contracts/lib/forge-std/lib/ds-test/package.json delete mode 100644 contracts/lib/forge-std/lib/ds-test/src/test.sol delete mode 100644 contracts/lib/forge-std/lib/ds-test/src/test.t.sol delete mode 100644 contracts/lib/forge-std/package.json delete mode 100644 contracts/lib/forge-std/src/Base.sol delete mode 100644 contracts/lib/forge-std/src/Script.sol delete mode 100644 contracts/lib/forge-std/src/StdAssertions.sol delete mode 100644 contracts/lib/forge-std/src/StdChains.sol delete mode 100644 contracts/lib/forge-std/src/StdCheats.sol delete mode 100644 contracts/lib/forge-std/src/StdError.sol delete mode 100644 contracts/lib/forge-std/src/StdInvariant.sol delete mode 100644 contracts/lib/forge-std/src/StdJson.sol delete mode 100644 contracts/lib/forge-std/src/StdMath.sol delete mode 100644 contracts/lib/forge-std/src/StdStorage.sol delete mode 100644 contracts/lib/forge-std/src/StdStyle.sol delete mode 100644 contracts/lib/forge-std/src/StdUtils.sol delete mode 100644 contracts/lib/forge-std/src/Test.sol delete mode 100644 contracts/lib/forge-std/src/Vm.sol delete mode 100644 contracts/lib/forge-std/src/console.sol delete mode 100644 contracts/lib/forge-std/src/console2.sol delete mode 100644 contracts/lib/forge-std/src/interfaces/IERC1155.sol delete mode 100644 contracts/lib/forge-std/src/interfaces/IERC165.sol delete mode 100644 contracts/lib/forge-std/src/interfaces/IERC20.sol delete mode 100644 contracts/lib/forge-std/src/interfaces/IERC4626.sol delete mode 100644 contracts/lib/forge-std/src/interfaces/IERC721.sol delete mode 100644 contracts/lib/forge-std/src/interfaces/IMulticall3.sol delete mode 100644 contracts/lib/forge-std/test/StdAssertions.t.sol delete mode 100644 contracts/lib/forge-std/test/StdChains.t.sol delete mode 100644 contracts/lib/forge-std/test/StdCheats.t.sol delete mode 100644 contracts/lib/forge-std/test/StdError.t.sol delete mode 100644 contracts/lib/forge-std/test/StdMath.t.sol delete mode 100644 contracts/lib/forge-std/test/StdStorage.t.sol delete mode 100644 contracts/lib/forge-std/test/StdStyle.t.sol delete mode 100644 contracts/lib/forge-std/test/StdUtils.t.sol delete mode 100644 contracts/lib/forge-std/test/compilation/CompilationScript.sol delete mode 100644 contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol delete mode 100644 contracts/lib/forge-std/test/compilation/CompilationTest.sol delete mode 100644 contracts/lib/forge-std/test/compilation/CompilationTestBase.sol delete mode 100644 contracts/lib/forge-std/test/fixtures/broadcast.log.json diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..13d1b17549 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,15 @@ +[submodule "lib/forge-std"] + path = contracts/lib/forge-std + url = https://github.com/foundry-rs/forge-std +[submodule "lib/openzeppelin-contracts"] + path = contracts/lib/openzeppelin-contracts + url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/fevmate"] + path = contracts/lib/fevmate + url = https://github.com/wadealexc/fevmate +[submodule "lib/murky"] + path = contracts/lib/murky + url = https://github.com/dmfxyz/murky +[submodule "lib/elliptic-curve-solidity"] + path = contracts/lib/elliptic-curve-solidity + url = https://github.com/witnet/elliptic-curve-solidity diff --git a/contracts/lib/forge-std/.github/workflows/ci.yml b/contracts/lib/forge-std/.github/workflows/ci.yml deleted file mode 100644 index 96b23365ec..0000000000 --- a/contracts/lib/forge-std/.github/workflows/ci.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: CI - -on: - workflow_dispatch: - pull_request: - push: - branches: - - master - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Install Foundry - uses: onbjerg/foundry-toolchain@v1 - with: - version: nightly - - - name: Print forge version - run: forge --version - - # Backwards compatibility checks. - - name: Check compatibility with 0.8.0 - if: always() - run: forge build --skip test --use solc:0.8.0 - - - name: Check compatibility with 0.7.6 - if: always() - run: forge build --skip test --use solc:0.7.6 - - - name: Check compatibility with 0.7.0 - if: always() - run: forge build --skip test --use solc:0.7.0 - - - name: Check compatibility with 0.6.12 - if: always() - run: forge build --skip test --use solc:0.6.12 - - - name: Check compatibility with 0.6.2 - if: always() - run: forge build --skip test --use solc:0.6.2 - - # via-ir compilation time checks. - - name: Measure compilation time of Test with 0.8.17 --via-ir - if: always() - run: forge build --skip test --contracts test/compilation/CompilationTest.sol --use solc:0.8.17 --via-ir - - - name: Measure compilation time of TestBase with 0.8.17 --via-ir - if: always() - run: forge build --skip test --contracts test/compilation/CompilationTestBase.sol --use solc:0.8.17 --via-ir - - - name: Measure compilation time of Script with 0.8.17 --via-ir - if: always() - run: forge build --skip test --contracts test/compilation/CompilationScript.sol --use solc:0.8.17 --via-ir - - - name: Measure compilation time of ScriptBase with 0.8.17 --via-ir - if: always() - run: forge build --skip test --contracts test/compilation/CompilationScriptBase.sol --use solc:0.8.17 --via-ir - - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Install Foundry - uses: onbjerg/foundry-toolchain@v1 - with: - version: nightly - - - name: Print forge version - run: forge --version - - - name: Run tests - run: forge test -vvv - - fmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Install Foundry - uses: onbjerg/foundry-toolchain@v1 - with: - version: nightly - - - name: Print forge version - run: forge --version - - - name: Check formatting - run: forge fmt --check diff --git a/contracts/lib/forge-std/.github/workflows/sync.yml b/contracts/lib/forge-std/.github/workflows/sync.yml deleted file mode 100644 index 5a9e9d5913..0000000000 --- a/contracts/lib/forge-std/.github/workflows/sync.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Sync Release Branch - -on: - release: - types: - - created - -jobs: - sync-release-branch: - runs-on: ubuntu-latest - if: startsWith(github.event.release.tag_name, 'v1') - steps: - - name: Check out the repo - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: v1 - - - name: Configure Git - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - - name: Sync Release Branch - run: | - git fetch --tags - git checkout v1 - git reset --hard ${GITHUB_REF} - git push --force diff --git a/contracts/lib/forge-std/.gitignore b/contracts/lib/forge-std/.gitignore deleted file mode 100644 index 756106d388..0000000000 --- a/contracts/lib/forge-std/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -cache/ -out/ -.vscode -.idea diff --git a/contracts/lib/forge-std/.gitmodules b/contracts/lib/forge-std/.gitmodules deleted file mode 100644 index e12471968b..0000000000 --- a/contracts/lib/forge-std/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "lib/ds-test"] - path = lib/ds-test - url = https://github.com/dapphub/ds-test diff --git a/contracts/lib/forge-std/LICENSE-APACHE b/contracts/lib/forge-std/LICENSE-APACHE deleted file mode 100644 index cf01a499fb..0000000000 --- a/contracts/lib/forge-std/LICENSE-APACHE +++ /dev/null @@ -1,203 +0,0 @@ -Copyright Contributors to Forge Standard Library - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/contracts/lib/forge-std/LICENSE-MIT b/contracts/lib/forge-std/LICENSE-MIT deleted file mode 100644 index 28f98304ac..0000000000 --- a/contracts/lib/forge-std/LICENSE-MIT +++ /dev/null @@ -1,25 +0,0 @@ -Copyright Contributors to Forge Standard Library - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE O THE USE OR OTHER -DEALINGS IN THE SOFTWARE.R diff --git a/contracts/lib/forge-std/README.md b/contracts/lib/forge-std/README.md deleted file mode 100644 index 8494a7dd5e..0000000000 --- a/contracts/lib/forge-std/README.md +++ /dev/null @@ -1,250 +0,0 @@ -# Forge Standard Library • [![CI status](https://github.com/foundry-rs/forge-std/actions/workflows/ci.yml/badge.svg)](https://github.com/foundry-rs/forge-std/actions/workflows/ci.yml) - -Forge Standard Library is a collection of helpful contracts and libraries for use with [Forge and Foundry](https://github.com/foundry-rs/foundry). It leverages Forge's cheatcodes to make writing tests easier and faster, while improving the UX of cheatcodes. - -**Learn how to use Forge-Std with the [📖 Foundry Book (Forge-Std Guide)](https://book.getfoundry.sh/forge/forge-std.html).** - -## Install - -```bash -forge install foundry-rs/forge-std -``` - -## Contracts -### stdError - -This is a helper contract for errors and reverts. In Forge, this contract is particularly helpful for the `expectRevert` cheatcode, as it provides all compiler builtin errors. - -See the contract itself for all error codes. - -#### Example usage - -```solidity - -import "forge-std/Test.sol"; - -contract TestContract is Test { - ErrorsTest test; - - function setUp() public { - test = new ErrorsTest(); - } - - function testExpectArithmetic() public { - vm.expectRevert(stdError.arithmeticError); - test.arithmeticError(10); - } -} - -contract ErrorsTest { - function arithmeticError(uint256 a) public { - uint256 a = a - 100; - } -} -``` - -### stdStorage - -This is a rather large contract due to all of the overloading to make the UX decent. Primarily, it is a wrapper around the `record` and `accesses` cheatcodes. It can *always* find and write the storage slot(s) associated with a particular variable without knowing the storage layout. The one _major_ caveat to this is while a slot can be found for packed storage variables, we can't write to that variable safely. If a user tries to write to a packed slot, the execution throws an error, unless it is uninitialized (`bytes32(0)`). - -This works by recording all `SLOAD`s and `SSTORE`s during a function call. If there is a single slot read or written to, it immediately returns the slot. Otherwise, behind the scenes, we iterate through and check each one (assuming the user passed in a `depth` parameter). If the variable is a struct, you can pass in a `depth` parameter which is basically the field depth. - -I.e.: -```solidity -struct T { - // depth 0 - uint256 a; - // depth 1 - uint256 b; -} -``` - -#### Example usage - -```solidity -import "forge-std/Test.sol"; - -contract TestContract is Test { - using stdStorage for StdStorage; - - Storage test; - - function setUp() public { - test = new Storage(); - } - - function testFindExists() public { - // Lets say we want to find the slot for the public - // variable `exists`. We just pass in the function selector - // to the `find` command - uint256 slot = stdstore.target(address(test)).sig("exists()").find(); - assertEq(slot, 0); - } - - function testWriteExists() public { - // Lets say we want to write to the slot for the public - // variable `exists`. We just pass in the function selector - // to the `checked_write` command - stdstore.target(address(test)).sig("exists()").checked_write(100); - assertEq(test.exists(), 100); - } - - // It supports arbitrary storage layouts, like assembly based storage locations - function testFindHidden() public { - // `hidden` is a random hash of a bytes, iteration through slots would - // not find it. Our mechanism does - // Also, you can use the selector instead of a string - uint256 slot = stdstore.target(address(test)).sig(test.hidden.selector).find(); - assertEq(slot, uint256(keccak256("my.random.var"))); - } - - // If targeting a mapping, you have to pass in the keys necessary to perform the find - // i.e.: - function testFindMapping() public { - uint256 slot = stdstore - .target(address(test)) - .sig(test.map_addr.selector) - .with_key(address(this)) - .find(); - // in the `Storage` constructor, we wrote that this address' value was 1 in the map - // so when we load the slot, we expect it to be 1 - assertEq(uint(vm.load(address(test), bytes32(slot))), 1); - } - - // If the target is a struct, you can specify the field depth: - function testFindStruct() public { - // NOTE: see the depth parameter - 0 means 0th field, 1 means 1st field, etc. - uint256 slot_for_a_field = stdstore - .target(address(test)) - .sig(test.basicStruct.selector) - .depth(0) - .find(); - - uint256 slot_for_b_field = stdstore - .target(address(test)) - .sig(test.basicStruct.selector) - .depth(1) - .find(); - - assertEq(uint(vm.load(address(test), bytes32(slot_for_a_field))), 1); - assertEq(uint(vm.load(address(test), bytes32(slot_for_b_field))), 2); - } -} - -// A complex storage contract -contract Storage { - struct UnpackedStruct { - uint256 a; - uint256 b; - } - - constructor() { - map_addr[msg.sender] = 1; - } - - uint256 public exists = 1; - mapping(address => uint256) public map_addr; - // mapping(address => Packed) public map_packed; - mapping(address => UnpackedStruct) public map_struct; - mapping(address => mapping(address => uint256)) public deep_map; - mapping(address => mapping(address => UnpackedStruct)) public deep_map_struct; - UnpackedStruct public basicStruct = UnpackedStruct({ - a: 1, - b: 2 - }); - - function hidden() public view returns (bytes32 t) { - // an extremely hidden storage slot - bytes32 slot = keccak256("my.random.var"); - assembly { - t := sload(slot) - } - } -} -``` - -### stdCheats - -This is a wrapper over miscellaneous cheatcodes that need wrappers to be more dev friendly. Currently there are only functions related to `prank`. In general, users may expect ETH to be put into an address on `prank`, but this is not the case for safety reasons. Explicitly this `hoax` function should only be used for address that have expected balances as it will get overwritten. If an address already has ETH, you should just use `prank`. If you want to change that balance explicitly, just use `deal`. If you want to do both, `hoax` is also right for you. - - -#### Example usage: -```solidity - -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import "forge-std/Test.sol"; - -// Inherit the stdCheats -contract StdCheatsTest is Test { - Bar test; - function setUp() public { - test = new Bar(); - } - - function testHoax() public { - // we call `hoax`, which gives the target address - // eth and then calls `prank` - hoax(address(1337)); - test.bar{value: 100}(address(1337)); - - // overloaded to allow you to specify how much eth to - // initialize the address with - hoax(address(1337), 1); - test.bar{value: 1}(address(1337)); - } - - function testStartHoax() public { - // we call `startHoax`, which gives the target address - // eth and then calls `startPrank` - // - // it is also overloaded so that you can specify an eth amount - startHoax(address(1337)); - test.bar{value: 100}(address(1337)); - test.bar{value: 100}(address(1337)); - vm.stopPrank(); - test.bar(address(this)); - } -} - -contract Bar { - function bar(address expectedSender) public payable { - require(msg.sender == expectedSender, "!prank"); - } -} -``` - -### Std Assertions - -Expand upon the assertion functions from the `DSTest` library. - -### `console.log` - -Usage follows the same format as [Hardhat](https://hardhat.org/hardhat-network/reference/#console-log). -It's recommended to use `console2.sol` as shown below, as this will show the decoded logs in Forge traces. - -```solidity -// import it indirectly via Test.sol -import "forge-std/Test.sol"; -// or directly import it -import "forge-std/console2.sol"; -... -console2.log(someValue); -``` - -If you need compatibility with Hardhat, you must use the standard `console.sol` instead. -Due to a bug in `console.sol`, logs that use `uint256` or `int256` types will not be properly decoded in Forge traces. - -```solidity -// import it indirectly via Test.sol -import "forge-std/Test.sol"; -// or directly import it -import "forge-std/console.sol"; -... -console.log(someValue); -``` - -## License - -Forge Standard Library is offered under either [MIT](LICENSE-MIT) or [Apache 2.0](LICENSE-APACHE) license. diff --git a/contracts/lib/forge-std/foundry.toml b/contracts/lib/forge-std/foundry.toml deleted file mode 100644 index f9679ee61a..0000000000 --- a/contracts/lib/forge-std/foundry.toml +++ /dev/null @@ -1,21 +0,0 @@ -[profile.default] -fs_permissions = [{ access = "read-write", path = "./"}] - -[rpc_endpoints] -# The RPC URLs are modified versions of the default for testing initialization. -mainnet = "https://mainnet.infura.io/v3/b1d3925804e74152b316ca7da97060d3" # Different API key. -optimism_goerli = "https://goerli.optimism.io/" # Adds a trailing slash. -arbitrum_one_goerli = "https://goerli-rollup.arbitrum.io/rpc/" # Adds a trailing slash. -needs_undefined_env_var = "${UNDEFINED_RPC_URL_PLACEHOLDER}" - -[fmt] -# These are all the `forge fmt` defaults. -line_length = 120 -tab_width = 4 -bracket_spacing = false -int_types = 'long' -multiline_func_header = 'attributes_first' -quote_style = 'double' -number_underscore = 'preserve' -single_line_statement_blocks = 'preserve' -ignore = ["src/console.sol", "src/console2.sol"] \ No newline at end of file diff --git a/contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml b/contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml deleted file mode 100644 index d2ff97db70..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: "Build" -on: - pull_request: - push: -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} - - - name: setup dapp binary cache - uses: cachix/cachix-action@v12 - with: - name: dapp - - - name: install dapptools - run: nix profile install github:dapphub/dapptools#dapp --accept-flake-config - - - name: install foundry - uses: foundry-rs/foundry-toolchain@v1 - - - name: test with solc-0.5.17 - run: dapp --use solc-0.5.17 test -v - - - name: test with solc-0.6.11 - run: dapp --use solc-0.6.11 test -v - - - name: test with solc-0.7.6 - run: dapp --use solc-0.7.6 test -v - - - name: test with solc-0.8.18 - run: dapp --use solc-0.8.18 test -v - - - name: Run tests with foundry - run: forge test -vvv - diff --git a/contracts/lib/forge-std/lib/ds-test/.gitignore b/contracts/lib/forge-std/lib/ds-test/.gitignore deleted file mode 100644 index 462a994901..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.dapple -/build -/out -/cache/ diff --git a/contracts/lib/forge-std/lib/ds-test/LICENSE b/contracts/lib/forge-std/lib/ds-test/LICENSE deleted file mode 100644 index 94a9ed024d..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/contracts/lib/forge-std/lib/ds-test/Makefile b/contracts/lib/forge-std/lib/ds-test/Makefile deleted file mode 100644 index 661dac4868..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -all:; dapp build - -test: - -dapp --use solc:0.4.23 build - -dapp --use solc:0.4.26 build - -dapp --use solc:0.5.17 build - -dapp --use solc:0.6.12 build - -dapp --use solc:0.7.5 build - -demo: - DAPP_SRC=demo dapp --use solc:0.7.5 build - -hevm dapp-test --verbose 3 - -.PHONY: test demo diff --git a/contracts/lib/forge-std/lib/ds-test/default.nix b/contracts/lib/forge-std/lib/ds-test/default.nix deleted file mode 100644 index cf65419ab4..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ solidityPackage, dappsys }: solidityPackage { - name = "ds-test"; - src = ./src; -} diff --git a/contracts/lib/forge-std/lib/ds-test/demo/demo.sol b/contracts/lib/forge-std/lib/ds-test/demo/demo.sol deleted file mode 100644 index f3bb48e701..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/demo/demo.sol +++ /dev/null @@ -1,222 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity >=0.5.0; - -import "../src/test.sol"; - -contract DemoTest is DSTest { - function test_this() public pure { - require(true); - } - function test_logs() public { - emit log("-- log(string)"); - emit log("a string"); - - emit log("-- log_named_uint(string, uint)"); - emit log_named_uint("uint", 512); - - emit log("-- log_named_int(string, int)"); - emit log_named_int("int", -512); - - emit log("-- log_named_address(string, address)"); - emit log_named_address("address", address(this)); - - emit log("-- log_named_bytes32(string, bytes32)"); - emit log_named_bytes32("bytes32", "a string"); - - emit log("-- log_named_bytes(string, bytes)"); - emit log_named_bytes("bytes", hex"cafefe"); - - emit log("-- log_named_string(string, string)"); - emit log_named_string("string", "a string"); - - emit log("-- log_named_decimal_uint(string, uint, uint)"); - emit log_named_decimal_uint("decimal uint", 1.0e18, 18); - - emit log("-- log_named_decimal_int(string, int, uint)"); - emit log_named_decimal_int("decimal int", -1.0e18, 18); - } - event log_old_named_uint(bytes32,uint); - function test_old_logs() public { - emit log_old_named_uint("key", 500); - emit log_named_bytes32("bkey", "val"); - } - function test_trace() public view { - this.echo("string 1", "string 2"); - } - function test_multiline() public { - emit log("a multiline\\nstring"); - emit log("a multiline string"); - emit log_bytes("a string"); - emit log_bytes("a multiline\nstring"); - emit log_bytes("a multiline\\nstring"); - emit logs(hex"0000"); - emit log_named_bytes("0x0000", hex"0000"); - emit logs(hex"ff"); - } - function echo(string memory s1, string memory s2) public pure - returns (string memory, string memory) - { - return (s1, s2); - } - - function prove_this(uint x) public { - emit log_named_uint("sym x", x); - assertGt(x + 1, 0); - } - - function test_logn() public { - assembly { - log0(0x01, 0x02) - log1(0x01, 0x02, 0x03) - log2(0x01, 0x02, 0x03, 0x04) - log3(0x01, 0x02, 0x03, 0x04, 0x05) - } - } - - event MyEvent(uint, uint indexed, uint, uint indexed); - function test_events() public { - emit MyEvent(1, 2, 3, 4); - } - - function test_asserts() public { - string memory err = "this test has failed!"; - emit log("## assertTrue(bool)\n"); - assertTrue(false); - emit log("\n"); - assertTrue(false, err); - - emit log("\n## assertEq(address,address)\n"); - assertEq(address(this), msg.sender); - emit log("\n"); - assertEq(address(this), msg.sender, err); - - emit log("\n## assertEq32(bytes32,bytes32)\n"); - assertEq32("bytes 1", "bytes 2"); - emit log("\n"); - assertEq32("bytes 1", "bytes 2", err); - - emit log("\n## assertEq(bytes32,bytes32)\n"); - assertEq32("bytes 1", "bytes 2"); - emit log("\n"); - assertEq32("bytes 1", "bytes 2", err); - - emit log("\n## assertEq(uint,uint)\n"); - assertEq(uint(0), 1); - emit log("\n"); - assertEq(uint(0), 1, err); - - emit log("\n## assertEq(int,int)\n"); - assertEq(-1, -2); - emit log("\n"); - assertEq(-1, -2, err); - - emit log("\n## assertEqDecimal(int,int,uint)\n"); - assertEqDecimal(-1.0e18, -1.1e18, 18); - emit log("\n"); - assertEqDecimal(-1.0e18, -1.1e18, 18, err); - - emit log("\n## assertEqDecimal(uint,uint,uint)\n"); - assertEqDecimal(uint(1.0e18), 1.1e18, 18); - emit log("\n"); - assertEqDecimal(uint(1.0e18), 1.1e18, 18, err); - - emit log("\n## assertGt(uint,uint)\n"); - assertGt(uint(0), 0); - emit log("\n"); - assertGt(uint(0), 0, err); - - emit log("\n## assertGt(int,int)\n"); - assertGt(-1, -1); - emit log("\n"); - assertGt(-1, -1, err); - - emit log("\n## assertGtDecimal(int,int,uint)\n"); - assertGtDecimal(-2.0e18, -1.1e18, 18); - emit log("\n"); - assertGtDecimal(-2.0e18, -1.1e18, 18, err); - - emit log("\n## assertGtDecimal(uint,uint,uint)\n"); - assertGtDecimal(uint(1.0e18), 1.1e18, 18); - emit log("\n"); - assertGtDecimal(uint(1.0e18), 1.1e18, 18, err); - - emit log("\n## assertGe(uint,uint)\n"); - assertGe(uint(0), 1); - emit log("\n"); - assertGe(uint(0), 1, err); - - emit log("\n## assertGe(int,int)\n"); - assertGe(-1, 0); - emit log("\n"); - assertGe(-1, 0, err); - - emit log("\n## assertGeDecimal(int,int,uint)\n"); - assertGeDecimal(-2.0e18, -1.1e18, 18); - emit log("\n"); - assertGeDecimal(-2.0e18, -1.1e18, 18, err); - - emit log("\n## assertGeDecimal(uint,uint,uint)\n"); - assertGeDecimal(uint(1.0e18), 1.1e18, 18); - emit log("\n"); - assertGeDecimal(uint(1.0e18), 1.1e18, 18, err); - - emit log("\n## assertLt(uint,uint)\n"); - assertLt(uint(0), 0); - emit log("\n"); - assertLt(uint(0), 0, err); - - emit log("\n## assertLt(int,int)\n"); - assertLt(-1, -1); - emit log("\n"); - assertLt(-1, -1, err); - - emit log("\n## assertLtDecimal(int,int,uint)\n"); - assertLtDecimal(-1.0e18, -1.1e18, 18); - emit log("\n"); - assertLtDecimal(-1.0e18, -1.1e18, 18, err); - - emit log("\n## assertLtDecimal(uint,uint,uint)\n"); - assertLtDecimal(uint(2.0e18), 1.1e18, 18); - emit log("\n"); - assertLtDecimal(uint(2.0e18), 1.1e18, 18, err); - - emit log("\n## assertLe(uint,uint)\n"); - assertLe(uint(1), 0); - emit log("\n"); - assertLe(uint(1), 0, err); - - emit log("\n## assertLe(int,int)\n"); - assertLe(0, -1); - emit log("\n"); - assertLe(0, -1, err); - - emit log("\n## assertLeDecimal(int,int,uint)\n"); - assertLeDecimal(-1.0e18, -1.1e18, 18); - emit log("\n"); - assertLeDecimal(-1.0e18, -1.1e18, 18, err); - - emit log("\n## assertLeDecimal(uint,uint,uint)\n"); - assertLeDecimal(uint(2.0e18), 1.1e18, 18); - emit log("\n"); - assertLeDecimal(uint(2.0e18), 1.1e18, 18, err); - - emit log("\n## assertEq(string,string)\n"); - string memory s1 = "string 1"; - string memory s2 = "string 2"; - assertEq(s1, s2); - emit log("\n"); - assertEq(s1, s2, err); - - emit log("\n## assertEq0(bytes,bytes)\n"); - assertEq0(hex"abcdef01", hex"abcdef02"); - emit log("\n"); - assertEq0(hex"abcdef01", hex"abcdef02", err); - } -} - -contract DemoTestWithSetUp { - function setUp() public { - } - function test_pass() public pure { - } -} diff --git a/contracts/lib/forge-std/lib/ds-test/package.json b/contracts/lib/forge-std/lib/ds-test/package.json deleted file mode 100644 index 4802adaa32..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "ds-test", - "version": "1.0.0", - "description": "Assertions, equality checks and other test helpers ", - "bugs": "https://github.com/dapphub/ds-test/issues", - "license": "GPL-3.0", - "author": "Contributors to ds-test", - "files": [ - "src/*" - ], - "repository": { - "type": "git", - "url": "https://github.com/dapphub/ds-test.git" - } -} diff --git a/contracts/lib/forge-std/lib/ds-test/src/test.sol b/contracts/lib/forge-std/lib/ds-test/src/test.sol deleted file mode 100644 index 2bf337567f..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/src/test.sol +++ /dev/null @@ -1,592 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -pragma solidity >=0.5.0; - -contract DSTest { - event log (string); - event logs (bytes); - - event log_address (address); - event log_bytes32 (bytes32); - event log_int (int); - event log_uint (uint); - event log_bytes (bytes); - event log_string (string); - - event log_named_address (string key, address val); - event log_named_bytes32 (string key, bytes32 val); - event log_named_decimal_int (string key, int val, uint decimals); - event log_named_decimal_uint (string key, uint val, uint decimals); - event log_named_int (string key, int val); - event log_named_uint (string key, uint val); - event log_named_bytes (string key, bytes val); - event log_named_string (string key, string val); - - bool public IS_TEST = true; - bool private _failed; - - address constant HEVM_ADDRESS = - address(bytes20(uint160(uint256(keccak256('hevm cheat code'))))); - - modifier mayRevert() { _; } - modifier testopts(string memory) { _; } - - function failed() public returns (bool) { - if (_failed) { - return _failed; - } else { - bool globalFailed = false; - if (hasHEVMContext()) { - (, bytes memory retdata) = HEVM_ADDRESS.call( - abi.encodePacked( - bytes4(keccak256("load(address,bytes32)")), - abi.encode(HEVM_ADDRESS, bytes32("failed")) - ) - ); - globalFailed = abi.decode(retdata, (bool)); - } - return globalFailed; - } - } - - function fail() internal virtual { - if (hasHEVMContext()) { - (bool status, ) = HEVM_ADDRESS.call( - abi.encodePacked( - bytes4(keccak256("store(address,bytes32,bytes32)")), - abi.encode(HEVM_ADDRESS, bytes32("failed"), bytes32(uint256(0x01))) - ) - ); - status; // Silence compiler warnings - } - _failed = true; - } - - function hasHEVMContext() internal view returns (bool) { - uint256 hevmCodeSize = 0; - assembly { - hevmCodeSize := extcodesize(0x7109709ECfa91a80626fF3989D68f67F5b1DD12D) - } - return hevmCodeSize > 0; - } - - modifier logs_gas() { - uint startGas = gasleft(); - _; - uint endGas = gasleft(); - emit log_named_uint("gas", startGas - endGas); - } - - function assertTrue(bool condition) internal { - if (!condition) { - emit log("Error: Assertion Failed"); - fail(); - } - } - - function assertTrue(bool condition, string memory err) internal { - if (!condition) { - emit log_named_string("Error", err); - assertTrue(condition); - } - } - - function assertEq(address a, address b) internal { - if (a != b) { - emit log("Error: a == b not satisfied [address]"); - emit log_named_address(" Left", a); - emit log_named_address(" Right", b); - fail(); - } - } - function assertEq(address a, address b, string memory err) internal { - if (a != b) { - emit log_named_string ("Error", err); - assertEq(a, b); - } - } - - function assertEq(bytes32 a, bytes32 b) internal { - if (a != b) { - emit log("Error: a == b not satisfied [bytes32]"); - emit log_named_bytes32(" Left", a); - emit log_named_bytes32(" Right", b); - fail(); - } - } - function assertEq(bytes32 a, bytes32 b, string memory err) internal { - if (a != b) { - emit log_named_string ("Error", err); - assertEq(a, b); - } - } - function assertEq32(bytes32 a, bytes32 b) internal { - assertEq(a, b); - } - function assertEq32(bytes32 a, bytes32 b, string memory err) internal { - assertEq(a, b, err); - } - - function assertEq(int a, int b) internal { - if (a != b) { - emit log("Error: a == b not satisfied [int]"); - emit log_named_int(" Left", a); - emit log_named_int(" Right", b); - fail(); - } - } - function assertEq(int a, int b, string memory err) internal { - if (a != b) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - function assertEq(uint a, uint b) internal { - if (a != b) { - emit log("Error: a == b not satisfied [uint]"); - emit log_named_uint(" Left", a); - emit log_named_uint(" Right", b); - fail(); - } - } - function assertEq(uint a, uint b, string memory err) internal { - if (a != b) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - function assertEqDecimal(int a, int b, uint decimals) internal { - if (a != b) { - emit log("Error: a == b not satisfied [decimal int]"); - emit log_named_decimal_int(" Left", a, decimals); - emit log_named_decimal_int(" Right", b, decimals); - fail(); - } - } - function assertEqDecimal(int a, int b, uint decimals, string memory err) internal { - if (a != b) { - emit log_named_string("Error", err); - assertEqDecimal(a, b, decimals); - } - } - function assertEqDecimal(uint a, uint b, uint decimals) internal { - if (a != b) { - emit log("Error: a == b not satisfied [decimal uint]"); - emit log_named_decimal_uint(" Left", a, decimals); - emit log_named_decimal_uint(" Right", b, decimals); - fail(); - } - } - function assertEqDecimal(uint a, uint b, uint decimals, string memory err) internal { - if (a != b) { - emit log_named_string("Error", err); - assertEqDecimal(a, b, decimals); - } - } - - function assertNotEq(address a, address b) internal { - if (a == b) { - emit log("Error: a != b not satisfied [address]"); - emit log_named_address(" Left", a); - emit log_named_address(" Right", b); - fail(); - } - } - function assertNotEq(address a, address b, string memory err) internal { - if (a == b) { - emit log_named_string ("Error", err); - assertNotEq(a, b); - } - } - - function assertNotEq(bytes32 a, bytes32 b) internal { - if (a == b) { - emit log("Error: a != b not satisfied [bytes32]"); - emit log_named_bytes32(" Left", a); - emit log_named_bytes32(" Right", b); - fail(); - } - } - function assertNotEq(bytes32 a, bytes32 b, string memory err) internal { - if (a == b) { - emit log_named_string ("Error", err); - assertNotEq(a, b); - } - } - function assertNotEq32(bytes32 a, bytes32 b) internal { - assertNotEq(a, b); - } - function assertNotEq32(bytes32 a, bytes32 b, string memory err) internal { - assertNotEq(a, b, err); - } - - function assertNotEq(int a, int b) internal { - if (a == b) { - emit log("Error: a != b not satisfied [int]"); - emit log_named_int(" Left", a); - emit log_named_int(" Right", b); - fail(); - } - } - function assertNotEq(int a, int b, string memory err) internal { - if (a == b) { - emit log_named_string("Error", err); - assertNotEq(a, b); - } - } - function assertNotEq(uint a, uint b) internal { - if (a == b) { - emit log("Error: a != b not satisfied [uint]"); - emit log_named_uint(" Left", a); - emit log_named_uint(" Right", b); - fail(); - } - } - function assertNotEq(uint a, uint b, string memory err) internal { - if (a == b) { - emit log_named_string("Error", err); - assertNotEq(a, b); - } - } - function assertNotEqDecimal(int a, int b, uint decimals) internal { - if (a == b) { - emit log("Error: a != b not satisfied [decimal int]"); - emit log_named_decimal_int(" Left", a, decimals); - emit log_named_decimal_int(" Right", b, decimals); - fail(); - } - } - function assertNotEqDecimal(int a, int b, uint decimals, string memory err) internal { - if (a == b) { - emit log_named_string("Error", err); - assertNotEqDecimal(a, b, decimals); - } - } - function assertNotEqDecimal(uint a, uint b, uint decimals) internal { - if (a == b) { - emit log("Error: a != b not satisfied [decimal uint]"); - emit log_named_decimal_uint(" Left", a, decimals); - emit log_named_decimal_uint(" Right", b, decimals); - fail(); - } - } - function assertNotEqDecimal(uint a, uint b, uint decimals, string memory err) internal { - if (a == b) { - emit log_named_string("Error", err); - assertNotEqDecimal(a, b, decimals); - } - } - - function assertGt(uint a, uint b) internal { - if (a <= b) { - emit log("Error: a > b not satisfied [uint]"); - emit log_named_uint(" Value a", a); - emit log_named_uint(" Value b", b); - fail(); - } - } - function assertGt(uint a, uint b, string memory err) internal { - if (a <= b) { - emit log_named_string("Error", err); - assertGt(a, b); - } - } - function assertGt(int a, int b) internal { - if (a <= b) { - emit log("Error: a > b not satisfied [int]"); - emit log_named_int(" Value a", a); - emit log_named_int(" Value b", b); - fail(); - } - } - function assertGt(int a, int b, string memory err) internal { - if (a <= b) { - emit log_named_string("Error", err); - assertGt(a, b); - } - } - function assertGtDecimal(int a, int b, uint decimals) internal { - if (a <= b) { - emit log("Error: a > b not satisfied [decimal int]"); - emit log_named_decimal_int(" Value a", a, decimals); - emit log_named_decimal_int(" Value b", b, decimals); - fail(); - } - } - function assertGtDecimal(int a, int b, uint decimals, string memory err) internal { - if (a <= b) { - emit log_named_string("Error", err); - assertGtDecimal(a, b, decimals); - } - } - function assertGtDecimal(uint a, uint b, uint decimals) internal { - if (a <= b) { - emit log("Error: a > b not satisfied [decimal uint]"); - emit log_named_decimal_uint(" Value a", a, decimals); - emit log_named_decimal_uint(" Value b", b, decimals); - fail(); - } - } - function assertGtDecimal(uint a, uint b, uint decimals, string memory err) internal { - if (a <= b) { - emit log_named_string("Error", err); - assertGtDecimal(a, b, decimals); - } - } - - function assertGe(uint a, uint b) internal { - if (a < b) { - emit log("Error: a >= b not satisfied [uint]"); - emit log_named_uint(" Value a", a); - emit log_named_uint(" Value b", b); - fail(); - } - } - function assertGe(uint a, uint b, string memory err) internal { - if (a < b) { - emit log_named_string("Error", err); - assertGe(a, b); - } - } - function assertGe(int a, int b) internal { - if (a < b) { - emit log("Error: a >= b not satisfied [int]"); - emit log_named_int(" Value a", a); - emit log_named_int(" Value b", b); - fail(); - } - } - function assertGe(int a, int b, string memory err) internal { - if (a < b) { - emit log_named_string("Error", err); - assertGe(a, b); - } - } - function assertGeDecimal(int a, int b, uint decimals) internal { - if (a < b) { - emit log("Error: a >= b not satisfied [decimal int]"); - emit log_named_decimal_int(" Value a", a, decimals); - emit log_named_decimal_int(" Value b", b, decimals); - fail(); - } - } - function assertGeDecimal(int a, int b, uint decimals, string memory err) internal { - if (a < b) { - emit log_named_string("Error", err); - assertGeDecimal(a, b, decimals); - } - } - function assertGeDecimal(uint a, uint b, uint decimals) internal { - if (a < b) { - emit log("Error: a >= b not satisfied [decimal uint]"); - emit log_named_decimal_uint(" Value a", a, decimals); - emit log_named_decimal_uint(" Value b", b, decimals); - fail(); - } - } - function assertGeDecimal(uint a, uint b, uint decimals, string memory err) internal { - if (a < b) { - emit log_named_string("Error", err); - assertGeDecimal(a, b, decimals); - } - } - - function assertLt(uint a, uint b) internal { - if (a >= b) { - emit log("Error: a < b not satisfied [uint]"); - emit log_named_uint(" Value a", a); - emit log_named_uint(" Value b", b); - fail(); - } - } - function assertLt(uint a, uint b, string memory err) internal { - if (a >= b) { - emit log_named_string("Error", err); - assertLt(a, b); - } - } - function assertLt(int a, int b) internal { - if (a >= b) { - emit log("Error: a < b not satisfied [int]"); - emit log_named_int(" Value a", a); - emit log_named_int(" Value b", b); - fail(); - } - } - function assertLt(int a, int b, string memory err) internal { - if (a >= b) { - emit log_named_string("Error", err); - assertLt(a, b); - } - } - function assertLtDecimal(int a, int b, uint decimals) internal { - if (a >= b) { - emit log("Error: a < b not satisfied [decimal int]"); - emit log_named_decimal_int(" Value a", a, decimals); - emit log_named_decimal_int(" Value b", b, decimals); - fail(); - } - } - function assertLtDecimal(int a, int b, uint decimals, string memory err) internal { - if (a >= b) { - emit log_named_string("Error", err); - assertLtDecimal(a, b, decimals); - } - } - function assertLtDecimal(uint a, uint b, uint decimals) internal { - if (a >= b) { - emit log("Error: a < b not satisfied [decimal uint]"); - emit log_named_decimal_uint(" Value a", a, decimals); - emit log_named_decimal_uint(" Value b", b, decimals); - fail(); - } - } - function assertLtDecimal(uint a, uint b, uint decimals, string memory err) internal { - if (a >= b) { - emit log_named_string("Error", err); - assertLtDecimal(a, b, decimals); - } - } - - function assertLe(uint a, uint b) internal { - if (a > b) { - emit log("Error: a <= b not satisfied [uint]"); - emit log_named_uint(" Value a", a); - emit log_named_uint(" Value b", b); - fail(); - } - } - function assertLe(uint a, uint b, string memory err) internal { - if (a > b) { - emit log_named_string("Error", err); - assertLe(a, b); - } - } - function assertLe(int a, int b) internal { - if (a > b) { - emit log("Error: a <= b not satisfied [int]"); - emit log_named_int(" Value a", a); - emit log_named_int(" Value b", b); - fail(); - } - } - function assertLe(int a, int b, string memory err) internal { - if (a > b) { - emit log_named_string("Error", err); - assertLe(a, b); - } - } - function assertLeDecimal(int a, int b, uint decimals) internal { - if (a > b) { - emit log("Error: a <= b not satisfied [decimal int]"); - emit log_named_decimal_int(" Value a", a, decimals); - emit log_named_decimal_int(" Value b", b, decimals); - fail(); - } - } - function assertLeDecimal(int a, int b, uint decimals, string memory err) internal { - if (a > b) { - emit log_named_string("Error", err); - assertLeDecimal(a, b, decimals); - } - } - function assertLeDecimal(uint a, uint b, uint decimals) internal { - if (a > b) { - emit log("Error: a <= b not satisfied [decimal uint]"); - emit log_named_decimal_uint(" Value a", a, decimals); - emit log_named_decimal_uint(" Value b", b, decimals); - fail(); - } - } - function assertLeDecimal(uint a, uint b, uint decimals, string memory err) internal { - if (a > b) { - emit log_named_string("Error", err); - assertLeDecimal(a, b, decimals); - } - } - - function assertEq(string memory a, string memory b) internal { - if (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b))) { - emit log("Error: a == b not satisfied [string]"); - emit log_named_string(" Left", a); - emit log_named_string(" Right", b); - fail(); - } - } - function assertEq(string memory a, string memory b, string memory err) internal { - if (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b))) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - - function assertNotEq(string memory a, string memory b) internal { - if (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))) { - emit log("Error: a != b not satisfied [string]"); - emit log_named_string(" Left", a); - emit log_named_string(" Right", b); - fail(); - } - } - function assertNotEq(string memory a, string memory b, string memory err) internal { - if (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))) { - emit log_named_string("Error", err); - assertNotEq(a, b); - } - } - - function checkEq0(bytes memory a, bytes memory b) internal pure returns (bool ok) { - ok = true; - if (a.length == b.length) { - for (uint i = 0; i < a.length; i++) { - if (a[i] != b[i]) { - ok = false; - } - } - } else { - ok = false; - } - } - function assertEq0(bytes memory a, bytes memory b) internal { - if (!checkEq0(a, b)) { - emit log("Error: a == b not satisfied [bytes]"); - emit log_named_bytes(" Left", a); - emit log_named_bytes(" Right", b); - fail(); - } - } - function assertEq0(bytes memory a, bytes memory b, string memory err) internal { - if (!checkEq0(a, b)) { - emit log_named_string("Error", err); - assertEq0(a, b); - } - } - - function assertNotEq0(bytes memory a, bytes memory b) internal { - if (checkEq0(a, b)) { - emit log("Error: a != b not satisfied [bytes]"); - emit log_named_bytes(" Left", a); - emit log_named_bytes(" Right", b); - fail(); - } - } - function assertNotEq0(bytes memory a, bytes memory b, string memory err) internal { - if (checkEq0(a, b)) { - emit log_named_string("Error", err); - assertNotEq0(a, b); - } - } -} diff --git a/contracts/lib/forge-std/lib/ds-test/src/test.t.sol b/contracts/lib/forge-std/lib/ds-test/src/test.t.sol deleted file mode 100644 index d277a30945..0000000000 --- a/contracts/lib/forge-std/lib/ds-test/src/test.t.sol +++ /dev/null @@ -1,417 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity >=0.5.0; - -import {DSTest} from "./test.sol"; - -contract DemoTest is DSTest { - - // --- assertTrue --- - - function testAssertTrue() public { - assertTrue(true, "msg"); - assertTrue(true); - } - function testFailAssertTrue() public { - assertTrue(false); - } - function testFailAssertTrueWithMsg() public { - assertTrue(false, "msg"); - } - - // --- assertEq (Addr) --- - - function testAssertEqAddr() public { - assertEq(address(0x0), address(0x0), "msg"); - assertEq(address(0x0), address(0x0)); - } - function testFailAssertEqAddr() public { - assertEq(address(0x0), address(0x1)); - } - function testFailAssertEqAddrWithMsg() public { - assertEq(address(0x0), address(0x1), "msg"); - } - - // --- assertEq (Bytes32) --- - - function testAssertEqBytes32() public { - assertEq(bytes32("hi"), bytes32("hi"), "msg"); - assertEq(bytes32("hi"), bytes32("hi")); - } - function testFailAssertEqBytes32() public { - assertEq(bytes32("hi"), bytes32("ho")); - } - function testFailAssertEqBytes32WithMsg() public { - assertEq(bytes32("hi"), bytes32("ho"), "msg"); - } - - // --- assertEq (Int) --- - - function testAssertEqInt() public { - assertEq(-1, -1, "msg"); - assertEq(-1, -1); - } - function testFailAssertEqInt() public { - assertEq(-1, -2); - } - function testFailAssertEqIntWithMsg() public { - assertEq(-1, -2, "msg"); - } - - // --- assertEq (UInt) --- - - function testAssertEqUInt() public { - assertEq(uint(1), uint(1), "msg"); - assertEq(uint(1), uint(1)); - } - function testFailAssertEqUInt() public { - assertEq(uint(1), uint(2)); - } - function testFailAssertEqUIntWithMsg() public { - assertEq(uint(1), uint(2), "msg"); - } - - // --- assertEqDecimal (Int) --- - - function testAssertEqDecimalInt() public { - assertEqDecimal(-1, -1, 18, "msg"); - assertEqDecimal(-1, -1, 18); - } - function testFailAssertEqDecimalInt() public { - assertEqDecimal(-1, -2, 18); - } - function testFailAssertEqDecimalIntWithMsg() public { - assertEqDecimal(-1, -2, 18, "msg"); - } - - // --- assertEqDecimal (UInt) --- - - function testAssertEqDecimalUInt() public { - assertEqDecimal(uint(1), uint(1), 18, "msg"); - assertEqDecimal(uint(1), uint(1), 18); - } - function testFailAssertEqDecimalUInt() public { - assertEqDecimal(uint(1), uint(2), 18); - } - function testFailAssertEqDecimalUIntWithMsg() public { - assertEqDecimal(uint(1), uint(2), 18, "msg"); - } - - // --- assertNotEq (Addr) --- - - function testAssertNotEqAddr() public { - assertNotEq(address(0x0), address(0x1), "msg"); - assertNotEq(address(0x0), address(0x1)); - } - function testFailAssertNotEqAddr() public { - assertNotEq(address(0x0), address(0x0)); - } - function testFailAssertNotEqAddrWithMsg() public { - assertNotEq(address(0x0), address(0x0), "msg"); - } - - // --- assertNotEq (Bytes32) --- - - function testAssertNotEqBytes32() public { - assertNotEq(bytes32("hi"), bytes32("ho"), "msg"); - assertNotEq(bytes32("hi"), bytes32("ho")); - } - function testFailAssertNotEqBytes32() public { - assertNotEq(bytes32("hi"), bytes32("hi")); - } - function testFailAssertNotEqBytes32WithMsg() public { - assertNotEq(bytes32("hi"), bytes32("hi"), "msg"); - } - - // --- assertNotEq (Int) --- - - function testAssertNotEqInt() public { - assertNotEq(-1, -2, "msg"); - assertNotEq(-1, -2); - } - function testFailAssertNotEqInt() public { - assertNotEq(-1, -1); - } - function testFailAssertNotEqIntWithMsg() public { - assertNotEq(-1, -1, "msg"); - } - - // --- assertNotEq (UInt) --- - - function testAssertNotEqUInt() public { - assertNotEq(uint(1), uint(2), "msg"); - assertNotEq(uint(1), uint(2)); - } - function testFailAssertNotEqUInt() public { - assertNotEq(uint(1), uint(1)); - } - function testFailAssertNotEqUIntWithMsg() public { - assertNotEq(uint(1), uint(1), "msg"); - } - - // --- assertNotEqDecimal (Int) --- - - function testAssertNotEqDecimalInt() public { - assertNotEqDecimal(-1, -2, 18, "msg"); - assertNotEqDecimal(-1, -2, 18); - } - function testFailAssertNotEqDecimalInt() public { - assertNotEqDecimal(-1, -1, 18); - } - function testFailAssertNotEqDecimalIntWithMsg() public { - assertNotEqDecimal(-1, -1, 18, "msg"); - } - - // --- assertNotEqDecimal (UInt) --- - - function testAssertNotEqDecimalUInt() public { - assertNotEqDecimal(uint(1), uint(2), 18, "msg"); - assertNotEqDecimal(uint(1), uint(2), 18); - } - function testFailAssertNotEqDecimalUInt() public { - assertNotEqDecimal(uint(1), uint(1), 18); - } - function testFailAssertNotEqDecimalUIntWithMsg() public { - assertNotEqDecimal(uint(1), uint(1), 18, "msg"); - } - - // --- assertGt (UInt) --- - - function testAssertGtUInt() public { - assertGt(uint(2), uint(1), "msg"); - assertGt(uint(3), uint(2)); - } - function testFailAssertGtUInt() public { - assertGt(uint(1), uint(2)); - } - function testFailAssertGtUIntWithMsg() public { - assertGt(uint(1), uint(2), "msg"); - } - - // --- assertGt (Int) --- - - function testAssertGtInt() public { - assertGt(-1, -2, "msg"); - assertGt(-1, -3); - } - function testFailAssertGtInt() public { - assertGt(-2, -1); - } - function testFailAssertGtIntWithMsg() public { - assertGt(-2, -1, "msg"); - } - - // --- assertGtDecimal (UInt) --- - - function testAssertGtDecimalUInt() public { - assertGtDecimal(uint(2), uint(1), 18, "msg"); - assertGtDecimal(uint(3), uint(2), 18); - } - function testFailAssertGtDecimalUInt() public { - assertGtDecimal(uint(1), uint(2), 18); - } - function testFailAssertGtDecimalUIntWithMsg() public { - assertGtDecimal(uint(1), uint(2), 18, "msg"); - } - - // --- assertGtDecimal (Int) --- - - function testAssertGtDecimalInt() public { - assertGtDecimal(-1, -2, 18, "msg"); - assertGtDecimal(-1, -3, 18); - } - function testFailAssertGtDecimalInt() public { - assertGtDecimal(-2, -1, 18); - } - function testFailAssertGtDecimalIntWithMsg() public { - assertGtDecimal(-2, -1, 18, "msg"); - } - - // --- assertGe (UInt) --- - - function testAssertGeUInt() public { - assertGe(uint(2), uint(1), "msg"); - assertGe(uint(2), uint(2)); - } - function testFailAssertGeUInt() public { - assertGe(uint(1), uint(2)); - } - function testFailAssertGeUIntWithMsg() public { - assertGe(uint(1), uint(2), "msg"); - } - - // --- assertGe (Int) --- - - function testAssertGeInt() public { - assertGe(-1, -2, "msg"); - assertGe(-1, -1); - } - function testFailAssertGeInt() public { - assertGe(-2, -1); - } - function testFailAssertGeIntWithMsg() public { - assertGe(-2, -1, "msg"); - } - - // --- assertGeDecimal (UInt) --- - - function testAssertGeDecimalUInt() public { - assertGeDecimal(uint(2), uint(1), 18, "msg"); - assertGeDecimal(uint(2), uint(2), 18); - } - function testFailAssertGeDecimalUInt() public { - assertGeDecimal(uint(1), uint(2), 18); - } - function testFailAssertGeDecimalUIntWithMsg() public { - assertGeDecimal(uint(1), uint(2), 18, "msg"); - } - - // --- assertGeDecimal (Int) --- - - function testAssertGeDecimalInt() public { - assertGeDecimal(-1, -2, 18, "msg"); - assertGeDecimal(-1, -2, 18); - } - function testFailAssertGeDecimalInt() public { - assertGeDecimal(-2, -1, 18); - } - function testFailAssertGeDecimalIntWithMsg() public { - assertGeDecimal(-2, -1, 18, "msg"); - } - - // --- assertLt (UInt) --- - - function testAssertLtUInt() public { - assertLt(uint(1), uint(2), "msg"); - assertLt(uint(1), uint(3)); - } - function testFailAssertLtUInt() public { - assertLt(uint(2), uint(2)); - } - function testFailAssertLtUIntWithMsg() public { - assertLt(uint(3), uint(2), "msg"); - } - - // --- assertLt (Int) --- - - function testAssertLtInt() public { - assertLt(-2, -1, "msg"); - assertLt(-1, 0); - } - function testFailAssertLtInt() public { - assertLt(-1, -2); - } - function testFailAssertLtIntWithMsg() public { - assertLt(-1, -1, "msg"); - } - - // --- assertLtDecimal (UInt) --- - - function testAssertLtDecimalUInt() public { - assertLtDecimal(uint(1), uint(2), 18, "msg"); - assertLtDecimal(uint(2), uint(3), 18); - } - function testFailAssertLtDecimalUInt() public { - assertLtDecimal(uint(1), uint(1), 18); - } - function testFailAssertLtDecimalUIntWithMsg() public { - assertLtDecimal(uint(2), uint(1), 18, "msg"); - } - - // --- assertLtDecimal (Int) --- - - function testAssertLtDecimalInt() public { - assertLtDecimal(-2, -1, 18, "msg"); - assertLtDecimal(-2, -1, 18); - } - function testFailAssertLtDecimalInt() public { - assertLtDecimal(-2, -2, 18); - } - function testFailAssertLtDecimalIntWithMsg() public { - assertLtDecimal(-1, -2, 18, "msg"); - } - - // --- assertLe (UInt) --- - - function testAssertLeUInt() public { - assertLe(uint(1), uint(2), "msg"); - assertLe(uint(1), uint(1)); - } - function testFailAssertLeUInt() public { - assertLe(uint(4), uint(2)); - } - function testFailAssertLeUIntWithMsg() public { - assertLe(uint(3), uint(2), "msg"); - } - - // --- assertLe (Int) --- - - function testAssertLeInt() public { - assertLe(-2, -1, "msg"); - assertLe(-1, -1); - } - function testFailAssertLeInt() public { - assertLe(-1, -2); - } - function testFailAssertLeIntWithMsg() public { - assertLe(-1, -3, "msg"); - } - - // --- assertLeDecimal (UInt) --- - - function testAssertLeDecimalUInt() public { - assertLeDecimal(uint(1), uint(2), 18, "msg"); - assertLeDecimal(uint(2), uint(2), 18); - } - function testFailAssertLeDecimalUInt() public { - assertLeDecimal(uint(1), uint(0), 18); - } - function testFailAssertLeDecimalUIntWithMsg() public { - assertLeDecimal(uint(1), uint(0), 18, "msg"); - } - - // --- assertLeDecimal (Int) --- - - function testAssertLeDecimalInt() public { - assertLeDecimal(-2, -1, 18, "msg"); - assertLeDecimal(-2, -2, 18); - } - function testFailAssertLeDecimalInt() public { - assertLeDecimal(-2, -3, 18); - } - function testFailAssertLeDecimalIntWithMsg() public { - assertLeDecimal(-1, -2, 18, "msg"); - } - - // --- assertNotEq (String) --- - - function testAssertNotEqString() public { - assertNotEq(new string(1), new string(2), "msg"); - assertNotEq(new string(1), new string(2)); - } - function testFailAssertNotEqString() public { - assertNotEq(new string(1), new string(1)); - } - function testFailAssertNotEqStringWithMsg() public { - assertNotEq(new string(1), new string(1), "msg"); - } - - // --- assertNotEq0 (Bytes) --- - - function testAssertNotEq0Bytes() public { - assertNotEq0(bytes("hi"), bytes("ho"), "msg"); - assertNotEq0(bytes("hi"), bytes("ho")); - } - function testFailAssertNotEq0Bytes() public { - assertNotEq0(bytes("hi"), bytes("hi")); - } - function testFailAssertNotEq0BytesWithMsg() public { - assertNotEq0(bytes("hi"), bytes("hi"), "msg"); - } - - // --- fail override --- - - // ensure that fail can be overridden - function fail() internal override { - super.fail(); - } -} diff --git a/contracts/lib/forge-std/package.json b/contracts/lib/forge-std/package.json deleted file mode 100644 index c98539d2dd..0000000000 --- a/contracts/lib/forge-std/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "forge-std", - "version": "1.5.5", - "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.", - "homepage": "https://book.getfoundry.sh/forge/forge-std", - "bugs": "https://github.com/foundry-rs/forge-std/issues", - "license": "(Apache-2.0 OR MIT)", - "author": "Contributors to Forge Standard Library", - "files": [ - "src/**/*" - ], - "repository": { - "type": "git", - "url": "https://github.com/foundry-rs/forge-std.git" - } -} diff --git a/contracts/lib/forge-std/src/Base.sol b/contracts/lib/forge-std/src/Base.sol deleted file mode 100644 index 83c5c1cfcb..0000000000 --- a/contracts/lib/forge-std/src/Base.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -import {StdStorage} from "./StdStorage.sol"; -import {Vm, VmSafe} from "./Vm.sol"; - -abstract contract CommonBase { - // Cheat code address, 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D. - address internal constant VM_ADDRESS = address(uint160(uint256(keccak256("hevm cheat code")))); - // console.sol and console2.sol work by executing a staticcall to this address. - address internal constant CONSOLE = 0x000000000000000000636F6e736F6c652e6c6f67; - // Default address for tx.origin and msg.sender, 0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38. - address internal constant DEFAULT_SENDER = address(uint160(uint256(keccak256("foundry default caller")))); - // Address of the test contract, deployed by the DEFAULT_SENDER. - address internal constant DEFAULT_TEST_CONTRACT = 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f; - // Deterministic deployment address of the Multicall3 contract. - address internal constant MULTICALL3_ADDRESS = 0xcA11bde05977b3631167028862bE2a173976CA11; - - uint256 internal constant UINT256_MAX = - 115792089237316195423570985008687907853269984665640564039457584007913129639935; - - Vm internal constant vm = Vm(VM_ADDRESS); - StdStorage internal stdstore; -} - -abstract contract TestBase is CommonBase {} - -abstract contract ScriptBase is CommonBase { - // Used when deploying with create2, https://github.com/Arachnid/deterministic-deployment-proxy. - address internal constant CREATE2_FACTORY = 0x4e59b44847b379578588920cA78FbF26c0B4956C; - - VmSafe internal constant vmSafe = VmSafe(VM_ADDRESS); -} diff --git a/contracts/lib/forge-std/src/Script.sol b/contracts/lib/forge-std/src/Script.sol deleted file mode 100644 index bffccadbe4..0000000000 --- a/contracts/lib/forge-std/src/Script.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -// 💬 ABOUT -// Standard Library's default Script. - -// 🧩 MODULES -import {ScriptBase} from "./Base.sol"; -import {console} from "./console.sol"; -import {console2} from "./console2.sol"; -import {StdChains} from "./StdChains.sol"; -import {StdCheatsSafe} from "./StdCheats.sol"; -import {stdJson} from "./StdJson.sol"; -import {stdMath} from "./StdMath.sol"; -import {StdStorage, stdStorageSafe} from "./StdStorage.sol"; -import {StdUtils} from "./StdUtils.sol"; -import {VmSafe} from "./Vm.sol"; - -// 📦 BOILERPLATE -import {ScriptBase} from "./Base.sol"; - -// ⭐️ SCRIPT -abstract contract Script is StdChains, StdCheatsSafe, StdUtils, ScriptBase { - // Note: IS_SCRIPT() must return true. - bool public IS_SCRIPT = true; -} diff --git a/contracts/lib/forge-std/src/StdAssertions.sol b/contracts/lib/forge-std/src/StdAssertions.sol deleted file mode 100644 index 2778b3a0e8..0000000000 --- a/contracts/lib/forge-std/src/StdAssertions.sol +++ /dev/null @@ -1,376 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -import {DSTest} from "ds-test/test.sol"; -import {stdMath} from "./StdMath.sol"; - -abstract contract StdAssertions is DSTest { - event log_array(uint256[] val); - event log_array(int256[] val); - event log_array(address[] val); - event log_named_array(string key, uint256[] val); - event log_named_array(string key, int256[] val); - event log_named_array(string key, address[] val); - - function fail(string memory err) internal virtual { - emit log_named_string("Error", err); - fail(); - } - - function assertFalse(bool data) internal virtual { - assertTrue(!data); - } - - function assertFalse(bool data, string memory err) internal virtual { - assertTrue(!data, err); - } - - function assertEq(bool a, bool b) internal virtual { - if (a != b) { - emit log("Error: a == b not satisfied [bool]"); - emit log_named_string(" Left", a ? "true" : "false"); - emit log_named_string(" Right", b ? "true" : "false"); - fail(); - } - } - - function assertEq(bool a, bool b, string memory err) internal virtual { - if (a != b) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - - function assertEq(bytes memory a, bytes memory b) internal virtual { - assertEq0(a, b); - } - - function assertEq(bytes memory a, bytes memory b, string memory err) internal virtual { - assertEq0(a, b, err); - } - - function assertEq(uint256[] memory a, uint256[] memory b) internal virtual { - if (keccak256(abi.encode(a)) != keccak256(abi.encode(b))) { - emit log("Error: a == b not satisfied [uint[]]"); - emit log_named_array(" Left", a); - emit log_named_array(" Right", b); - fail(); - } - } - - function assertEq(int256[] memory a, int256[] memory b) internal virtual { - if (keccak256(abi.encode(a)) != keccak256(abi.encode(b))) { - emit log("Error: a == b not satisfied [int[]]"); - emit log_named_array(" Left", a); - emit log_named_array(" Right", b); - fail(); - } - } - - function assertEq(address[] memory a, address[] memory b) internal virtual { - if (keccak256(abi.encode(a)) != keccak256(abi.encode(b))) { - emit log("Error: a == b not satisfied [address[]]"); - emit log_named_array(" Left", a); - emit log_named_array(" Right", b); - fail(); - } - } - - function assertEq(uint256[] memory a, uint256[] memory b, string memory err) internal virtual { - if (keccak256(abi.encode(a)) != keccak256(abi.encode(b))) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - - function assertEq(int256[] memory a, int256[] memory b, string memory err) internal virtual { - if (keccak256(abi.encode(a)) != keccak256(abi.encode(b))) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - - function assertEq(address[] memory a, address[] memory b, string memory err) internal virtual { - if (keccak256(abi.encode(a)) != keccak256(abi.encode(b))) { - emit log_named_string("Error", err); - assertEq(a, b); - } - } - - // Legacy helper - function assertEqUint(uint256 a, uint256 b) internal virtual { - assertEq(uint256(a), uint256(b)); - } - - function assertApproxEqAbs(uint256 a, uint256 b, uint256 maxDelta) internal virtual { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log("Error: a ~= b not satisfied [uint]"); - emit log_named_uint(" Left", a); - emit log_named_uint(" Right", b); - emit log_named_uint(" Max Delta", maxDelta); - emit log_named_uint(" Delta", delta); - fail(); - } - } - - function assertApproxEqAbs(uint256 a, uint256 b, uint256 maxDelta, string memory err) internal virtual { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log_named_string("Error", err); - assertApproxEqAbs(a, b, maxDelta); - } - } - - function assertApproxEqAbsDecimal(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals) internal virtual { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log("Error: a ~= b not satisfied [uint]"); - emit log_named_decimal_uint(" Left", a, decimals); - emit log_named_decimal_uint(" Right", b, decimals); - emit log_named_decimal_uint(" Max Delta", maxDelta, decimals); - emit log_named_decimal_uint(" Delta", delta, decimals); - fail(); - } - } - - function assertApproxEqAbsDecimal(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals, string memory err) - internal - virtual - { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log_named_string("Error", err); - assertApproxEqAbsDecimal(a, b, maxDelta, decimals); - } - } - - function assertApproxEqAbs(int256 a, int256 b, uint256 maxDelta) internal virtual { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log("Error: a ~= b not satisfied [int]"); - emit log_named_int(" Left", a); - emit log_named_int(" Right", b); - emit log_named_uint(" Max Delta", maxDelta); - emit log_named_uint(" Delta", delta); - fail(); - } - } - - function assertApproxEqAbs(int256 a, int256 b, uint256 maxDelta, string memory err) internal virtual { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log_named_string("Error", err); - assertApproxEqAbs(a, b, maxDelta); - } - } - - function assertApproxEqAbsDecimal(int256 a, int256 b, uint256 maxDelta, uint256 decimals) internal virtual { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log("Error: a ~= b not satisfied [int]"); - emit log_named_decimal_int(" Left", a, decimals); - emit log_named_decimal_int(" Right", b, decimals); - emit log_named_decimal_uint(" Max Delta", maxDelta, decimals); - emit log_named_decimal_uint(" Delta", delta, decimals); - fail(); - } - } - - function assertApproxEqAbsDecimal(int256 a, int256 b, uint256 maxDelta, uint256 decimals, string memory err) - internal - virtual - { - uint256 delta = stdMath.delta(a, b); - - if (delta > maxDelta) { - emit log_named_string("Error", err); - assertApproxEqAbsDecimal(a, b, maxDelta, decimals); - } - } - - function assertApproxEqRel( - uint256 a, - uint256 b, - uint256 maxPercentDelta // An 18 decimal fixed point number, where 1e18 == 100% - ) internal virtual { - if (b == 0) return assertEq(a, b); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log("Error: a ~= b not satisfied [uint]"); - emit log_named_uint(" Left", a); - emit log_named_uint(" Right", b); - emit log_named_decimal_uint(" Max % Delta", maxPercentDelta * 100, 18); - emit log_named_decimal_uint(" % Delta", percentDelta * 100, 18); - fail(); - } - } - - function assertApproxEqRel( - uint256 a, - uint256 b, - uint256 maxPercentDelta, // An 18 decimal fixed point number, where 1e18 == 100% - string memory err - ) internal virtual { - if (b == 0) return assertEq(a, b, err); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log_named_string("Error", err); - assertApproxEqRel(a, b, maxPercentDelta); - } - } - - function assertApproxEqRelDecimal( - uint256 a, - uint256 b, - uint256 maxPercentDelta, // An 18 decimal fixed point number, where 1e18 == 100% - uint256 decimals - ) internal virtual { - if (b == 0) return assertEq(a, b); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log("Error: a ~= b not satisfied [uint]"); - emit log_named_decimal_uint(" Left", a, decimals); - emit log_named_decimal_uint(" Right", b, decimals); - emit log_named_decimal_uint(" Max % Delta", maxPercentDelta * 100, 18); - emit log_named_decimal_uint(" % Delta", percentDelta * 100, 18); - fail(); - } - } - - function assertApproxEqRelDecimal( - uint256 a, - uint256 b, - uint256 maxPercentDelta, // An 18 decimal fixed point number, where 1e18 == 100% - uint256 decimals, - string memory err - ) internal virtual { - if (b == 0) return assertEq(a, b, err); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log_named_string("Error", err); - assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals); - } - } - - function assertApproxEqRel(int256 a, int256 b, uint256 maxPercentDelta) internal virtual { - if (b == 0) return assertEq(a, b); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log("Error: a ~= b not satisfied [int]"); - emit log_named_int(" Left", a); - emit log_named_int(" Right", b); - emit log_named_decimal_uint(" Max % Delta", maxPercentDelta * 100, 18); - emit log_named_decimal_uint(" % Delta", percentDelta * 100, 18); - fail(); - } - } - - function assertApproxEqRel(int256 a, int256 b, uint256 maxPercentDelta, string memory err) internal virtual { - if (b == 0) return assertEq(a, b, err); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log_named_string("Error", err); - assertApproxEqRel(a, b, maxPercentDelta); - } - } - - function assertApproxEqRelDecimal(int256 a, int256 b, uint256 maxPercentDelta, uint256 decimals) internal virtual { - if (b == 0) return assertEq(a, b); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log("Error: a ~= b not satisfied [int]"); - emit log_named_decimal_int(" Left", a, decimals); - emit log_named_decimal_int(" Right", b, decimals); - emit log_named_decimal_uint(" Max % Delta", maxPercentDelta * 100, 18); - emit log_named_decimal_uint(" % Delta", percentDelta * 100, 18); - fail(); - } - } - - function assertApproxEqRelDecimal(int256 a, int256 b, uint256 maxPercentDelta, uint256 decimals, string memory err) - internal - virtual - { - if (b == 0) return assertEq(a, b, err); // If the left is 0, right must be too. - - uint256 percentDelta = stdMath.percentDelta(a, b); - - if (percentDelta > maxPercentDelta) { - emit log_named_string("Error", err); - assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals); - } - } - - function assertEqCall(address target, bytes memory callDataA, bytes memory callDataB) internal virtual { - assertEqCall(target, callDataA, target, callDataB, true); - } - - function assertEqCall(address targetA, bytes memory callDataA, address targetB, bytes memory callDataB) - internal - virtual - { - assertEqCall(targetA, callDataA, targetB, callDataB, true); - } - - function assertEqCall(address target, bytes memory callDataA, bytes memory callDataB, bool strictRevertData) - internal - virtual - { - assertEqCall(target, callDataA, target, callDataB, strictRevertData); - } - - function assertEqCall( - address targetA, - bytes memory callDataA, - address targetB, - bytes memory callDataB, - bool strictRevertData - ) internal virtual { - (bool successA, bytes memory returnDataA) = address(targetA).call(callDataA); - (bool successB, bytes memory returnDataB) = address(targetB).call(callDataB); - - if (successA && successB) { - assertEq(returnDataA, returnDataB, "Call return data does not match"); - } - - if (!successA && !successB && strictRevertData) { - assertEq(returnDataA, returnDataB, "Call revert data does not match"); - } - - if (!successA && successB) { - emit log("Error: Calls were not equal"); - emit log_named_bytes(" Left call revert data", returnDataA); - emit log_named_bytes(" Right call return data", returnDataB); - fail(); - } - - if (successA && !successB) { - emit log("Error: Calls were not equal"); - emit log_named_bytes(" Left call return data", returnDataA); - emit log_named_bytes(" Right call revert data", returnDataB); - fail(); - } - } -} diff --git a/contracts/lib/forge-std/src/StdChains.sol b/contracts/lib/forge-std/src/StdChains.sol deleted file mode 100644 index f97637fc45..0000000000 --- a/contracts/lib/forge-std/src/StdChains.sol +++ /dev/null @@ -1,231 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import {VmSafe} from "./Vm.sol"; - -/** - * StdChains provides information about EVM compatible chains that can be used in scripts/tests. - * For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are - * identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of - * the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the - * alias used in this contract, which can be found as the first argument to the - * `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. - * - * There are two main ways to use this contract: - * 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or - * `setChain(string memory chainAlias, Chain memory chain)` - * 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. - * - * The first time either of those are used, chains are initialized with the default set of RPC URLs. - * This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in - * `defaultRpcUrls`. - * - * The `setChain` function is straightforward, and it simply saves off the given chain data. - * - * The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say - * we want to retrieve the RPC URL for `mainnet`: - * - If you have specified data with `setChain`, it will return that. - * - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it - * is valid (e.g. a URL is specified, or an environment variable is given and exists). - * - If neither of the above conditions is met, the default data is returned. - * - * Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults. - */ -abstract contract StdChains { - VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code"))))); - - bool private stdChainsInitialized; - - struct ChainData { - string name; - uint256 chainId; - string rpcUrl; - } - - struct Chain { - // The chain name. - string name; - // The chain's Chain ID. - uint256 chainId; - // The chain's alias. (i.e. what gets specified in `foundry.toml`). - string chainAlias; - // A default RPC endpoint for this chain. - // NOTE: This default RPC URL is included for convenience to facilitate quick tests and - // experimentation. Do not use this RPC URL for production test suites, CI, or other heavy - // usage as you will be throttled and this is a disservice to others who need this endpoint. - string rpcUrl; - } - - // Maps from the chain's alias (matching the alias in the `foundry.toml` file) to chain data. - mapping(string => Chain) private chains; - // Maps from the chain's alias to it's default RPC URL. - mapping(string => string) private defaultRpcUrls; - // Maps from a chain ID to it's alias. - mapping(uint256 => string) private idToAlias; - - bool private fallbackToDefaultRpcUrls = true; - - // The RPC URL will be fetched from config or defaultRpcUrls if possible. - function getChain(string memory chainAlias) internal virtual returns (Chain memory chain) { - require(bytes(chainAlias).length != 0, "StdChains getChain(string): Chain alias cannot be the empty string."); - - initializeStdChains(); - chain = chains[chainAlias]; - require( - chain.chainId != 0, - string(abi.encodePacked("StdChains getChain(string): Chain with alias \"", chainAlias, "\" not found.")) - ); - - chain = getChainWithUpdatedRpcUrl(chainAlias, chain); - } - - function getChain(uint256 chainId) internal virtual returns (Chain memory chain) { - require(chainId != 0, "StdChains getChain(uint256): Chain ID cannot be 0."); - initializeStdChains(); - string memory chainAlias = idToAlias[chainId]; - - chain = chains[chainAlias]; - - require( - chain.chainId != 0, - string(abi.encodePacked("StdChains getChain(uint256): Chain with ID ", vm.toString(chainId), " not found.")) - ); - - chain = getChainWithUpdatedRpcUrl(chainAlias, chain); - } - - // set chain info, with priority to argument's rpcUrl field. - function setChain(string memory chainAlias, ChainData memory chain) internal virtual { - require( - bytes(chainAlias).length != 0, - "StdChains setChain(string,ChainData): Chain alias cannot be the empty string." - ); - - require(chain.chainId != 0, "StdChains setChain(string,ChainData): Chain ID cannot be 0."); - - initializeStdChains(); - string memory foundAlias = idToAlias[chain.chainId]; - - require( - bytes(foundAlias).length == 0 || keccak256(bytes(foundAlias)) == keccak256(bytes(chainAlias)), - string( - abi.encodePacked( - "StdChains setChain(string,ChainData): Chain ID ", - vm.toString(chain.chainId), - " already used by \"", - foundAlias, - "\"." - ) - ) - ); - - uint256 oldChainId = chains[chainAlias].chainId; - delete idToAlias[oldChainId]; - - chains[chainAlias] = - Chain({name: chain.name, chainId: chain.chainId, chainAlias: chainAlias, rpcUrl: chain.rpcUrl}); - idToAlias[chain.chainId] = chainAlias; - } - - // set chain info, with priority to argument's rpcUrl field. - function setChain(string memory chainAlias, Chain memory chain) internal virtual { - setChain(chainAlias, ChainData({name: chain.name, chainId: chain.chainId, rpcUrl: chain.rpcUrl})); - } - - function _toUpper(string memory str) private pure returns (string memory) { - bytes memory strb = bytes(str); - bytes memory copy = new bytes(strb.length); - for (uint256 i = 0; i < strb.length; i++) { - bytes1 b = strb[i]; - if (b >= 0x61 && b <= 0x7A) { - copy[i] = bytes1(uint8(b) - 32); - } else { - copy[i] = b; - } - } - return string(copy); - } - - // lookup rpcUrl, in descending order of priority: - // current -> config (foundry.toml) -> environment variable -> default - function getChainWithUpdatedRpcUrl(string memory chainAlias, Chain memory chain) private returns (Chain memory) { - if (bytes(chain.rpcUrl).length == 0) { - try vm.rpcUrl(chainAlias) returns (string memory configRpcUrl) { - chain.rpcUrl = configRpcUrl; - } catch (bytes memory err) { - string memory envName = string(abi.encodePacked(_toUpper(chainAlias), "_RPC_URL")); - if (fallbackToDefaultRpcUrls) { - chain.rpcUrl = vm.envOr(envName, defaultRpcUrls[chainAlias]); - } else { - chain.rpcUrl = vm.envString(envName); - } - // distinguish 'not found' from 'cannot read' - bytes memory notFoundError = - abi.encodeWithSignature("CheatCodeError", string(abi.encodePacked("invalid rpc url ", chainAlias))); - if (keccak256(notFoundError) != keccak256(err) || bytes(chain.rpcUrl).length == 0) { - /// @solidity memory-safe-assembly - assembly { - revert(add(32, err), mload(err)) - } - } - } - } - return chain; - } - - function setFallbackToDefaultRpcUrls(bool useDefault) internal { - fallbackToDefaultRpcUrls = useDefault; - } - - function initializeStdChains() private { - if (stdChainsInitialized) return; - - stdChainsInitialized = true; - - // If adding an RPC here, make sure to test the default RPC URL in `testRpcs` - setChainWithDefaultRpcUrl("anvil", ChainData("Anvil", 31337, "http://127.0.0.1:8545")); - setChainWithDefaultRpcUrl( - "mainnet", ChainData("Mainnet", 1, "https://mainnet.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001") - ); - setChainWithDefaultRpcUrl( - "goerli", ChainData("Goerli", 5, "https://goerli.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001") - ); - setChainWithDefaultRpcUrl( - "sepolia", ChainData("Sepolia", 11155111, "https://sepolia.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001") - ); - setChainWithDefaultRpcUrl("optimism", ChainData("Optimism", 10, "https://mainnet.optimism.io")); - setChainWithDefaultRpcUrl("optimism_goerli", ChainData("Optimism Goerli", 420, "https://goerli.optimism.io")); - setChainWithDefaultRpcUrl("arbitrum_one", ChainData("Arbitrum One", 42161, "https://arb1.arbitrum.io/rpc")); - setChainWithDefaultRpcUrl( - "arbitrum_one_goerli", ChainData("Arbitrum One Goerli", 421613, "https://goerli-rollup.arbitrum.io/rpc") - ); - setChainWithDefaultRpcUrl("arbitrum_nova", ChainData("Arbitrum Nova", 42170, "https://nova.arbitrum.io/rpc")); - setChainWithDefaultRpcUrl("polygon", ChainData("Polygon", 137, "https://polygon-rpc.com")); - setChainWithDefaultRpcUrl( - "polygon_mumbai", ChainData("Polygon Mumbai", 80001, "https://rpc-mumbai.maticvigil.com") - ); - setChainWithDefaultRpcUrl("avalanche", ChainData("Avalanche", 43114, "https://api.avax.network/ext/bc/C/rpc")); - setChainWithDefaultRpcUrl( - "avalanche_fuji", ChainData("Avalanche Fuji", 43113, "https://api.avax-test.network/ext/bc/C/rpc") - ); - setChainWithDefaultRpcUrl( - "bnb_smart_chain", ChainData("BNB Smart Chain", 56, "https://bsc-dataseed1.binance.org") - ); - setChainWithDefaultRpcUrl( - "bnb_smart_chain_testnet", - ChainData("BNB Smart Chain Testnet", 97, "https://rpc.ankr.com/bsc_testnet_chapel") - ); - setChainWithDefaultRpcUrl("gnosis_chain", ChainData("Gnosis Chain", 100, "https://rpc.gnosischain.com")); - } - - // set chain info, with priority to chainAlias' rpc url in foundry.toml - function setChainWithDefaultRpcUrl(string memory chainAlias, ChainData memory chain) private { - string memory rpcUrl = chain.rpcUrl; - defaultRpcUrls[chainAlias] = rpcUrl; - chain.rpcUrl = ""; - setChain(chainAlias, chain); - chain.rpcUrl = rpcUrl; // restore argument - } -} diff --git a/contracts/lib/forge-std/src/StdCheats.sol b/contracts/lib/forge-std/src/StdCheats.sol deleted file mode 100644 index d4d56701f8..0000000000 --- a/contracts/lib/forge-std/src/StdCheats.sol +++ /dev/null @@ -1,639 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import {StdStorage, stdStorage} from "./StdStorage.sol"; -import {Vm} from "./Vm.sol"; - -abstract contract StdCheatsSafe { - Vm private constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code"))))); - - bool private gasMeteringOff; - - // Data structures to parse Transaction objects from the broadcast artifact - // that conform to EIP1559. The Raw structs is what is parsed from the JSON - // and then converted to the one that is used by the user for better UX. - - struct RawTx1559 { - string[] arguments; - address contractAddress; - string contractName; - // json value name = function - string functionSig; - bytes32 hash; - // json value name = tx - RawTx1559Detail txDetail; - // json value name = type - string opcode; - } - - struct RawTx1559Detail { - AccessList[] accessList; - bytes data; - address from; - bytes gas; - bytes nonce; - address to; - bytes txType; - bytes value; - } - - struct Tx1559 { - string[] arguments; - address contractAddress; - string contractName; - string functionSig; - bytes32 hash; - Tx1559Detail txDetail; - string opcode; - } - - struct Tx1559Detail { - AccessList[] accessList; - bytes data; - address from; - uint256 gas; - uint256 nonce; - address to; - uint256 txType; - uint256 value; - } - - // Data structures to parse Transaction objects from the broadcast artifact - // that DO NOT conform to EIP1559. The Raw structs is what is parsed from the JSON - // and then converted to the one that is used by the user for better UX. - - struct TxLegacy { - string[] arguments; - address contractAddress; - string contractName; - string functionSig; - string hash; - string opcode; - TxDetailLegacy transaction; - } - - struct TxDetailLegacy { - AccessList[] accessList; - uint256 chainId; - bytes data; - address from; - uint256 gas; - uint256 gasPrice; - bytes32 hash; - uint256 nonce; - bytes1 opcode; - bytes32 r; - bytes32 s; - uint256 txType; - address to; - uint8 v; - uint256 value; - } - - struct AccessList { - address accessAddress; - bytes32[] storageKeys; - } - - // Data structures to parse Receipt objects from the broadcast artifact. - // The Raw structs is what is parsed from the JSON - // and then converted to the one that is used by the user for better UX. - - struct RawReceipt { - bytes32 blockHash; - bytes blockNumber; - address contractAddress; - bytes cumulativeGasUsed; - bytes effectiveGasPrice; - address from; - bytes gasUsed; - RawReceiptLog[] logs; - bytes logsBloom; - bytes status; - address to; - bytes32 transactionHash; - bytes transactionIndex; - } - - struct Receipt { - bytes32 blockHash; - uint256 blockNumber; - address contractAddress; - uint256 cumulativeGasUsed; - uint256 effectiveGasPrice; - address from; - uint256 gasUsed; - ReceiptLog[] logs; - bytes logsBloom; - uint256 status; - address to; - bytes32 transactionHash; - uint256 transactionIndex; - } - - // Data structures to parse the entire broadcast artifact, assuming the - // transactions conform to EIP1559. - - struct EIP1559ScriptArtifact { - string[] libraries; - string path; - string[] pending; - Receipt[] receipts; - uint256 timestamp; - Tx1559[] transactions; - TxReturn[] txReturns; - } - - struct RawEIP1559ScriptArtifact { - string[] libraries; - string path; - string[] pending; - RawReceipt[] receipts; - TxReturn[] txReturns; - uint256 timestamp; - RawTx1559[] transactions; - } - - struct RawReceiptLog { - // json value = address - address logAddress; - bytes32 blockHash; - bytes blockNumber; - bytes data; - bytes logIndex; - bool removed; - bytes32[] topics; - bytes32 transactionHash; - bytes transactionIndex; - bytes transactionLogIndex; - } - - struct ReceiptLog { - // json value = address - address logAddress; - bytes32 blockHash; - uint256 blockNumber; - bytes data; - uint256 logIndex; - bytes32[] topics; - uint256 transactionIndex; - uint256 transactionLogIndex; - bool removed; - } - - struct TxReturn { - string internalType; - string value; - } - - struct Account { - address addr; - uint256 key; - } - - function assumeNoPrecompiles(address addr) internal virtual { - // Assembly required since `block.chainid` was introduced in 0.8.0. - uint256 chainId; - assembly { - chainId := chainid() - } - assumeNoPrecompiles(addr, chainId); - } - - function assumeNoPrecompiles(address addr, uint256 chainId) internal pure virtual { - // Note: For some chains like Optimism these are technically predeploys (i.e. bytecode placed at a specific - // address), but the same rationale for excluding them applies so we include those too. - - // These should be present on all EVM-compatible chains. - vm.assume(addr < address(0x1) || addr > address(0x9)); - - // forgefmt: disable-start - if (chainId == 10 || chainId == 420) { - // https://github.com/ethereum-optimism/optimism/blob/eaa371a0184b56b7ca6d9eb9cb0a2b78b2ccd864/op-bindings/predeploys/addresses.go#L6-L21 - vm.assume(addr < address(0x4200000000000000000000000000000000000000) || addr > address(0x4200000000000000000000000000000000000800)); - } else if (chainId == 42161 || chainId == 421613) { - // https://developer.arbitrum.io/useful-addresses#arbitrum-precompiles-l2-same-on-all-arb-chains - vm.assume(addr < address(0x0000000000000000000000000000000000000064) || addr > address(0x0000000000000000000000000000000000000068)); - } else if (chainId == 43114 || chainId == 43113) { - // https://github.com/ava-labs/subnet-evm/blob/47c03fd007ecaa6de2c52ea081596e0a88401f58/precompile/params.go#L18-L59 - vm.assume(addr < address(0x0100000000000000000000000000000000000000) || addr > address(0x01000000000000000000000000000000000000ff)); - vm.assume(addr < address(0x0200000000000000000000000000000000000000) || addr > address(0x02000000000000000000000000000000000000FF)); - vm.assume(addr < address(0x0300000000000000000000000000000000000000) || addr > address(0x03000000000000000000000000000000000000Ff)); - } - // forgefmt: disable-end - } - - function readEIP1559ScriptArtifact(string memory path) - internal - view - virtual - returns (EIP1559ScriptArtifact memory) - { - string memory data = vm.readFile(path); - bytes memory parsedData = vm.parseJson(data); - RawEIP1559ScriptArtifact memory rawArtifact = abi.decode(parsedData, (RawEIP1559ScriptArtifact)); - EIP1559ScriptArtifact memory artifact; - artifact.libraries = rawArtifact.libraries; - artifact.path = rawArtifact.path; - artifact.timestamp = rawArtifact.timestamp; - artifact.pending = rawArtifact.pending; - artifact.txReturns = rawArtifact.txReturns; - artifact.receipts = rawToConvertedReceipts(rawArtifact.receipts); - artifact.transactions = rawToConvertedEIPTx1559s(rawArtifact.transactions); - return artifact; - } - - function rawToConvertedEIPTx1559s(RawTx1559[] memory rawTxs) internal pure virtual returns (Tx1559[] memory) { - Tx1559[] memory txs = new Tx1559[](rawTxs.length); - for (uint256 i; i < rawTxs.length; i++) { - txs[i] = rawToConvertedEIPTx1559(rawTxs[i]); - } - return txs; - } - - function rawToConvertedEIPTx1559(RawTx1559 memory rawTx) internal pure virtual returns (Tx1559 memory) { - Tx1559 memory transaction; - transaction.arguments = rawTx.arguments; - transaction.contractName = rawTx.contractName; - transaction.functionSig = rawTx.functionSig; - transaction.hash = rawTx.hash; - transaction.txDetail = rawToConvertedEIP1559Detail(rawTx.txDetail); - transaction.opcode = rawTx.opcode; - return transaction; - } - - function rawToConvertedEIP1559Detail(RawTx1559Detail memory rawDetail) - internal - pure - virtual - returns (Tx1559Detail memory) - { - Tx1559Detail memory txDetail; - txDetail.data = rawDetail.data; - txDetail.from = rawDetail.from; - txDetail.to = rawDetail.to; - txDetail.nonce = _bytesToUint(rawDetail.nonce); - txDetail.txType = _bytesToUint(rawDetail.txType); - txDetail.value = _bytesToUint(rawDetail.value); - txDetail.gas = _bytesToUint(rawDetail.gas); - txDetail.accessList = rawDetail.accessList; - return txDetail; - } - - function readTx1559s(string memory path) internal view virtual returns (Tx1559[] memory) { - string memory deployData = vm.readFile(path); - bytes memory parsedDeployData = vm.parseJson(deployData, ".transactions"); - RawTx1559[] memory rawTxs = abi.decode(parsedDeployData, (RawTx1559[])); - return rawToConvertedEIPTx1559s(rawTxs); - } - - function readTx1559(string memory path, uint256 index) internal view virtual returns (Tx1559 memory) { - string memory deployData = vm.readFile(path); - string memory key = string(abi.encodePacked(".transactions[", vm.toString(index), "]")); - bytes memory parsedDeployData = vm.parseJson(deployData, key); - RawTx1559 memory rawTx = abi.decode(parsedDeployData, (RawTx1559)); - return rawToConvertedEIPTx1559(rawTx); - } - - // Analogous to readTransactions, but for receipts. - function readReceipts(string memory path) internal view virtual returns (Receipt[] memory) { - string memory deployData = vm.readFile(path); - bytes memory parsedDeployData = vm.parseJson(deployData, ".receipts"); - RawReceipt[] memory rawReceipts = abi.decode(parsedDeployData, (RawReceipt[])); - return rawToConvertedReceipts(rawReceipts); - } - - function readReceipt(string memory path, uint256 index) internal view virtual returns (Receipt memory) { - string memory deployData = vm.readFile(path); - string memory key = string(abi.encodePacked(".receipts[", vm.toString(index), "]")); - bytes memory parsedDeployData = vm.parseJson(deployData, key); - RawReceipt memory rawReceipt = abi.decode(parsedDeployData, (RawReceipt)); - return rawToConvertedReceipt(rawReceipt); - } - - function rawToConvertedReceipts(RawReceipt[] memory rawReceipts) internal pure virtual returns (Receipt[] memory) { - Receipt[] memory receipts = new Receipt[](rawReceipts.length); - for (uint256 i; i < rawReceipts.length; i++) { - receipts[i] = rawToConvertedReceipt(rawReceipts[i]); - } - return receipts; - } - - function rawToConvertedReceipt(RawReceipt memory rawReceipt) internal pure virtual returns (Receipt memory) { - Receipt memory receipt; - receipt.blockHash = rawReceipt.blockHash; - receipt.to = rawReceipt.to; - receipt.from = rawReceipt.from; - receipt.contractAddress = rawReceipt.contractAddress; - receipt.effectiveGasPrice = _bytesToUint(rawReceipt.effectiveGasPrice); - receipt.cumulativeGasUsed = _bytesToUint(rawReceipt.cumulativeGasUsed); - receipt.gasUsed = _bytesToUint(rawReceipt.gasUsed); - receipt.status = _bytesToUint(rawReceipt.status); - receipt.transactionIndex = _bytesToUint(rawReceipt.transactionIndex); - receipt.blockNumber = _bytesToUint(rawReceipt.blockNumber); - receipt.logs = rawToConvertedReceiptLogs(rawReceipt.logs); - receipt.logsBloom = rawReceipt.logsBloom; - receipt.transactionHash = rawReceipt.transactionHash; - return receipt; - } - - function rawToConvertedReceiptLogs(RawReceiptLog[] memory rawLogs) - internal - pure - virtual - returns (ReceiptLog[] memory) - { - ReceiptLog[] memory logs = new ReceiptLog[](rawLogs.length); - for (uint256 i; i < rawLogs.length; i++) { - logs[i].logAddress = rawLogs[i].logAddress; - logs[i].blockHash = rawLogs[i].blockHash; - logs[i].blockNumber = _bytesToUint(rawLogs[i].blockNumber); - logs[i].data = rawLogs[i].data; - logs[i].logIndex = _bytesToUint(rawLogs[i].logIndex); - logs[i].topics = rawLogs[i].topics; - logs[i].transactionIndex = _bytesToUint(rawLogs[i].transactionIndex); - logs[i].transactionLogIndex = _bytesToUint(rawLogs[i].transactionLogIndex); - logs[i].removed = rawLogs[i].removed; - } - return logs; - } - - // Deploy a contract by fetching the contract bytecode from - // the artifacts directory - // e.g. `deployCode(code, abi.encode(arg1,arg2,arg3))` - function deployCode(string memory what, bytes memory args) internal virtual returns (address addr) { - bytes memory bytecode = abi.encodePacked(vm.getCode(what), args); - /// @solidity memory-safe-assembly - assembly { - addr := create(0, add(bytecode, 0x20), mload(bytecode)) - } - - require(addr != address(0), "StdCheats deployCode(string,bytes): Deployment failed."); - } - - function deployCode(string memory what) internal virtual returns (address addr) { - bytes memory bytecode = vm.getCode(what); - /// @solidity memory-safe-assembly - assembly { - addr := create(0, add(bytecode, 0x20), mload(bytecode)) - } - - require(addr != address(0), "StdCheats deployCode(string): Deployment failed."); - } - - /// @dev deploy contract with value on construction - function deployCode(string memory what, bytes memory args, uint256 val) internal virtual returns (address addr) { - bytes memory bytecode = abi.encodePacked(vm.getCode(what), args); - /// @solidity memory-safe-assembly - assembly { - addr := create(val, add(bytecode, 0x20), mload(bytecode)) - } - - require(addr != address(0), "StdCheats deployCode(string,bytes,uint256): Deployment failed."); - } - - function deployCode(string memory what, uint256 val) internal virtual returns (address addr) { - bytes memory bytecode = vm.getCode(what); - /// @solidity memory-safe-assembly - assembly { - addr := create(val, add(bytecode, 0x20), mload(bytecode)) - } - - require(addr != address(0), "StdCheats deployCode(string,uint256): Deployment failed."); - } - - // creates a labeled address and the corresponding private key - function makeAddrAndKey(string memory name) internal virtual returns (address addr, uint256 privateKey) { - privateKey = uint256(keccak256(abi.encodePacked(name))); - addr = vm.addr(privateKey); - vm.label(addr, name); - } - - // creates a labeled address - function makeAddr(string memory name) internal virtual returns (address addr) { - (addr,) = makeAddrAndKey(name); - } - - // creates a struct containing both a labeled address and the corresponding private key - function makeAccount(string memory name) internal virtual returns (Account memory account) { - (account.addr, account.key) = makeAddrAndKey(name); - } - - function deriveRememberKey(string memory mnemonic, uint32 index) - internal - virtual - returns (address who, uint256 privateKey) - { - privateKey = vm.deriveKey(mnemonic, index); - who = vm.rememberKey(privateKey); - } - - function _bytesToUint(bytes memory b) private pure returns (uint256) { - require(b.length <= 32, "StdCheats _bytesToUint(bytes): Bytes length exceeds 32."); - return abi.decode(abi.encodePacked(new bytes(32 - b.length), b), (uint256)); - } - - function isFork() internal view virtual returns (bool status) { - try vm.activeFork() { - status = true; - } catch (bytes memory) {} - } - - modifier skipWhenForking() { - if (!isFork()) { - _; - } - } - - modifier skipWhenNotForking() { - if (isFork()) { - _; - } - } - - modifier noGasMetering() { - vm.pauseGasMetering(); - // To prevent turning gas monitoring back on with nested functions that use this modifier, - // we check if gasMetering started in the off position. If it did, we don't want to turn - // it back on until we exit the top level function that used the modifier - // - // i.e. funcA() noGasMetering { funcB() }, where funcB has noGasMetering as well. - // funcA will have `gasStartedOff` as false, funcB will have it as true, - // so we only turn metering back on at the end of the funcA - bool gasStartedOff = gasMeteringOff; - gasMeteringOff = true; - - _; - - // if gas metering was on when this modifier was called, turn it back on at the end - if (!gasStartedOff) { - gasMeteringOff = false; - vm.resumeGasMetering(); - } - } - - // a cheat for fuzzing addresses that are payable only - // see https://github.com/foundry-rs/foundry/issues/3631 - function assumePayable(address addr) internal virtual { - (bool success,) = payable(addr).call{value: 0}(""); - vm.assume(success); - } -} - -// Wrappers around cheatcodes to avoid footguns -abstract contract StdCheats is StdCheatsSafe { - using stdStorage for StdStorage; - - StdStorage private stdstore; - Vm private constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code"))))); - - // Skip forward or rewind time by the specified number of seconds - function skip(uint256 time) internal virtual { - vm.warp(block.timestamp + time); - } - - function rewind(uint256 time) internal virtual { - vm.warp(block.timestamp - time); - } - - // Setup a prank from an address that has some ether - function hoax(address msgSender) internal virtual { - vm.deal(msgSender, 1 << 128); - vm.prank(msgSender); - } - - function hoax(address msgSender, uint256 give) internal virtual { - vm.deal(msgSender, give); - vm.prank(msgSender); - } - - function hoax(address msgSender, address origin) internal virtual { - vm.deal(msgSender, 1 << 128); - vm.prank(msgSender, origin); - } - - function hoax(address msgSender, address origin, uint256 give) internal virtual { - vm.deal(msgSender, give); - vm.prank(msgSender, origin); - } - - // Start perpetual prank from an address that has some ether - function startHoax(address msgSender) internal virtual { - vm.deal(msgSender, 1 << 128); - vm.startPrank(msgSender); - } - - function startHoax(address msgSender, uint256 give) internal virtual { - vm.deal(msgSender, give); - vm.startPrank(msgSender); - } - - // Start perpetual prank from an address that has some ether - // tx.origin is set to the origin parameter - function startHoax(address msgSender, address origin) internal virtual { - vm.deal(msgSender, 1 << 128); - vm.startPrank(msgSender, origin); - } - - function startHoax(address msgSender, address origin, uint256 give) internal virtual { - vm.deal(msgSender, give); - vm.startPrank(msgSender, origin); - } - - function changePrank(address msgSender) internal virtual { - vm.stopPrank(); - vm.startPrank(msgSender); - } - - function changePrank(address msgSender, address txOrigin) internal virtual { - vm.stopPrank(); - vm.startPrank(msgSender, txOrigin); - } - - // The same as Vm's `deal` - // Use the alternative signature for ERC20 tokens - function deal(address to, uint256 give) internal virtual { - vm.deal(to, give); - } - - // Set the balance of an account for any ERC20 token - // Use the alternative signature to update `totalSupply` - function deal(address token, address to, uint256 give) internal virtual { - deal(token, to, give, false); - } - - // Set the balance of an account for any ERC1155 token - // Use the alternative signature to update `totalSupply` - function dealERC1155(address token, address to, uint256 id, uint256 give) internal virtual { - dealERC1155(token, to, id, give, false); - } - - function deal(address token, address to, uint256 give, bool adjust) internal virtual { - // get current balance - (, bytes memory balData) = token.call(abi.encodeWithSelector(0x70a08231, to)); - uint256 prevBal = abi.decode(balData, (uint256)); - - // update balance - stdstore.target(token).sig(0x70a08231).with_key(to).checked_write(give); - - // update total supply - if (adjust) { - (, bytes memory totSupData) = token.call(abi.encodeWithSelector(0x18160ddd)); - uint256 totSup = abi.decode(totSupData, (uint256)); - if (give < prevBal) { - totSup -= (prevBal - give); - } else { - totSup += (give - prevBal); - } - stdstore.target(token).sig(0x18160ddd).checked_write(totSup); - } - } - - function dealERC1155(address token, address to, uint256 id, uint256 give, bool adjust) internal virtual { - // get current balance - (, bytes memory balData) = token.call(abi.encodeWithSelector(0x00fdd58e, to, id)); - uint256 prevBal = abi.decode(balData, (uint256)); - - // update balance - stdstore.target(token).sig(0x00fdd58e).with_key(to).with_key(id).checked_write(give); - - // update total supply - if (adjust) { - (, bytes memory totSupData) = token.call(abi.encodeWithSelector(0xbd85b039, id)); - require( - totSupData.length != 0, - "StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply." - ); - uint256 totSup = abi.decode(totSupData, (uint256)); - if (give < prevBal) { - totSup -= (prevBal - give); - } else { - totSup += (give - prevBal); - } - stdstore.target(token).sig(0xbd85b039).with_key(id).checked_write(totSup); - } - } - - function dealERC721(address token, address to, uint256 id) internal virtual { - // check if token id is already minted and the actual owner. - (bool successMinted, bytes memory ownerData) = token.staticcall(abi.encodeWithSelector(0x6352211e, id)); - require(successMinted, "StdCheats deal(address,address,uint,bool): id not minted."); - - // get owner current balance - (, bytes memory fromBalData) = token.call(abi.encodeWithSelector(0x70a08231, abi.decode(ownerData, (address)))); - uint256 fromPrevBal = abi.decode(fromBalData, (uint256)); - - // get new user current balance - (, bytes memory toBalData) = token.call(abi.encodeWithSelector(0x70a08231, to)); - uint256 toPrevBal = abi.decode(toBalData, (uint256)); - - // update balances - stdstore.target(token).sig(0x70a08231).with_key(abi.decode(ownerData, (address))).checked_write(--fromPrevBal); - stdstore.target(token).sig(0x70a08231).with_key(to).checked_write(++toPrevBal); - - // update owner - stdstore.target(token).sig(0x6352211e).with_key(id).checked_write(to); - } -} diff --git a/contracts/lib/forge-std/src/StdError.sol b/contracts/lib/forge-std/src/StdError.sol deleted file mode 100644 index a302191faa..0000000000 --- a/contracts/lib/forge-std/src/StdError.sol +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: MIT -// Panics work for versions >=0.8.0, but we lowered the pragma to make this compatible with Test -pragma solidity >=0.6.2 <0.9.0; - -library stdError { - bytes public constant assertionError = abi.encodeWithSignature("Panic(uint256)", 0x01); - bytes public constant arithmeticError = abi.encodeWithSignature("Panic(uint256)", 0x11); - bytes public constant divisionError = abi.encodeWithSignature("Panic(uint256)", 0x12); - bytes public constant enumConversionError = abi.encodeWithSignature("Panic(uint256)", 0x21); - bytes public constant encodeStorageError = abi.encodeWithSignature("Panic(uint256)", 0x22); - bytes public constant popError = abi.encodeWithSignature("Panic(uint256)", 0x31); - bytes public constant indexOOBError = abi.encodeWithSignature("Panic(uint256)", 0x32); - bytes public constant memOverflowError = abi.encodeWithSignature("Panic(uint256)", 0x41); - bytes public constant zeroVarError = abi.encodeWithSignature("Panic(uint256)", 0x51); -} diff --git a/contracts/lib/forge-std/src/StdInvariant.sol b/contracts/lib/forge-std/src/StdInvariant.sol deleted file mode 100644 index efa1129ef6..0000000000 --- a/contracts/lib/forge-std/src/StdInvariant.sol +++ /dev/null @@ -1,92 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -contract StdInvariant { - struct FuzzSelector { - address addr; - bytes4[] selectors; - } - - address[] private _excludedContracts; - address[] private _excludedSenders; - address[] private _targetedContracts; - address[] private _targetedSenders; - - string[] private _excludedArtifacts; - string[] private _targetedArtifacts; - - FuzzSelector[] private _targetedArtifactSelectors; - FuzzSelector[] private _targetedSelectors; - - // Functions for users: - // These are intended to be called in tests. - - function excludeContract(address newExcludedContract_) internal { - _excludedContracts.push(newExcludedContract_); - } - - function excludeSender(address newExcludedSender_) internal { - _excludedSenders.push(newExcludedSender_); - } - - function excludeArtifact(string memory newExcludedArtifact_) internal { - _excludedArtifacts.push(newExcludedArtifact_); - } - - function targetArtifact(string memory newTargetedArtifact_) internal { - _targetedArtifacts.push(newTargetedArtifact_); - } - - function targetArtifactSelector(FuzzSelector memory newTargetedArtifactSelector_) internal { - _targetedArtifactSelectors.push(newTargetedArtifactSelector_); - } - - function targetContract(address newTargetedContract_) internal { - _targetedContracts.push(newTargetedContract_); - } - - function targetSelector(FuzzSelector memory newTargetedSelector_) internal { - _targetedSelectors.push(newTargetedSelector_); - } - - function targetSender(address newTargetedSender_) internal { - _targetedSenders.push(newTargetedSender_); - } - - // Functions for forge: - // These are called by forge to run invariant tests and don't need to be called in tests. - - function excludeArtifacts() public view returns (string[] memory excludedArtifacts_) { - excludedArtifacts_ = _excludedArtifacts; - } - - function excludeContracts() public view returns (address[] memory excludedContracts_) { - excludedContracts_ = _excludedContracts; - } - - function excludeSenders() public view returns (address[] memory excludedSenders_) { - excludedSenders_ = _excludedSenders; - } - - function targetArtifacts() public view returns (string[] memory targetedArtifacts_) { - targetedArtifacts_ = _targetedArtifacts; - } - - function targetArtifactSelectors() public view returns (FuzzSelector[] memory targetedArtifactSelectors_) { - targetedArtifactSelectors_ = _targetedArtifactSelectors; - } - - function targetContracts() public view returns (address[] memory targetedContracts_) { - targetedContracts_ = _targetedContracts; - } - - function targetSelectors() public view returns (FuzzSelector[] memory targetedSelectors_) { - targetedSelectors_ = _targetedSelectors; - } - - function targetSenders() public view returns (address[] memory targetedSenders_) { - targetedSenders_ = _targetedSenders; - } -} diff --git a/contracts/lib/forge-std/src/StdJson.sol b/contracts/lib/forge-std/src/StdJson.sol deleted file mode 100644 index 014e6b15e5..0000000000 --- a/contracts/lib/forge-std/src/StdJson.sol +++ /dev/null @@ -1,179 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.0 <0.9.0; - -pragma experimental ABIEncoderV2; - -import {VmSafe} from "./Vm.sol"; - -// Helpers for parsing and writing JSON files -// To parse: -// ``` -// using stdJson for string; -// string memory json = vm.readFile("some_peth"); -// json.parseUint(""); -// ``` -// To write: -// ``` -// using stdJson for string; -// string memory json = "deploymentArtifact"; -// Contract contract = new Contract(); -// json.serialize("contractAddress", address(contract)); -// json = json.serialize("deploymentTimes", uint(1)); -// // store the stringified JSON to the 'json' variable we have been using as a key -// // as we won't need it any longer -// string memory json2 = "finalArtifact"; -// string memory final = json2.serialize("depArtifact", json); -// final.write(""); -// ``` - -library stdJson { - VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code"))))); - - function parseRaw(string memory json, string memory key) internal pure returns (bytes memory) { - return vm.parseJson(json, key); - } - - function readUint(string memory json, string memory key) internal returns (uint256) { - return vm.parseJsonUint(json, key); - } - - function readUintArray(string memory json, string memory key) internal returns (uint256[] memory) { - return vm.parseJsonUintArray(json, key); - } - - function readInt(string memory json, string memory key) internal returns (int256) { - return vm.parseJsonInt(json, key); - } - - function readIntArray(string memory json, string memory key) internal returns (int256[] memory) { - return vm.parseJsonIntArray(json, key); - } - - function readBytes32(string memory json, string memory key) internal returns (bytes32) { - return vm.parseJsonBytes32(json, key); - } - - function readBytes32Array(string memory json, string memory key) internal returns (bytes32[] memory) { - return vm.parseJsonBytes32Array(json, key); - } - - function readString(string memory json, string memory key) internal returns (string memory) { - return vm.parseJsonString(json, key); - } - - function readStringArray(string memory json, string memory key) internal returns (string[] memory) { - return vm.parseJsonStringArray(json, key); - } - - function readAddress(string memory json, string memory key) internal returns (address) { - return vm.parseJsonAddress(json, key); - } - - function readAddressArray(string memory json, string memory key) internal returns (address[] memory) { - return vm.parseJsonAddressArray(json, key); - } - - function readBool(string memory json, string memory key) internal returns (bool) { - return vm.parseJsonBool(json, key); - } - - function readBoolArray(string memory json, string memory key) internal returns (bool[] memory) { - return vm.parseJsonBoolArray(json, key); - } - - function readBytes(string memory json, string memory key) internal returns (bytes memory) { - return vm.parseJsonBytes(json, key); - } - - function readBytesArray(string memory json, string memory key) internal returns (bytes[] memory) { - return vm.parseJsonBytesArray(json, key); - } - - function serialize(string memory jsonKey, string memory key, bool value) internal returns (string memory) { - return vm.serializeBool(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, bool[] memory value) - internal - returns (string memory) - { - return vm.serializeBool(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, uint256 value) internal returns (string memory) { - return vm.serializeUint(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, uint256[] memory value) - internal - returns (string memory) - { - return vm.serializeUint(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, int256 value) internal returns (string memory) { - return vm.serializeInt(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, int256[] memory value) - internal - returns (string memory) - { - return vm.serializeInt(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, address value) internal returns (string memory) { - return vm.serializeAddress(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, address[] memory value) - internal - returns (string memory) - { - return vm.serializeAddress(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, bytes32 value) internal returns (string memory) { - return vm.serializeBytes32(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, bytes32[] memory value) - internal - returns (string memory) - { - return vm.serializeBytes32(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, bytes memory value) internal returns (string memory) { - return vm.serializeBytes(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, bytes[] memory value) - internal - returns (string memory) - { - return vm.serializeBytes(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, string memory value) - internal - returns (string memory) - { - return vm.serializeString(jsonKey, key, value); - } - - function serialize(string memory jsonKey, string memory key, string[] memory value) - internal - returns (string memory) - { - return vm.serializeString(jsonKey, key, value); - } - - function write(string memory jsonKey, string memory path) internal { - vm.writeJson(jsonKey, path); - } - - function write(string memory jsonKey, string memory path, string memory valueKey) internal { - vm.writeJson(jsonKey, path, valueKey); - } -} diff --git a/contracts/lib/forge-std/src/StdMath.sol b/contracts/lib/forge-std/src/StdMath.sol deleted file mode 100644 index 459523bdac..0000000000 --- a/contracts/lib/forge-std/src/StdMath.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -library stdMath { - int256 private constant INT256_MIN = -57896044618658097711785492504343953926634992332820282019728792003956564819968; - - function abs(int256 a) internal pure returns (uint256) { - // Required or it will fail when `a = type(int256).min` - if (a == INT256_MIN) { - return 57896044618658097711785492504343953926634992332820282019728792003956564819968; - } - - return uint256(a > 0 ? a : -a); - } - - function delta(uint256 a, uint256 b) internal pure returns (uint256) { - return a > b ? a - b : b - a; - } - - function delta(int256 a, int256 b) internal pure returns (uint256) { - // a and b are of the same sign - // this works thanks to two's complement, the left-most bit is the sign bit - if ((a ^ b) > -1) { - return delta(abs(a), abs(b)); - } - - // a and b are of opposite signs - return abs(a) + abs(b); - } - - function percentDelta(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 absDelta = delta(a, b); - - return absDelta * 1e18 / b; - } - - function percentDelta(int256 a, int256 b) internal pure returns (uint256) { - uint256 absDelta = delta(a, b); - uint256 absB = abs(b); - - return absDelta * 1e18 / absB; - } -} diff --git a/contracts/lib/forge-std/src/StdStorage.sol b/contracts/lib/forge-std/src/StdStorage.sol deleted file mode 100644 index 73a5ceb969..0000000000 --- a/contracts/lib/forge-std/src/StdStorage.sol +++ /dev/null @@ -1,327 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -import {Vm} from "./Vm.sol"; - -struct StdStorage { - mapping(address => mapping(bytes4 => mapping(bytes32 => uint256))) slots; - mapping(address => mapping(bytes4 => mapping(bytes32 => bool))) finds; - bytes32[] _keys; - bytes4 _sig; - uint256 _depth; - address _target; - bytes32 _set; -} - -library stdStorageSafe { - event SlotFound(address who, bytes4 fsig, bytes32 keysHash, uint256 slot); - event WARNING_UninitedSlot(address who, uint256 slot); - - Vm private constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code"))))); - - function sigs(string memory sigStr) internal pure returns (bytes4) { - return bytes4(keccak256(bytes(sigStr))); - } - - /// @notice find an arbitrary storage slot given a function sig, input data, address of the contract and a value to check against - // slot complexity: - // if flat, will be bytes32(uint256(uint)); - // if map, will be keccak256(abi.encode(key, uint(slot))); - // if deep map, will be keccak256(abi.encode(key1, keccak256(abi.encode(key0, uint(slot))))); - // if map struct, will be bytes32(uint256(keccak256(abi.encode(key1, keccak256(abi.encode(key0, uint(slot)))))) + structFieldDepth); - function find(StdStorage storage self) internal returns (uint256) { - address who = self._target; - bytes4 fsig = self._sig; - uint256 field_depth = self._depth; - bytes32[] memory ins = self._keys; - - // calldata to test against - if (self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]) { - return self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]; - } - bytes memory cald = abi.encodePacked(fsig, flatten(ins)); - vm.record(); - bytes32 fdat; - { - (, bytes memory rdat) = who.staticcall(cald); - fdat = bytesToBytes32(rdat, 32 * field_depth); - } - - (bytes32[] memory reads,) = vm.accesses(address(who)); - if (reads.length == 1) { - bytes32 curr = vm.load(who, reads[0]); - if (curr == bytes32(0)) { - emit WARNING_UninitedSlot(who, uint256(reads[0])); - } - if (fdat != curr) { - require( - false, - "stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported." - ); - } - emit SlotFound(who, fsig, keccak256(abi.encodePacked(ins, field_depth)), uint256(reads[0])); - self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = uint256(reads[0]); - self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = true; - } else if (reads.length > 1) { - for (uint256 i = 0; i < reads.length; i++) { - bytes32 prev = vm.load(who, reads[i]); - if (prev == bytes32(0)) { - emit WARNING_UninitedSlot(who, uint256(reads[i])); - } - // store - vm.store(who, reads[i], bytes32(hex"1337")); - bool success; - bytes memory rdat; - { - (success, rdat) = who.staticcall(cald); - fdat = bytesToBytes32(rdat, 32 * field_depth); - } - - if (success && fdat == bytes32(hex"1337")) { - // we found which of the slots is the actual one - emit SlotFound(who, fsig, keccak256(abi.encodePacked(ins, field_depth)), uint256(reads[i])); - self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = uint256(reads[i]); - self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = true; - vm.store(who, reads[i], prev); - break; - } - vm.store(who, reads[i], prev); - } - } else { - revert("stdStorage find(StdStorage): No storage use detected for target."); - } - - require( - self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))], - "stdStorage find(StdStorage): Slot(s) not found." - ); - - delete self._target; - delete self._sig; - delete self._keys; - delete self._depth; - - return self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]; - } - - function target(StdStorage storage self, address _target) internal returns (StdStorage storage) { - self._target = _target; - return self; - } - - function sig(StdStorage storage self, bytes4 _sig) internal returns (StdStorage storage) { - self._sig = _sig; - return self; - } - - function sig(StdStorage storage self, string memory _sig) internal returns (StdStorage storage) { - self._sig = sigs(_sig); - return self; - } - - function with_key(StdStorage storage self, address who) internal returns (StdStorage storage) { - self._keys.push(bytes32(uint256(uint160(who)))); - return self; - } - - function with_key(StdStorage storage self, uint256 amt) internal returns (StdStorage storage) { - self._keys.push(bytes32(amt)); - return self; - } - - function with_key(StdStorage storage self, bytes32 key) internal returns (StdStorage storage) { - self._keys.push(key); - return self; - } - - function depth(StdStorage storage self, uint256 _depth) internal returns (StdStorage storage) { - self._depth = _depth; - return self; - } - - function read(StdStorage storage self) private returns (bytes memory) { - address t = self._target; - uint256 s = find(self); - return abi.encode(vm.load(t, bytes32(s))); - } - - function read_bytes32(StdStorage storage self) internal returns (bytes32) { - return abi.decode(read(self), (bytes32)); - } - - function read_bool(StdStorage storage self) internal returns (bool) { - int256 v = read_int(self); - if (v == 0) return false; - if (v == 1) return true; - revert("stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."); - } - - function read_address(StdStorage storage self) internal returns (address) { - return abi.decode(read(self), (address)); - } - - function read_uint(StdStorage storage self) internal returns (uint256) { - return abi.decode(read(self), (uint256)); - } - - function read_int(StdStorage storage self) internal returns (int256) { - return abi.decode(read(self), (int256)); - } - - function bytesToBytes32(bytes memory b, uint256 offset) private pure returns (bytes32) { - bytes32 out; - - uint256 max = b.length > 32 ? 32 : b.length; - for (uint256 i = 0; i < max; i++) { - out |= bytes32(b[offset + i] & 0xFF) >> (i * 8); - } - return out; - } - - function flatten(bytes32[] memory b) private pure returns (bytes memory) { - bytes memory result = new bytes(b.length * 32); - for (uint256 i = 0; i < b.length; i++) { - bytes32 k = b[i]; - /// @solidity memory-safe-assembly - assembly { - mstore(add(result, add(32, mul(32, i))), k) - } - } - - return result; - } -} - -library stdStorage { - Vm private constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code"))))); - - function sigs(string memory sigStr) internal pure returns (bytes4) { - return stdStorageSafe.sigs(sigStr); - } - - function find(StdStorage storage self) internal returns (uint256) { - return stdStorageSafe.find(self); - } - - function target(StdStorage storage self, address _target) internal returns (StdStorage storage) { - return stdStorageSafe.target(self, _target); - } - - function sig(StdStorage storage self, bytes4 _sig) internal returns (StdStorage storage) { - return stdStorageSafe.sig(self, _sig); - } - - function sig(StdStorage storage self, string memory _sig) internal returns (StdStorage storage) { - return stdStorageSafe.sig(self, _sig); - } - - function with_key(StdStorage storage self, address who) internal returns (StdStorage storage) { - return stdStorageSafe.with_key(self, who); - } - - function with_key(StdStorage storage self, uint256 amt) internal returns (StdStorage storage) { - return stdStorageSafe.with_key(self, amt); - } - - function with_key(StdStorage storage self, bytes32 key) internal returns (StdStorage storage) { - return stdStorageSafe.with_key(self, key); - } - - function depth(StdStorage storage self, uint256 _depth) internal returns (StdStorage storage) { - return stdStorageSafe.depth(self, _depth); - } - - function checked_write(StdStorage storage self, address who) internal { - checked_write(self, bytes32(uint256(uint160(who)))); - } - - function checked_write(StdStorage storage self, uint256 amt) internal { - checked_write(self, bytes32(amt)); - } - - function checked_write(StdStorage storage self, bool write) internal { - bytes32 t; - /// @solidity memory-safe-assembly - assembly { - t := write - } - checked_write(self, t); - } - - function checked_write(StdStorage storage self, bytes32 set) internal { - address who = self._target; - bytes4 fsig = self._sig; - uint256 field_depth = self._depth; - bytes32[] memory ins = self._keys; - - bytes memory cald = abi.encodePacked(fsig, flatten(ins)); - if (!self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]) { - find(self); - } - bytes32 slot = bytes32(self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]); - - bytes32 fdat; - { - (, bytes memory rdat) = who.staticcall(cald); - fdat = bytesToBytes32(rdat, 32 * field_depth); - } - bytes32 curr = vm.load(who, slot); - - if (fdat != curr) { - require( - false, - "stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported." - ); - } - vm.store(who, slot, set); - delete self._target; - delete self._sig; - delete self._keys; - delete self._depth; - } - - function read_bytes32(StdStorage storage self) internal returns (bytes32) { - return stdStorageSafe.read_bytes32(self); - } - - function read_bool(StdStorage storage self) internal returns (bool) { - return stdStorageSafe.read_bool(self); - } - - function read_address(StdStorage storage self) internal returns (address) { - return stdStorageSafe.read_address(self); - } - - function read_uint(StdStorage storage self) internal returns (uint256) { - return stdStorageSafe.read_uint(self); - } - - function read_int(StdStorage storage self) internal returns (int256) { - return stdStorageSafe.read_int(self); - } - - // Private function so needs to be copied over - function bytesToBytes32(bytes memory b, uint256 offset) private pure returns (bytes32) { - bytes32 out; - - uint256 max = b.length > 32 ? 32 : b.length; - for (uint256 i = 0; i < max; i++) { - out |= bytes32(b[offset + i] & 0xFF) >> (i * 8); - } - return out; - } - - // Private function so needs to be copied over - function flatten(bytes32[] memory b) private pure returns (bytes memory) { - bytes memory result = new bytes(b.length * 32); - for (uint256 i = 0; i < b.length; i++) { - bytes32 k = b[i]; - /// @solidity memory-safe-assembly - assembly { - mstore(add(result, add(32, mul(32, i))), k) - } - } - - return result; - } -} diff --git a/contracts/lib/forge-std/src/StdStyle.sol b/contracts/lib/forge-std/src/StdStyle.sol deleted file mode 100644 index 46f4e81cb4..0000000000 --- a/contracts/lib/forge-std/src/StdStyle.sol +++ /dev/null @@ -1,333 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.4.22 <0.9.0; - -import {Vm} from "./Vm.sol"; - -library StdStyle { - Vm private constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code"))))); - - string constant RED = "\u001b[91m"; - string constant GREEN = "\u001b[92m"; - string constant YELLOW = "\u001b[93m"; - string constant BLUE = "\u001b[94m"; - string constant MAGENTA = "\u001b[95m"; - string constant CYAN = "\u001b[96m"; - string constant BOLD = "\u001b[1m"; - string constant DIM = "\u001b[2m"; - string constant ITALIC = "\u001b[3m"; - string constant UNDERLINE = "\u001b[4m"; - string constant INVERSE = "\u001b[7m"; - string constant RESET = "\u001b[0m"; - - function styleConcat(string memory style, string memory self) private pure returns (string memory) { - return string(abi.encodePacked(style, self, RESET)); - } - - function red(string memory self) internal pure returns (string memory) { - return styleConcat(RED, self); - } - - function red(uint256 self) internal pure returns (string memory) { - return red(vm.toString(self)); - } - - function red(int256 self) internal pure returns (string memory) { - return red(vm.toString(self)); - } - - function red(address self) internal pure returns (string memory) { - return red(vm.toString(self)); - } - - function red(bool self) internal pure returns (string memory) { - return red(vm.toString(self)); - } - - function redBytes(bytes memory self) internal pure returns (string memory) { - return red(vm.toString(self)); - } - - function redBytes32(bytes32 self) internal pure returns (string memory) { - return red(vm.toString(self)); - } - - function green(string memory self) internal pure returns (string memory) { - return styleConcat(GREEN, self); - } - - function green(uint256 self) internal pure returns (string memory) { - return green(vm.toString(self)); - } - - function green(int256 self) internal pure returns (string memory) { - return green(vm.toString(self)); - } - - function green(address self) internal pure returns (string memory) { - return green(vm.toString(self)); - } - - function green(bool self) internal pure returns (string memory) { - return green(vm.toString(self)); - } - - function greenBytes(bytes memory self) internal pure returns (string memory) { - return green(vm.toString(self)); - } - - function greenBytes32(bytes32 self) internal pure returns (string memory) { - return green(vm.toString(self)); - } - - function yellow(string memory self) internal pure returns (string memory) { - return styleConcat(YELLOW, self); - } - - function yellow(uint256 self) internal pure returns (string memory) { - return yellow(vm.toString(self)); - } - - function yellow(int256 self) internal pure returns (string memory) { - return yellow(vm.toString(self)); - } - - function yellow(address self) internal pure returns (string memory) { - return yellow(vm.toString(self)); - } - - function yellow(bool self) internal pure returns (string memory) { - return yellow(vm.toString(self)); - } - - function yellowBytes(bytes memory self) internal pure returns (string memory) { - return yellow(vm.toString(self)); - } - - function yellowBytes32(bytes32 self) internal pure returns (string memory) { - return yellow(vm.toString(self)); - } - - function blue(string memory self) internal pure returns (string memory) { - return styleConcat(BLUE, self); - } - - function blue(uint256 self) internal pure returns (string memory) { - return blue(vm.toString(self)); - } - - function blue(int256 self) internal pure returns (string memory) { - return blue(vm.toString(self)); - } - - function blue(address self) internal pure returns (string memory) { - return blue(vm.toString(self)); - } - - function blue(bool self) internal pure returns (string memory) { - return blue(vm.toString(self)); - } - - function blueBytes(bytes memory self) internal pure returns (string memory) { - return blue(vm.toString(self)); - } - - function blueBytes32(bytes32 self) internal pure returns (string memory) { - return blue(vm.toString(self)); - } - - function magenta(string memory self) internal pure returns (string memory) { - return styleConcat(MAGENTA, self); - } - - function magenta(uint256 self) internal pure returns (string memory) { - return magenta(vm.toString(self)); - } - - function magenta(int256 self) internal pure returns (string memory) { - return magenta(vm.toString(self)); - } - - function magenta(address self) internal pure returns (string memory) { - return magenta(vm.toString(self)); - } - - function magenta(bool self) internal pure returns (string memory) { - return magenta(vm.toString(self)); - } - - function magentaBytes(bytes memory self) internal pure returns (string memory) { - return magenta(vm.toString(self)); - } - - function magentaBytes32(bytes32 self) internal pure returns (string memory) { - return magenta(vm.toString(self)); - } - - function cyan(string memory self) internal pure returns (string memory) { - return styleConcat(CYAN, self); - } - - function cyan(uint256 self) internal pure returns (string memory) { - return cyan(vm.toString(self)); - } - - function cyan(int256 self) internal pure returns (string memory) { - return cyan(vm.toString(self)); - } - - function cyan(address self) internal pure returns (string memory) { - return cyan(vm.toString(self)); - } - - function cyan(bool self) internal pure returns (string memory) { - return cyan(vm.toString(self)); - } - - function cyanBytes(bytes memory self) internal pure returns (string memory) { - return cyan(vm.toString(self)); - } - - function cyanBytes32(bytes32 self) internal pure returns (string memory) { - return cyan(vm.toString(self)); - } - - function bold(string memory self) internal pure returns (string memory) { - return styleConcat(BOLD, self); - } - - function bold(uint256 self) internal pure returns (string memory) { - return bold(vm.toString(self)); - } - - function bold(int256 self) internal pure returns (string memory) { - return bold(vm.toString(self)); - } - - function bold(address self) internal pure returns (string memory) { - return bold(vm.toString(self)); - } - - function bold(bool self) internal pure returns (string memory) { - return bold(vm.toString(self)); - } - - function boldBytes(bytes memory self) internal pure returns (string memory) { - return bold(vm.toString(self)); - } - - function boldBytes32(bytes32 self) internal pure returns (string memory) { - return bold(vm.toString(self)); - } - - function dim(string memory self) internal pure returns (string memory) { - return styleConcat(DIM, self); - } - - function dim(uint256 self) internal pure returns (string memory) { - return dim(vm.toString(self)); - } - - function dim(int256 self) internal pure returns (string memory) { - return dim(vm.toString(self)); - } - - function dim(address self) internal pure returns (string memory) { - return dim(vm.toString(self)); - } - - function dim(bool self) internal pure returns (string memory) { - return dim(vm.toString(self)); - } - - function dimBytes(bytes memory self) internal pure returns (string memory) { - return dim(vm.toString(self)); - } - - function dimBytes32(bytes32 self) internal pure returns (string memory) { - return dim(vm.toString(self)); - } - - function italic(string memory self) internal pure returns (string memory) { - return styleConcat(ITALIC, self); - } - - function italic(uint256 self) internal pure returns (string memory) { - return italic(vm.toString(self)); - } - - function italic(int256 self) internal pure returns (string memory) { - return italic(vm.toString(self)); - } - - function italic(address self) internal pure returns (string memory) { - return italic(vm.toString(self)); - } - - function italic(bool self) internal pure returns (string memory) { - return italic(vm.toString(self)); - } - - function italicBytes(bytes memory self) internal pure returns (string memory) { - return italic(vm.toString(self)); - } - - function italicBytes32(bytes32 self) internal pure returns (string memory) { - return italic(vm.toString(self)); - } - - function underline(string memory self) internal pure returns (string memory) { - return styleConcat(UNDERLINE, self); - } - - function underline(uint256 self) internal pure returns (string memory) { - return underline(vm.toString(self)); - } - - function underline(int256 self) internal pure returns (string memory) { - return underline(vm.toString(self)); - } - - function underline(address self) internal pure returns (string memory) { - return underline(vm.toString(self)); - } - - function underline(bool self) internal pure returns (string memory) { - return underline(vm.toString(self)); - } - - function underlineBytes(bytes memory self) internal pure returns (string memory) { - return underline(vm.toString(self)); - } - - function underlineBytes32(bytes32 self) internal pure returns (string memory) { - return underline(vm.toString(self)); - } - - function inverse(string memory self) internal pure returns (string memory) { - return styleConcat(INVERSE, self); - } - - function inverse(uint256 self) internal pure returns (string memory) { - return inverse(vm.toString(self)); - } - - function inverse(int256 self) internal pure returns (string memory) { - return inverse(vm.toString(self)); - } - - function inverse(address self) internal pure returns (string memory) { - return inverse(vm.toString(self)); - } - - function inverse(bool self) internal pure returns (string memory) { - return inverse(vm.toString(self)); - } - - function inverseBytes(bytes memory self) internal pure returns (string memory) { - return inverse(vm.toString(self)); - } - - function inverseBytes32(bytes32 self) internal pure returns (string memory) { - return inverse(vm.toString(self)); - } -} diff --git a/contracts/lib/forge-std/src/StdUtils.sol b/contracts/lib/forge-std/src/StdUtils.sol deleted file mode 100644 index e55b4b90c1..0000000000 --- a/contracts/lib/forge-std/src/StdUtils.sol +++ /dev/null @@ -1,192 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import {IMulticall3} from "./interfaces/IMulticall3.sol"; -import {VmSafe} from "./Vm.sol"; - -abstract contract StdUtils { - /*////////////////////////////////////////////////////////////////////////// - CONSTANTS - //////////////////////////////////////////////////////////////////////////*/ - - IMulticall3 private constant multicall = IMulticall3(0xcA11bde05977b3631167028862bE2a173976CA11); - VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code"))))); - address private constant CONSOLE2_ADDRESS = 0x000000000000000000636F6e736F6c652e6c6f67; - uint256 private constant INT256_MIN_ABS = - 57896044618658097711785492504343953926634992332820282019728792003956564819968; - uint256 private constant UINT256_MAX = - 115792089237316195423570985008687907853269984665640564039457584007913129639935; - - // Used by default when deploying with create2, https://github.com/Arachnid/deterministic-deployment-proxy. - address private constant CREATE2_FACTORY = 0x4e59b44847b379578588920cA78FbF26c0B4956C; - - /*////////////////////////////////////////////////////////////////////////// - INTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////////////////*/ - - function _bound(uint256 x, uint256 min, uint256 max) internal pure virtual returns (uint256 result) { - require(min <= max, "StdUtils bound(uint256,uint256,uint256): Max is less than min."); - // If x is between min and max, return x directly. This is to ensure that dictionary values - // do not get shifted if the min is nonzero. More info: https://github.com/foundry-rs/forge-std/issues/188 - if (x >= min && x <= max) return x; - - uint256 size = max - min + 1; - - // If the value is 0, 1, 2, 3, wrap that to min, min+1, min+2, min+3. Similarly for the UINT256_MAX side. - // This helps ensure coverage of the min/max values. - if (x <= 3 && size > x) return min + x; - if (x >= UINT256_MAX - 3 && size > UINT256_MAX - x) return max - (UINT256_MAX - x); - - // Otherwise, wrap x into the range [min, max], i.e. the range is inclusive. - if (x > max) { - uint256 diff = x - max; - uint256 rem = diff % size; - if (rem == 0) return max; - result = min + rem - 1; - } else if (x < min) { - uint256 diff = min - x; - uint256 rem = diff % size; - if (rem == 0) return min; - result = max - rem + 1; - } - } - - function bound(uint256 x, uint256 min, uint256 max) internal view virtual returns (uint256 result) { - result = _bound(x, min, max); - console2_log("Bound Result", result); - } - - function _bound(int256 x, int256 min, int256 max) internal pure virtual returns (int256 result) { - require(min <= max, "StdUtils bound(int256,int256,int256): Max is less than min."); - - // Shifting all int256 values to uint256 to use _bound function. The range of two types are: - // int256 : -(2**255) ~ (2**255 - 1) - // uint256: 0 ~ (2**256 - 1) - // So, add 2**255, INT256_MIN_ABS to the integer values. - // - // If the given integer value is -2**255, we cannot use `-uint256(-x)` because of the overflow. - // So, use `~uint256(x) + 1` instead. - uint256 _x = x < 0 ? (INT256_MIN_ABS - ~uint256(x) - 1) : (uint256(x) + INT256_MIN_ABS); - uint256 _min = min < 0 ? (INT256_MIN_ABS - ~uint256(min) - 1) : (uint256(min) + INT256_MIN_ABS); - uint256 _max = max < 0 ? (INT256_MIN_ABS - ~uint256(max) - 1) : (uint256(max) + INT256_MIN_ABS); - - uint256 y = _bound(_x, _min, _max); - - // To move it back to int256 value, subtract INT256_MIN_ABS at here. - result = y < INT256_MIN_ABS ? int256(~(INT256_MIN_ABS - y) + 1) : int256(y - INT256_MIN_ABS); - } - - function bound(int256 x, int256 min, int256 max) internal view virtual returns (int256 result) { - result = _bound(x, min, max); - console2_log("Bound result", vm.toString(result)); - } - - function bytesToUint(bytes memory b) internal pure virtual returns (uint256) { - require(b.length <= 32, "StdUtils bytesToUint(bytes): Bytes length exceeds 32."); - return abi.decode(abi.encodePacked(new bytes(32 - b.length), b), (uint256)); - } - - /// @dev Compute the address a contract will be deployed at for a given deployer address and nonce - /// @notice adapted from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol) - function computeCreateAddress(address deployer, uint256 nonce) internal pure virtual returns (address) { - // forgefmt: disable-start - // The integer zero is treated as an empty byte string, and as a result it only has a length prefix, 0x80, computed via 0x80 + 0. - // A one byte integer uses its own value as its length prefix, there is no additional "0x80 + length" prefix that comes before it. - if (nonce == 0x00) return addressFromLast20Bytes(keccak256(abi.encodePacked(bytes1(0xd6), bytes1(0x94), deployer, bytes1(0x80)))); - if (nonce <= 0x7f) return addressFromLast20Bytes(keccak256(abi.encodePacked(bytes1(0xd6), bytes1(0x94), deployer, uint8(nonce)))); - - // Nonces greater than 1 byte all follow a consistent encoding scheme, where each value is preceded by a prefix of 0x80 + length. - if (nonce <= 2**8 - 1) return addressFromLast20Bytes(keccak256(abi.encodePacked(bytes1(0xd7), bytes1(0x94), deployer, bytes1(0x81), uint8(nonce)))); - if (nonce <= 2**16 - 1) return addressFromLast20Bytes(keccak256(abi.encodePacked(bytes1(0xd8), bytes1(0x94), deployer, bytes1(0x82), uint16(nonce)))); - if (nonce <= 2**24 - 1) return addressFromLast20Bytes(keccak256(abi.encodePacked(bytes1(0xd9), bytes1(0x94), deployer, bytes1(0x83), uint24(nonce)))); - // forgefmt: disable-end - - // More details about RLP encoding can be found here: https://eth.wiki/fundamentals/rlp - // 0xda = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x84 ++ nonce) - // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex) - // 0x84 = 0x80 + 0x04 (0x04 = the bytes length of the nonce, 4 bytes, in hex) - // We assume nobody can have a nonce large enough to require more than 32 bytes. - return addressFromLast20Bytes( - keccak256(abi.encodePacked(bytes1(0xda), bytes1(0x94), deployer, bytes1(0x84), uint32(nonce))) - ); - } - - function computeCreate2Address(bytes32 salt, bytes32 initcodeHash, address deployer) - internal - pure - virtual - returns (address) - { - return addressFromLast20Bytes(keccak256(abi.encodePacked(bytes1(0xff), deployer, salt, initcodeHash))); - } - - /// @dev returns the address of a contract created with CREATE2 using the default CREATE2 deployer - function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) internal pure returns (address) { - return computeCreate2Address(salt, initCodeHash, CREATE2_FACTORY); - } - - /// @dev returns the hash of the init code (creation code + no args) used in CREATE2 with no constructor arguments - /// @param creationCode the creation code of a contract C, as returned by type(C).creationCode - function hashInitCode(bytes memory creationCode) internal pure returns (bytes32) { - return hashInitCode(creationCode, ""); - } - - /// @dev returns the hash of the init code (creation code + ABI-encoded args) used in CREATE2 - /// @param creationCode the creation code of a contract C, as returned by type(C).creationCode - /// @param args the ABI-encoded arguments to the constructor of C - function hashInitCode(bytes memory creationCode, bytes memory args) internal pure returns (bytes32) { - return keccak256(abi.encodePacked(creationCode, args)); - } - - // Performs a single call with Multicall3 to query the ERC-20 token balances of the given addresses. - function getTokenBalances(address token, address[] memory addresses) - internal - virtual - returns (uint256[] memory balances) - { - uint256 tokenCodeSize; - assembly { - tokenCodeSize := extcodesize(token) - } - require(tokenCodeSize > 0, "StdUtils getTokenBalances(address,address[]): Token address is not a contract."); - - // ABI encode the aggregate call to Multicall3. - uint256 length = addresses.length; - IMulticall3.Call[] memory calls = new IMulticall3.Call[](length); - for (uint256 i = 0; i < length; ++i) { - // 0x70a08231 = bytes4("balanceOf(address)")) - calls[i] = IMulticall3.Call({target: token, callData: abi.encodeWithSelector(0x70a08231, (addresses[i]))}); - } - - // Make the aggregate call. - (, bytes[] memory returnData) = multicall.aggregate(calls); - - // ABI decode the return data and return the balances. - balances = new uint256[](length); - for (uint256 i = 0; i < length; ++i) { - balances[i] = abi.decode(returnData[i], (uint256)); - } - } - - /*////////////////////////////////////////////////////////////////////////// - PRIVATE FUNCTIONS - //////////////////////////////////////////////////////////////////////////*/ - - function addressFromLast20Bytes(bytes32 bytesValue) private pure returns (address) { - return address(uint160(uint256(bytesValue))); - } - - // Used to prevent the compilation of console, which shortens the compilation time when console is not used elsewhere. - - function console2_log(string memory p0, uint256 p1) private view { - (bool status,) = address(CONSOLE2_ADDRESS).staticcall(abi.encodeWithSignature("log(string,uint256)", p0, p1)); - status; - } - - function console2_log(string memory p0, string memory p1) private view { - (bool status,) = address(CONSOLE2_ADDRESS).staticcall(abi.encodeWithSignature("log(string,string)", p0, p1)); - status; - } -} diff --git a/contracts/lib/forge-std/src/Test.sol b/contracts/lib/forge-std/src/Test.sol deleted file mode 100644 index 9ff5cb8db1..0000000000 --- a/contracts/lib/forge-std/src/Test.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -// 💬 ABOUT -// Standard Library's default Test - -// 🧩 MODULES -import {console} from "./console.sol"; -import {console2} from "./console2.sol"; -import {StdAssertions} from "./StdAssertions.sol"; -import {StdChains} from "./StdChains.sol"; -import {StdCheats} from "./StdCheats.sol"; -import {stdError} from "./StdError.sol"; -import {StdInvariant} from "./StdInvariant.sol"; -import {stdJson} from "./StdJson.sol"; -import {stdMath} from "./StdMath.sol"; -import {StdStorage, stdStorage} from "./StdStorage.sol"; -import {StdUtils} from "./StdUtils.sol"; -import {Vm} from "./Vm.sol"; -import {StdStyle} from "./StdStyle.sol"; - -// 📦 BOILERPLATE -import {TestBase} from "./Base.sol"; -import {DSTest} from "ds-test/test.sol"; - -// ⭐️ TEST -abstract contract Test is DSTest, StdAssertions, StdChains, StdCheats, StdInvariant, StdUtils, TestBase { -// Note: IS_TEST() must return true. -// Note: Must have failure system, https://github.com/dapphub/ds-test/blob/cd98eff28324bfac652e63a239a60632a761790b/src/test.sol#L39-L76. -} diff --git a/contracts/lib/forge-std/src/Vm.sol b/contracts/lib/forge-std/src/Vm.sol deleted file mode 100644 index e48ebaa53c..0000000000 --- a/contracts/lib/forge-std/src/Vm.sol +++ /dev/null @@ -1,490 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -// Cheatcodes are marked as view/pure/none using the following rules: -// 0. A call's observable behaviour includes its return value, logs, reverts and state writes, -// 1. If you can influence a later call's observable behaviour, you're neither `view` nor `pure (you are modifying some state be it the EVM, interpreter, filesystem, etc), -// 2. Otherwise if you can be influenced by an earlier call, or if reading some state, you're `view`, -// 3. Otherwise you're `pure`. - -interface VmSafe { - struct Log { - bytes32[] topics; - bytes data; - address emitter; - } - - struct Rpc { - string key; - string url; - } - - struct DirEntry { - string errorMessage; - string path; - uint64 depth; - bool isDir; - bool isSymlink; - } - - struct FsMetadata { - bool isDir; - bool isSymlink; - uint256 length; - bool readOnly; - uint256 modified; - uint256 accessed; - uint256 created; - } - - // Loads a storage slot from an address - function load(address target, bytes32 slot) external view returns (bytes32 data); - // Signs data - function sign(uint256 privateKey, bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s); - // Gets the address for a given private key - function addr(uint256 privateKey) external pure returns (address keyAddr); - // Gets the nonce of an account - function getNonce(address account) external view returns (uint64 nonce); - // Performs a foreign function call via the terminal - function ffi(string[] calldata commandInput) external returns (bytes memory result); - // Sets environment variables - function setEnv(string calldata name, string calldata value) external; - // Reads environment variables, (name) => (value) - function envBool(string calldata name) external view returns (bool value); - function envUint(string calldata name) external view returns (uint256 value); - function envInt(string calldata name) external view returns (int256 value); - function envAddress(string calldata name) external view returns (address value); - function envBytes32(string calldata name) external view returns (bytes32 value); - function envString(string calldata name) external view returns (string memory value); - function envBytes(string calldata name) external view returns (bytes memory value); - // Reads environment variables as arrays - function envBool(string calldata name, string calldata delim) external view returns (bool[] memory value); - function envUint(string calldata name, string calldata delim) external view returns (uint256[] memory value); - function envInt(string calldata name, string calldata delim) external view returns (int256[] memory value); - function envAddress(string calldata name, string calldata delim) external view returns (address[] memory value); - function envBytes32(string calldata name, string calldata delim) external view returns (bytes32[] memory value); - function envString(string calldata name, string calldata delim) external view returns (string[] memory value); - function envBytes(string calldata name, string calldata delim) external view returns (bytes[] memory value); - // Read environment variables with default value - function envOr(string calldata name, bool defaultValue) external returns (bool value); - function envOr(string calldata name, uint256 defaultValue) external returns (uint256 value); - function envOr(string calldata name, int256 defaultValue) external returns (int256 value); - function envOr(string calldata name, address defaultValue) external returns (address value); - function envOr(string calldata name, bytes32 defaultValue) external returns (bytes32 value); - function envOr(string calldata name, string calldata defaultValue) external returns (string memory value); - function envOr(string calldata name, bytes calldata defaultValue) external returns (bytes memory value); - // Read environment variables as arrays with default value - function envOr(string calldata name, string calldata delim, bool[] calldata defaultValue) - external - returns (bool[] memory value); - function envOr(string calldata name, string calldata delim, uint256[] calldata defaultValue) - external - returns (uint256[] memory value); - function envOr(string calldata name, string calldata delim, int256[] calldata defaultValue) - external - returns (int256[] memory value); - function envOr(string calldata name, string calldata delim, address[] calldata defaultValue) - external - returns (address[] memory value); - function envOr(string calldata name, string calldata delim, bytes32[] calldata defaultValue) - external - returns (bytes32[] memory value); - function envOr(string calldata name, string calldata delim, string[] calldata defaultValue) - external - returns (string[] memory value); - function envOr(string calldata name, string calldata delim, bytes[] calldata defaultValue) - external - returns (bytes[] memory value); - // Records all storage reads and writes - function record() external; - // Gets all accessed reads and write slot from a recording session, for a given address - function accesses(address target) external returns (bytes32[] memory readSlots, bytes32[] memory writeSlots); - // Gets the _creation_ bytecode from an artifact file. Takes in the relative path to the json file - function getCode(string calldata artifactPath) external view returns (bytes memory creationBytecode); - // Gets the _deployed_ bytecode from an artifact file. Takes in the relative path to the json file - function getDeployedCode(string calldata artifactPath) external view returns (bytes memory runtimeBytecode); - // Labels an address in call traces - function label(address account, string calldata newLabel) external; - // Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain - function broadcast() external; - // Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain - function broadcast(address signer) external; - // Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain - function broadcast(uint256 privateKey) external; - // Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain - function startBroadcast() external; - // Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain - function startBroadcast(address signer) external; - // Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain - function startBroadcast(uint256 privateKey) external; - // Stops collecting onchain transactions - function stopBroadcast() external; - - // Get the path of the current project root. - function projectRoot() external view returns (string memory path); - // Reads the entire content of file to string. `path` is relative to the project root. - function readFile(string calldata path) external view returns (string memory data); - // Reads the entire content of file as binary. `path` is relative to the project root. - function readFileBinary(string calldata path) external view returns (bytes memory data); - // Reads next line of file to string. - function readLine(string calldata path) external view returns (string memory line); - // Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. - // `path` is relative to the project root. - function writeFile(string calldata path, string calldata data) external; - // Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. - // `path` is relative to the project root. - function writeFileBinary(string calldata path, bytes calldata data) external; - // Writes line to file, creating a file if it does not exist. - // `path` is relative to the project root. - function writeLine(string calldata path, string calldata data) external; - // Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. - // `path` is relative to the project root. - function closeFile(string calldata path) external; - // Removes a file from the filesystem. - // This cheatcode will revert in the following situations, but is not limited to just these cases: - // - `path` points to a directory. - // - The file doesn't exist. - // - The user lacks permissions to remove the file. - // `path` is relative to the project root. - function removeFile(string calldata path) external; - // Creates a new, empty directory at the provided path. - // This cheatcode will revert in the following situations, but is not limited to just these cases: - // - User lacks permissions to modify `path`. - // - A parent of the given path doesn't exist and `recursive` is false. - // - `path` already exists and `recursive` is false. - // `path` is relative to the project root. - function createDir(string calldata path, bool recursive) external; - // Removes a directory at the provided path. - // This cheatcode will revert in the following situations, but is not limited to just these cases: - // - `path` doesn't exist. - // - `path` isn't a directory. - // - User lacks permissions to modify `path`. - // - The directory is not empty and `recursive` is false. - // `path` is relative to the project root. - function removeDir(string calldata path, bool recursive) external; - // Reads the directory at the given path recursively, up to `max_depth`. - // `max_depth` defaults to 1, meaning only the direct children of the given directory will be returned. - // Follows symbolic links if `follow_links` is true. - function readDir(string calldata path) external view returns (DirEntry[] memory entries); - function readDir(string calldata path, uint64 maxDepth) external view returns (DirEntry[] memory entries); - function readDir(string calldata path, uint64 maxDepth, bool followLinks) - external - view - returns (DirEntry[] memory entries); - // Reads a symbolic link, returning the path that the link points to. - // This cheatcode will revert in the following situations, but is not limited to just these cases: - // - `path` is not a symbolic link. - // - `path` does not exist. - function readLink(string calldata linkPath) external view returns (string memory targetPath); - // Given a path, query the file system to get information about a file, directory, etc. - function fsMetadata(string calldata path) external view returns (FsMetadata memory metadata); - - // Convert values to a string - function toString(address value) external pure returns (string memory stringifiedValue); - function toString(bytes calldata value) external pure returns (string memory stringifiedValue); - function toString(bytes32 value) external pure returns (string memory stringifiedValue); - function toString(bool value) external pure returns (string memory stringifiedValue); - function toString(uint256 value) external pure returns (string memory stringifiedValue); - function toString(int256 value) external pure returns (string memory stringifiedValue); - // Convert values from a string - function parseBytes(string calldata stringifiedValue) external pure returns (bytes memory parsedValue); - function parseAddress(string calldata stringifiedValue) external pure returns (address parsedValue); - function parseUint(string calldata stringifiedValue) external pure returns (uint256 parsedValue); - function parseInt(string calldata stringifiedValue) external pure returns (int256 parsedValue); - function parseBytes32(string calldata stringifiedValue) external pure returns (bytes32 parsedValue); - function parseBool(string calldata stringifiedValue) external pure returns (bool parsedValue); - // Record all the transaction logs - function recordLogs() external; - // Gets all the recorded logs - function getRecordedLogs() external returns (Log[] memory logs); - // Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path m/44'/60'/0'/0/{index} - function deriveKey(string calldata mnemonic, uint32 index) external pure returns (uint256 privateKey); - // Derive a private key from a provided mnenomic string (or mnenomic file path) at {derivationPath}{index} - function deriveKey(string calldata mnemonic, string calldata derivationPath, uint32 index) - external - pure - returns (uint256 privateKey); - // Adds a private key to the local forge wallet and returns the address - function rememberKey(uint256 privateKey) external returns (address keyAddr); - // - // parseJson - // - // ---- - // In case the returned value is a JSON object, it's encoded as a ABI-encoded tuple. As JSON objects - // don't have the notion of ordered, but tuples do, they JSON object is encoded with it's fields ordered in - // ALPHABETICAL order. That means that in order to successfully decode the tuple, we need to define a tuple that - // encodes the fields in the same order, which is alphabetical. In the case of Solidity structs, they are encoded - // as tuples, with the attributes in the order in which they are defined. - // For example: json = { 'a': 1, 'b': 0xa4tb......3xs} - // a: uint256 - // b: address - // To decode that json, we need to define a struct or a tuple as follows: - // struct json = { uint256 a; address b; } - // If we defined a json struct with the opposite order, meaning placing the address b first, it would try to - // decode the tuple in that order, and thus fail. - // ---- - // Given a string of JSON, return it as ABI-encoded - function parseJson(string calldata json, string calldata key) external pure returns (bytes memory abiEncodedData); - function parseJson(string calldata json) external pure returns (bytes memory abiEncodedData); - - // The following parseJson cheatcodes will do type coercion, for the type that they indicate. - // For example, parseJsonUint will coerce all values to a uint256. That includes stringified numbers '12' - // and hex numbers '0xEF'. - // Type coercion works ONLY for discrete values or arrays. That means that the key must return a value or array, not - // a JSON object. - function parseJsonUint(string calldata, string calldata) external returns (uint256); - function parseJsonUintArray(string calldata, string calldata) external returns (uint256[] memory); - function parseJsonInt(string calldata, string calldata) external returns (int256); - function parseJsonIntArray(string calldata, string calldata) external returns (int256[] memory); - function parseJsonBool(string calldata, string calldata) external returns (bool); - function parseJsonBoolArray(string calldata, string calldata) external returns (bool[] memory); - function parseJsonAddress(string calldata, string calldata) external returns (address); - function parseJsonAddressArray(string calldata, string calldata) external returns (address[] memory); - function parseJsonString(string calldata, string calldata) external returns (string memory); - function parseJsonStringArray(string calldata, string calldata) external returns (string[] memory); - function parseJsonBytes(string calldata, string calldata) external returns (bytes memory); - function parseJsonBytesArray(string calldata, string calldata) external returns (bytes[] memory); - function parseJsonBytes32(string calldata, string calldata) external returns (bytes32); - function parseJsonBytes32Array(string calldata, string calldata) external returns (bytes32[] memory); - - // Serialize a key and value to a JSON object stored in-memory that can be later written to a file - // It returns the stringified version of the specific JSON file up to that moment. - function serializeBool(string calldata objectKey, string calldata valueKey, bool value) - external - returns (string memory json); - function serializeUint(string calldata objectKey, string calldata valueKey, uint256 value) - external - returns (string memory json); - function serializeInt(string calldata objectKey, string calldata valueKey, int256 value) - external - returns (string memory json); - function serializeAddress(string calldata objectKey, string calldata valueKey, address value) - external - returns (string memory json); - function serializeBytes32(string calldata objectKey, string calldata valueKey, bytes32 value) - external - returns (string memory json); - function serializeString(string calldata objectKey, string calldata valueKey, string calldata value) - external - returns (string memory json); - function serializeBytes(string calldata objectKey, string calldata valueKey, bytes calldata value) - external - returns (string memory json); - - function serializeBool(string calldata objectKey, string calldata valueKey, bool[] calldata values) - external - returns (string memory json); - function serializeUint(string calldata objectKey, string calldata valueKey, uint256[] calldata values) - external - returns (string memory json); - function serializeInt(string calldata objectKey, string calldata valueKey, int256[] calldata values) - external - returns (string memory json); - function serializeAddress(string calldata objectKey, string calldata valueKey, address[] calldata values) - external - returns (string memory json); - function serializeBytes32(string calldata objectKey, string calldata valueKey, bytes32[] calldata values) - external - returns (string memory json); - function serializeString(string calldata objectKey, string calldata valueKey, string[] calldata values) - external - returns (string memory json); - function serializeBytes(string calldata objectKey, string calldata valueKey, bytes[] calldata values) - external - returns (string memory json); - - // - // writeJson - // - // ---- - // Write a serialized JSON object to a file. If the file exists, it will be overwritten. - // Let's assume we want to write the following JSON to a file: - // - // { "boolean": true, "number": 342, "object": { "title": "finally json serialization" } } - // - // ``` - // string memory json1 = "some key"; - // vm.serializeBool(json1, "boolean", true); - // vm.serializeBool(json1, "number", uint256(342)); - // json2 = "some other key"; - // string memory output = vm.serializeString(json2, "title", "finally json serialization"); - // string memory finalJson = vm.serialize(json1, "object", output); - // vm.writeJson(finalJson, "./output/example.json"); - // ``` - // The critical insight is that every invocation of serialization will return the stringified version of the JSON - // up to that point. That means we can construct arbitrary JSON objects and then use the return stringified version - // to serialize them as values to another JSON object. - // - // json1 and json2 are simply keys used by the backend to keep track of the objects. So vm.serializeJson(json1,..) - // will find the object in-memory that is keyed by "some key". - function writeJson(string calldata json, string calldata path) external; - // Write a serialized JSON object to an **existing** JSON file, replacing a value with key = - // This is useful to replace a specific value of a JSON file, without having to parse the entire thing - function writeJson(string calldata json, string calldata path, string calldata valueKey) external; - // Returns the RPC url for the given alias - function rpcUrl(string calldata rpcAlias) external view returns (string memory json); - // Returns all rpc urls and their aliases `[alias, url][]` - function rpcUrls() external view returns (string[2][] memory urls); - // Returns all rpc urls and their aliases as structs. - function rpcUrlStructs() external view returns (Rpc[] memory urls); - // If the condition is false, discard this run's fuzz inputs and generate new ones. - function assume(bool condition) external pure; - // Pauses gas metering (i.e. gas usage is not counted). Noop if already paused. - function pauseGasMetering() external; - // Resumes gas metering (i.e. gas usage is counted again). Noop if already on. - function resumeGasMetering() external; - // Writes a breakpoint to jump to in the debugger - function breakpoint(string calldata char) external; - // Writes a conditional breakpoint to jump to in the debugger - function breakpoint(string calldata char, bool value) external; -} - -interface Vm is VmSafe { - // Sets block.timestamp - function warp(uint256 newTimestamp) external; - // Sets block.height - function roll(uint256 newHeight) external; - // Sets block.basefee - function fee(uint256 newBasefee) external; - // Sets block.difficulty - function difficulty(uint256 newDifficulty) external; - // Sets block.chainid - function chainId(uint256 newChainId) external; - // Sets tx.gasprice - function txGasPrice(uint256 newGasPrice) external; - // Stores a value to an address' storage slot. - function store(address target, bytes32 slot, bytes32 value) external; - // Sets the nonce of an account; must be higher than the current nonce of the account - function setNonce(address account, uint64 newNonce) external; - // Sets the *next* call's msg.sender to be the input address - function prank(address msgSender) external; - // Sets all subsequent calls' msg.sender to be the input address until `stopPrank` is called - function startPrank(address msgSender) external; - // Sets the *next* call's msg.sender to be the input address, and the tx.origin to be the second input - function prank(address msgSender, address txOrigin) external; - // Sets all subsequent calls' msg.sender to be the input address until `stopPrank` is called, and the tx.origin to be the second input - function startPrank(address msgSender, address txOrigin) external; - // Resets subsequent calls' msg.sender to be `address(this)` - function stopPrank() external; - // Sets an address' balance - function deal(address account, uint256 newBalance) external; - // Sets an address' code - function etch(address target, bytes calldata newRuntimeBytecode) external; - // Expects an error on next call - function expectRevert(bytes calldata revertData) external; - function expectRevert(bytes4 revertData) external; - function expectRevert() external; - - // Prepare an expected log with all four checks enabled. - // Call this function, then emit an event, then call a function. Internally after the call, we check if - // logs were emitted in the expected order with the expected topics and data. - // Second form also checks supplied address against emitting contract. - function expectEmit() external; - function expectEmit(address emitter) external; - - // Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData). - // Call this function, then emit an event, then call a function. Internally after the call, we check if - // logs were emitted in the expected order with the expected topics and data (as specified by the booleans). - // Second form also checks supplied address against emitting contract. - function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) external; - function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) - external; - - // Mocks a call to an address, returning specified data. - // Calldata can either be strict or a partial match, e.g. if you only - // pass a Solidity selector to the expected calldata, then the entire Solidity - // function will be mocked. - function mockCall(address callee, bytes calldata data, bytes calldata returnData) external; - // Mocks a call to an address with a specific msg.value, returning specified data. - // Calldata match takes precedence over msg.value in case of ambiguity. - function mockCall(address callee, uint256 msgValue, bytes calldata data, bytes calldata returnData) external; - // Reverts a call to an address with specified revert data. - function mockCallRevert(address callee, bytes calldata data, bytes calldata revertData) external; - // Reverts a call to an address with a specific msg.value, with specified revert data. - function mockCallRevert(address callee, uint256 msgValue, bytes calldata data, bytes calldata revertData) - external; - // Clears all mocked calls - function clearMockedCalls() external; - // Expects a call to an address with the specified calldata. - // Calldata can either be a strict or a partial match - function expectCall(address callee, bytes calldata data) external; - // Expects given number of calls to an address with the specified calldata. - function expectCall(address callee, bytes calldata data, uint64 count) external; - // Expects a call to an address with the specified msg.value and calldata - function expectCall(address callee, uint256 msgValue, bytes calldata data) external; - // Expects given number of calls to an address with the specified msg.value and calldata - function expectCall(address callee, uint256 msgValue, bytes calldata data, uint64 count) external; - // Expect a call to an address with the specified msg.value, gas, and calldata. - function expectCall(address callee, uint256 msgValue, uint64 gas, bytes calldata data) external; - // Expects given number of calls to an address with the specified msg.value, gas, and calldata. - function expectCall(address callee, uint256 msgValue, uint64 gas, bytes calldata data, uint64 count) external; - // Expect a call to an address with the specified msg.value and calldata, and a *minimum* amount of gas. - function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes calldata data) external; - // Expect given number of calls to an address with the specified msg.value and calldata, and a *minimum* amount of gas. - function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes calldata data, uint64 count) - external; - // Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other - // memory is written to, the test will fail. Can be called multiple times to add more ranges to the set. - function expectSafeMemory(uint64 min, uint64 max) external; - // Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. - // If any other memory is written to, the test will fail. Can be called multiple times to add more ranges - // to the set. - function expectSafeMemoryCall(uint64 min, uint64 max) external; - // Sets block.coinbase - function coinbase(address newCoinbase) external; - // Snapshot the current state of the evm. - // Returns the id of the snapshot that was created. - // To revert a snapshot use `revertTo` - function snapshot() external returns (uint256 snapshotId); - // Revert the state of the EVM to a previous snapshot - // Takes the snapshot id to revert to. - // This deletes the snapshot and all snapshots taken after the given snapshot id. - function revertTo(uint256 snapshotId) external returns (bool success); - // Creates a new fork with the given endpoint and block and returns the identifier of the fork - function createFork(string calldata urlOrAlias, uint256 blockNumber) external returns (uint256 forkId); - // Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork - function createFork(string calldata urlOrAlias) external returns (uint256 forkId); - // Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, - // and returns the identifier of the fork - function createFork(string calldata urlOrAlias, bytes32 txHash) external returns (uint256 forkId); - // Creates _and_ also selects a new fork with the given endpoint and block and returns the identifier of the fork - function createSelectFork(string calldata urlOrAlias, uint256 blockNumber) external returns (uint256 forkId); - // Creates _and_ also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before - // the transaction, returns the identifier of the fork - function createSelectFork(string calldata urlOrAlias, bytes32 txHash) external returns (uint256 forkId); - // Creates _and_ also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork - function createSelectFork(string calldata urlOrAlias) external returns (uint256 forkId); - // Takes a fork identifier created by `createFork` and sets the corresponding forked state as active. - function selectFork(uint256 forkId) external; - /// Returns the identifier of the currently active fork. Reverts if no fork is currently active. - function activeFork() external view returns (uint256 forkId); - // Updates the currently active fork to given block number - // This is similar to `roll` but for the currently active fork - function rollFork(uint256 blockNumber) external; - // Updates the currently active fork to given transaction - // this will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block - function rollFork(bytes32 txHash) external; - // Updates the given fork to given block number - function rollFork(uint256 forkId, uint256 blockNumber) external; - // Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block - function rollFork(uint256 forkId, bytes32 txHash) external; - // Marks that the account(s) should use persistent storage across fork swaps in a multifork setup - // Meaning, changes made to the state of this account will be kept when switching forks - function makePersistent(address account) external; - function makePersistent(address account0, address account1) external; - function makePersistent(address account0, address account1, address account2) external; - function makePersistent(address[] calldata accounts) external; - // Revokes persistent status from the address, previously added via `makePersistent` - function revokePersistent(address account) external; - function revokePersistent(address[] calldata accounts) external; - // Returns true if the account is marked as persistent - function isPersistent(address account) external view returns (bool persistent); - // In forking mode, explicitly grant the given address cheatcode access - function allowCheatcodes(address account) external; - // Fetches the given transaction from the active fork and executes it on the current state - function transact(bytes32 txHash) external; - // Fetches the given transaction from the given fork and executes it on the current state - function transact(uint256 forkId, bytes32 txHash) external; -} diff --git a/contracts/lib/forge-std/src/console.sol b/contracts/lib/forge-std/src/console.sol deleted file mode 100644 index ad57e53687..0000000000 --- a/contracts/lib/forge-std/src/console.sol +++ /dev/null @@ -1,1533 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.4.22 <0.9.0; - -library console { - address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); - - function _sendLogPayload(bytes memory payload) private view { - uint256 payloadLength = payload.length; - address consoleAddress = CONSOLE_ADDRESS; - /// @solidity memory-safe-assembly - assembly { - let payloadStart := add(payload, 32) - let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) - } - } - - function log() internal view { - _sendLogPayload(abi.encodeWithSignature("log()")); - } - - function logInt(int p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(int)", p0)); - } - - function logUint(uint p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); - } - - function logString(string memory p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); - } - - function logBool(bool p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); - } - - function logAddress(address p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); - } - - function logBytes(bytes memory p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); - } - - function logBytes1(bytes1 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); - } - - function logBytes2(bytes2 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); - } - - function logBytes3(bytes3 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); - } - - function logBytes4(bytes4 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); - } - - function logBytes5(bytes5 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); - } - - function logBytes6(bytes6 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); - } - - function logBytes7(bytes7 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); - } - - function logBytes8(bytes8 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); - } - - function logBytes9(bytes9 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); - } - - function logBytes10(bytes10 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); - } - - function logBytes11(bytes11 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); - } - - function logBytes12(bytes12 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); - } - - function logBytes13(bytes13 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); - } - - function logBytes14(bytes14 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); - } - - function logBytes15(bytes15 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); - } - - function logBytes16(bytes16 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); - } - - function logBytes17(bytes17 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); - } - - function logBytes18(bytes18 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); - } - - function logBytes19(bytes19 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); - } - - function logBytes20(bytes20 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); - } - - function logBytes21(bytes21 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); - } - - function logBytes22(bytes22 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); - } - - function logBytes23(bytes23 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); - } - - function logBytes24(bytes24 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); - } - - function logBytes25(bytes25 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); - } - - function logBytes26(bytes26 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); - } - - function logBytes27(bytes27 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); - } - - function logBytes28(bytes28 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); - } - - function logBytes29(bytes29 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); - } - - function logBytes30(bytes30 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); - } - - function logBytes31(bytes31 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); - } - - function logBytes32(bytes32 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); - } - - function log(uint p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); - } - - function log(string memory p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); - } - - function log(bool p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); - } - - function log(address p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); - } - - function log(uint p0, uint p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1)); - } - - function log(uint p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1)); - } - - function log(uint p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1)); - } - - function log(uint p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1)); - } - - function log(string memory p0, uint p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1)); - } - - function log(string memory p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); - } - - function log(string memory p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); - } - - function log(string memory p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); - } - - function log(bool p0, uint p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1)); - } - - function log(bool p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); - } - - function log(bool p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); - } - - function log(bool p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); - } - - function log(address p0, uint p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1)); - } - - function log(address p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); - } - - function log(address p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); - } - - function log(address p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); - } - - function log(uint p0, uint p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); - } - - function log(uint p0, uint p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); - } - - function log(uint p0, uint p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); - } - - function log(uint p0, uint p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); - } - - function log(uint p0, string memory p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); - } - - function log(uint p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); - } - - function log(uint p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); - } - - function log(uint p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); - } - - function log(uint p0, bool p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); - } - - function log(uint p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); - } - - function log(uint p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); - } - - function log(uint p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); - } - - function log(uint p0, address p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); - } - - function log(uint p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); - } - - function log(uint p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); - } - - function log(uint p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); - } - - function log(string memory p0, uint p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); - } - - function log(string memory p0, uint p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); - } - - function log(string memory p0, uint p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); - } - - function log(string memory p0, uint p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); - } - - function log(string memory p0, address p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); - } - - function log(string memory p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); - } - - function log(string memory p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); - } - - function log(string memory p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); - } - - function log(bool p0, uint p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); - } - - function log(bool p0, uint p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); - } - - function log(bool p0, uint p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); - } - - function log(bool p0, uint p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); - } - - function log(bool p0, bool p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); - } - - function log(bool p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); - } - - function log(bool p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); - } - - function log(bool p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); - } - - function log(bool p0, address p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); - } - - function log(bool p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); - } - - function log(bool p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); - } - - function log(bool p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); - } - - function log(address p0, uint p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); - } - - function log(address p0, uint p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); - } - - function log(address p0, uint p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); - } - - function log(address p0, uint p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); - } - - function log(address p0, string memory p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); - } - - function log(address p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); - } - - function log(address p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); - } - - function log(address p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); - } - - function log(address p0, bool p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); - } - - function log(address p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); - } - - function log(address p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); - } - - function log(address p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); - } - - function log(address p0, address p1, uint p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); - } - - function log(address p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); - } - - function log(address p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); - } - - function log(address p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); - } - - function log(uint p0, uint p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, uint p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); - } - - function log(uint p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, uint p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); - } - -} \ No newline at end of file diff --git a/contracts/lib/forge-std/src/console2.sol b/contracts/lib/forge-std/src/console2.sol deleted file mode 100644 index 8596233d3c..0000000000 --- a/contracts/lib/forge-std/src/console2.sol +++ /dev/null @@ -1,1546 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.4.22 <0.9.0; - -/// @dev The original console.sol uses `int` and `uint` for computing function selectors, but it should -/// use `int256` and `uint256`. This modified version fixes that. This version is recommended -/// over `console.sol` if you don't need compatibility with Hardhat as the logs will show up in -/// forge stack traces. If you do need compatibility with Hardhat, you must use `console.sol`. -/// Reference: https://github.com/NomicFoundation/hardhat/issues/2178 -library console2 { - address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); - - function _sendLogPayload(bytes memory payload) private view { - uint256 payloadLength = payload.length; - address consoleAddress = CONSOLE_ADDRESS; - /// @solidity memory-safe-assembly - assembly { - let payloadStart := add(payload, 32) - let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) - } - } - - function log() internal view { - _sendLogPayload(abi.encodeWithSignature("log()")); - } - - function logInt(int256 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(int256)", p0)); - } - - function logUint(uint256 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256)", p0)); - } - - function logString(string memory p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); - } - - function logBool(bool p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); - } - - function logAddress(address p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); - } - - function logBytes(bytes memory p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); - } - - function logBytes1(bytes1 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); - } - - function logBytes2(bytes2 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); - } - - function logBytes3(bytes3 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); - } - - function logBytes4(bytes4 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); - } - - function logBytes5(bytes5 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); - } - - function logBytes6(bytes6 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); - } - - function logBytes7(bytes7 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); - } - - function logBytes8(bytes8 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); - } - - function logBytes9(bytes9 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); - } - - function logBytes10(bytes10 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); - } - - function logBytes11(bytes11 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); - } - - function logBytes12(bytes12 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); - } - - function logBytes13(bytes13 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); - } - - function logBytes14(bytes14 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); - } - - function logBytes15(bytes15 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); - } - - function logBytes16(bytes16 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); - } - - function logBytes17(bytes17 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); - } - - function logBytes18(bytes18 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); - } - - function logBytes19(bytes19 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); - } - - function logBytes20(bytes20 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); - } - - function logBytes21(bytes21 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); - } - - function logBytes22(bytes22 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); - } - - function logBytes23(bytes23 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); - } - - function logBytes24(bytes24 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); - } - - function logBytes25(bytes25 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); - } - - function logBytes26(bytes26 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); - } - - function logBytes27(bytes27 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); - } - - function logBytes28(bytes28 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); - } - - function logBytes29(bytes29 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); - } - - function logBytes30(bytes30 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); - } - - function logBytes31(bytes31 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); - } - - function logBytes32(bytes32 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); - } - - function log(uint256 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256)", p0)); - } - - function log(int256 p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(int256)", p0)); - } - - function log(string memory p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); - } - - function log(bool p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); - } - - function log(address p0) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); - } - - function log(uint256 p0, uint256 p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256)", p0, p1)); - } - - function log(uint256 p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string)", p0, p1)); - } - - function log(uint256 p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool)", p0, p1)); - } - - function log(uint256 p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address)", p0, p1)); - } - - function log(string memory p0, uint256 p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256)", p0, p1)); - } - - function log(string memory p0, int256 p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,int256)", p0, p1)); - } - - function log(string memory p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); - } - - function log(string memory p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); - } - - function log(string memory p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); - } - - function log(bool p0, uint256 p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256)", p0, p1)); - } - - function log(bool p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); - } - - function log(bool p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); - } - - function log(bool p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); - } - - function log(address p0, uint256 p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256)", p0, p1)); - } - - function log(address p0, string memory p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); - } - - function log(address p0, bool p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); - } - - function log(address p0, address p1) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); - } - - function log(uint256 p0, uint256 p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256)", p0, p1, p2)); - } - - function log(uint256 p0, uint256 p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string)", p0, p1, p2)); - } - - function log(uint256 p0, uint256 p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool)", p0, p1, p2)); - } - - function log(uint256 p0, uint256 p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address)", p0, p1, p2)); - } - - function log(uint256 p0, string memory p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256)", p0, p1, p2)); - } - - function log(uint256 p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string)", p0, p1, p2)); - } - - function log(uint256 p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool)", p0, p1, p2)); - } - - function log(uint256 p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address)", p0, p1, p2)); - } - - function log(uint256 p0, bool p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256)", p0, p1, p2)); - } - - function log(uint256 p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string)", p0, p1, p2)); - } - - function log(uint256 p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool)", p0, p1, p2)); - } - - function log(uint256 p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address)", p0, p1, p2)); - } - - function log(uint256 p0, address p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256)", p0, p1, p2)); - } - - function log(uint256 p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string)", p0, p1, p2)); - } - - function log(uint256 p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool)", p0, p1, p2)); - } - - function log(uint256 p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address)", p0, p1, p2)); - } - - function log(string memory p0, uint256 p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256)", p0, p1, p2)); - } - - function log(string memory p0, uint256 p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string)", p0, p1, p2)); - } - - function log(string memory p0, uint256 p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool)", p0, p1, p2)); - } - - function log(string memory p0, uint256 p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); - } - - function log(string memory p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); - } - - function log(string memory p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); - } - - function log(string memory p0, address p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256)", p0, p1, p2)); - } - - function log(string memory p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); - } - - function log(string memory p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); - } - - function log(string memory p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); - } - - function log(bool p0, uint256 p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256)", p0, p1, p2)); - } - - function log(bool p0, uint256 p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string)", p0, p1, p2)); - } - - function log(bool p0, uint256 p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool)", p0, p1, p2)); - } - - function log(bool p0, uint256 p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); - } - - function log(bool p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); - } - - function log(bool p0, bool p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256)", p0, p1, p2)); - } - - function log(bool p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); - } - - function log(bool p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); - } - - function log(bool p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); - } - - function log(bool p0, address p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256)", p0, p1, p2)); - } - - function log(bool p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); - } - - function log(bool p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); - } - - function log(bool p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); - } - - function log(address p0, uint256 p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256)", p0, p1, p2)); - } - - function log(address p0, uint256 p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string)", p0, p1, p2)); - } - - function log(address p0, uint256 p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool)", p0, p1, p2)); - } - - function log(address p0, uint256 p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address)", p0, p1, p2)); - } - - function log(address p0, string memory p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256)", p0, p1, p2)); - } - - function log(address p0, string memory p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); - } - - function log(address p0, string memory p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); - } - - function log(address p0, string memory p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); - } - - function log(address p0, bool p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256)", p0, p1, p2)); - } - - function log(address p0, bool p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); - } - - function log(address p0, bool p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); - } - - function log(address p0, bool p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); - } - - function log(address p0, address p1, uint256 p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256)", p0, p1, p2)); - } - - function log(address p0, address p1, string memory p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); - } - - function log(address p0, address p1, bool p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); - } - - function log(address p0, address p1, address p2) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); - } - - function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, uint256 p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,address)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,uint256)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,string)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,bool)", p0, p1, p2, p3)); - } - - function log(uint256 p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, uint256 p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint256)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); - } - - function log(string memory p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, uint256 p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint256)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); - } - - function log(bool p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, uint256 p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, string memory p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, bool p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint256 p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint256 p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint256 p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, uint256 p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, string memory p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, bool p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, uint256 p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint256)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, string memory p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, bool p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); - } - - function log(address p0, address p1, address p2, address p3) internal view { - _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); - } - -} \ No newline at end of file diff --git a/contracts/lib/forge-std/src/interfaces/IERC1155.sol b/contracts/lib/forge-std/src/interfaces/IERC1155.sol deleted file mode 100644 index f7dd2b4106..0000000000 --- a/contracts/lib/forge-std/src/interfaces/IERC1155.sol +++ /dev/null @@ -1,105 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2; - -import "./IERC165.sol"; - -/// @title ERC-1155 Multi Token Standard -/// @dev See https://eips.ethereum.org/EIPS/eip-1155 -/// Note: The ERC-165 identifier for this interface is 0xd9b67a26. -interface IERC1155 is IERC165 { - /// @dev - /// - Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard). - /// - The `_operator` argument MUST be the address of an account/contract that is approved to make the transfer (SHOULD be msg.sender). - /// - The `_from` argument MUST be the address of the holder whose balance is decreased. - /// - The `_to` argument MUST be the address of the recipient whose balance is increased. - /// - The `_id` argument MUST be the token type being transferred. - /// - The `_value` argument MUST be the number of tokens the holder balance is decreased by and match what the recipient balance is increased by. - /// - When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address). - /// - When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address). - event TransferSingle( - address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value - ); - - /// @dev - /// - Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard). - /// - The `_operator` argument MUST be the address of an account/contract that is approved to make the transfer (SHOULD be msg.sender). - /// - The `_from` argument MUST be the address of the holder whose balance is decreased. - /// - The `_to` argument MUST be the address of the recipient whose balance is increased. - /// - The `_ids` argument MUST be the list of tokens being transferred. - /// - The `_values` argument MUST be the list of number of tokens (matching the list and order of tokens specified in _ids) the holder balance is decreased by and match what the recipient balance is increased by. - /// - When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address). - /// - When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address). - event TransferBatch( - address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values - ); - - /// @dev MUST emit when approval for a second party/operator address to manage all tokens for an owner address is enabled or disabled (absence of an event assumes disabled). - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); - - /// @dev MUST emit when the URI is updated for a token ID. URIs are defined in RFC 3986. - /// The URI MUST point to a JSON file that conforms to the "ERC-1155 Metadata URI JSON Schema". - event URI(string _value, uint256 indexed _id); - - /// @notice Transfers `_value` amount of an `_id` from the `_from` address to the `_to` address specified (with safety call). - /// @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). - /// - MUST revert if `_to` is the zero address. - /// - MUST revert if balance of holder for token `_id` is lower than the `_value` sent. - /// - MUST revert on any other error. - /// - MUST emit the `TransferSingle` event to reflect the balance change (see "Safe Transfer Rules" section of the standard). - /// - After the above conditions are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call `onERC1155Received` on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). - /// @param _from Source address - /// @param _to Target address - /// @param _id ID of the token type - /// @param _value Transfer amount - /// @param _data Additional data with no specified format, MUST be sent unaltered in call to `onERC1155Received` on `_to` - function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external; - - /// @notice Transfers `_values` amount(s) of `_ids` from the `_from` address to the `_to` address specified (with safety call). - /// @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). - /// - MUST revert if `_to` is the zero address. - /// - MUST revert if length of `_ids` is not the same as length of `_values`. - /// - MUST revert if any of the balance(s) of the holder(s) for token(s) in `_ids` is lower than the respective amount(s) in `_values` sent to the recipient. - /// - MUST revert on any other error. - /// - MUST emit `TransferSingle` or `TransferBatch` event(s) such that all the balance changes are reflected (see "Safe Transfer Rules" section of the standard). - /// - Balance changes and events MUST follow the ordering of the arrays (_ids[0]/_values[0] before _ids[1]/_values[1], etc). - /// - After the above conditions for the transfer(s) in the batch are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call the relevant `ERC1155TokenReceiver` hook(s) on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). - /// @param _from Source address - /// @param _to Target address - /// @param _ids IDs of each token type (order and length must match _values array) - /// @param _values Transfer amounts per token type (order and length must match _ids array) - /// @param _data Additional data with no specified format, MUST be sent unaltered in call to the `ERC1155TokenReceiver` hook(s) on `_to` - function safeBatchTransferFrom( - address _from, - address _to, - uint256[] calldata _ids, - uint256[] calldata _values, - bytes calldata _data - ) external; - - /// @notice Get the balance of an account's tokens. - /// @param _owner The address of the token holder - /// @param _id ID of the token - /// @return The _owner's balance of the token type requested - function balanceOf(address _owner, uint256 _id) external view returns (uint256); - - /// @notice Get the balance of multiple account/token pairs - /// @param _owners The addresses of the token holders - /// @param _ids ID of the tokens - /// @return The _owner's balance of the token types requested (i.e. balance for each (owner, id) pair) - function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) - external - view - returns (uint256[] memory); - - /// @notice Enable or disable approval for a third party ("operator") to manage all of the caller's tokens. - /// @dev MUST emit the ApprovalForAll event on success. - /// @param _operator Address to add to the set of authorized operators - /// @param _approved True if the operator is approved, false to revoke approval - function setApprovalForAll(address _operator, bool _approved) external; - - /// @notice Queries the approval status of an operator for a given owner. - /// @param _owner The owner of the tokens - /// @param _operator Address of authorized operator - /// @return True if the operator is approved, false if not - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -} diff --git a/contracts/lib/forge-std/src/interfaces/IERC165.sol b/contracts/lib/forge-std/src/interfaces/IERC165.sol deleted file mode 100644 index 9af4bf800f..0000000000 --- a/contracts/lib/forge-std/src/interfaces/IERC165.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2; - -interface IERC165 { - /// @notice Query if a contract implements an interface - /// @param interfaceID The interface identifier, as specified in ERC-165 - /// @dev Interface identification is specified in ERC-165. This function - /// uses less than 30,000 gas. - /// @return `true` if the contract implements `interfaceID` and - /// `interfaceID` is not 0xffffffff, `false` otherwise - function supportsInterface(bytes4 interfaceID) external view returns (bool); -} diff --git a/contracts/lib/forge-std/src/interfaces/IERC20.sol b/contracts/lib/forge-std/src/interfaces/IERC20.sol deleted file mode 100644 index ba40806c3b..0000000000 --- a/contracts/lib/forge-std/src/interfaces/IERC20.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2; - -/// @dev Interface of the ERC20 standard as defined in the EIP. -/// @dev This includes the optional name, symbol, and decimals metadata. -interface IERC20 { - /// @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`). - event Transfer(address indexed from, address indexed to, uint256 value); - - /// @dev Emitted when the allowance of a `spender` for an `owner` is set, where `value` - /// is the new allowance. - event Approval(address indexed owner, address indexed spender, uint256 value); - - /// @notice Returns the amount of tokens in existence. - function totalSupply() external view returns (uint256); - - /// @notice Returns the amount of tokens owned by `account`. - function balanceOf(address account) external view returns (uint256); - - /// @notice Moves `amount` tokens from the caller's account to `to`. - function transfer(address to, uint256 amount) external returns (bool); - - /// @notice Returns the remaining number of tokens that `spender` is allowed - /// to spend on behalf of `owner` - function allowance(address owner, address spender) external view returns (uint256); - - /// @notice Sets `amount` as the allowance of `spender` over the caller's tokens. - /// @dev Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - function approve(address spender, uint256 amount) external returns (bool); - - /// @notice Moves `amount` tokens from `from` to `to` using the allowance mechanism. - /// `amount` is then deducted from the caller's allowance. - function transferFrom(address from, address to, uint256 amount) external returns (bool); - - /// @notice Returns the name of the token. - function name() external view returns (string memory); - - /// @notice Returns the symbol of the token. - function symbol() external view returns (string memory); - - /// @notice Returns the decimals places of the token. - function decimals() external view returns (uint8); -} diff --git a/contracts/lib/forge-std/src/interfaces/IERC4626.sol b/contracts/lib/forge-std/src/interfaces/IERC4626.sol deleted file mode 100644 index bfe3a1155e..0000000000 --- a/contracts/lib/forge-std/src/interfaces/IERC4626.sol +++ /dev/null @@ -1,190 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2; - -import "./IERC20.sol"; - -/// @dev Interface of the ERC4626 "Tokenized Vault Standard", as defined in -/// https://eips.ethereum.org/EIPS/eip-4626 -interface IERC4626 is IERC20 { - event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares); - - event Withdraw( - address indexed sender, address indexed receiver, address indexed owner, uint256 assets, uint256 shares - ); - - /// @notice Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing. - /// @dev - /// - MUST be an ERC-20 token contract. - /// - MUST NOT revert. - function asset() external view returns (address assetTokenAddress); - - /// @notice Returns the total amount of the underlying asset that is “managed” by Vault. - /// @dev - /// - SHOULD include any compounding that occurs from yield. - /// - MUST be inclusive of any fees that are charged against assets in the Vault. - /// - MUST NOT revert. - function totalAssets() external view returns (uint256 totalManagedAssets); - - /// @notice Returns the amount of shares that the Vault would exchange for the amount of assets provided, in an ideal - /// scenario where all the conditions are met. - /// @dev - /// - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - /// - MUST NOT show any variations depending on the caller. - /// - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - /// - MUST NOT revert. - /// - /// NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the - /// “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and - /// from. - function convertToShares(uint256 assets) external view returns (uint256 shares); - - /// @notice Returns the amount of assets that the Vault would exchange for the amount of shares provided, in an ideal - /// scenario where all the conditions are met. - /// @dev - /// - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - /// - MUST NOT show any variations depending on the caller. - /// - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - /// - MUST NOT revert. - /// - /// NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the - /// “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and - /// from. - function convertToAssets(uint256 shares) external view returns (uint256 assets); - - /// @notice Returns the maximum amount of the underlying asset that can be deposited into the Vault for the receiver, - /// through a deposit call. - /// @dev - /// - MUST return a limited value if receiver is subject to some deposit limit. - /// - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of assets that may be deposited. - /// - MUST NOT revert. - function maxDeposit(address receiver) external view returns (uint256 maxAssets); - - /// @notice Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given - /// current on-chain conditions. - /// @dev - /// - MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit - /// call in the same transaction. I.e. deposit should return the same or more shares as previewDeposit if called - /// in the same transaction. - /// - MUST NOT account for deposit limits like those returned from maxDeposit and should always act as though the - /// deposit would be accepted, regardless if the user has enough tokens approved, etc. - /// - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - /// - MUST NOT revert. - /// - /// NOTE: any unfavorable discrepancy between convertToShares and previewDeposit SHOULD be considered slippage in - /// share price or some other type of condition, meaning the depositor will lose assets by depositing. - function previewDeposit(uint256 assets) external view returns (uint256 shares); - - /// @notice Mints shares Vault shares to receiver by depositing exactly amount of underlying tokens. - /// @dev - /// - MUST emit the Deposit event. - /// - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the - /// deposit execution, and are accounted for during deposit. - /// - MUST revert if all of assets cannot be deposited (due to deposit limit being reached, slippage, the user not - /// approving enough underlying tokens to the Vault contract, etc). - /// - /// NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token. - function deposit(uint256 assets, address receiver) external returns (uint256 shares); - - /// @notice Returns the maximum amount of the Vault shares that can be minted for the receiver, through a mint call. - /// @dev - /// - MUST return a limited value if receiver is subject to some mint limit. - /// - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of shares that may be minted. - /// - MUST NOT revert. - function maxMint(address receiver) external view returns (uint256 maxShares); - - /// @notice Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given - /// current on-chain conditions. - /// @dev - /// - MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call - /// in the same transaction. I.e. mint should return the same or fewer assets as previewMint if called in the - /// same transaction. - /// - MUST NOT account for mint limits like those returned from maxMint and should always act as though the mint - /// would be accepted, regardless if the user has enough tokens approved, etc. - /// - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - /// - MUST NOT revert. - /// - /// NOTE: any unfavorable discrepancy between convertToAssets and previewMint SHOULD be considered slippage in - /// share price or some other type of condition, meaning the depositor will lose assets by minting. - function previewMint(uint256 shares) external view returns (uint256 assets); - - /// @notice Mints exactly shares Vault shares to receiver by depositing amount of underlying tokens. - /// @dev - /// - MUST emit the Deposit event. - /// - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the mint - /// execution, and are accounted for during mint. - /// - MUST revert if all of shares cannot be minted (due to deposit limit being reached, slippage, the user not - /// approving enough underlying tokens to the Vault contract, etc). - /// - /// NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token. - function mint(uint256 shares, address receiver) external returns (uint256 assets); - - /// @notice Returns the maximum amount of the underlying asset that can be withdrawn from the owner balance in the - /// Vault, through a withdraw call. - /// @dev - /// - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - /// - MUST NOT revert. - function maxWithdraw(address owner) external view returns (uint256 maxAssets); - - /// @notice Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block, - /// given current on-chain conditions. - /// @dev - /// - MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw - /// call in the same transaction. I.e. withdraw should return the same or fewer shares as previewWithdraw if - /// called - /// in the same transaction. - /// - MUST NOT account for withdrawal limits like those returned from maxWithdraw and should always act as though - /// the withdrawal would be accepted, regardless if the user has enough shares, etc. - /// - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - /// - MUST NOT revert. - /// - /// NOTE: any unfavorable discrepancy between convertToShares and previewWithdraw SHOULD be considered slippage in - /// share price or some other type of condition, meaning the depositor will lose assets by depositing. - function previewWithdraw(uint256 assets) external view returns (uint256 shares); - - /// @notice Burns shares from owner and sends exactly assets of underlying tokens to receiver. - /// @dev - /// - MUST emit the Withdraw event. - /// - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the - /// withdraw execution, and are accounted for during withdraw. - /// - MUST revert if all of assets cannot be withdrawn (due to withdrawal limit being reached, slippage, the owner - /// not having enough shares, etc). - /// - /// Note that some implementations will require pre-requesting to the Vault before a withdrawal may be performed. - /// Those methods should be performed separately. - function withdraw(uint256 assets, address receiver, address owner) external returns (uint256 shares); - - /// @notice Returns the maximum amount of Vault shares that can be redeemed from the owner balance in the Vault, - /// through a redeem call. - /// @dev - /// - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - /// - MUST return balanceOf(owner) if owner is not subject to any withdrawal limit or timelock. - /// - MUST NOT revert. - function maxRedeem(address owner) external view returns (uint256 maxShares); - - /// @notice Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block, - /// given current on-chain conditions. - /// @dev - /// - MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call - /// in the same transaction. I.e. redeem should return the same or more assets as previewRedeem if called in the - /// same transaction. - /// - MUST NOT account for redemption limits like those returned from maxRedeem and should always act as though the - /// redemption would be accepted, regardless if the user has enough shares, etc. - /// - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - /// - MUST NOT revert. - /// - /// NOTE: any unfavorable discrepancy between convertToAssets and previewRedeem SHOULD be considered slippage in - /// share price or some other type of condition, meaning the depositor will lose assets by redeeming. - function previewRedeem(uint256 shares) external view returns (uint256 assets); - - /// @notice Burns exactly shares from owner and sends assets of underlying tokens to receiver. - /// @dev - /// - MUST emit the Withdraw event. - /// - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the - /// redeem execution, and are accounted for during redeem. - /// - MUST revert if all of shares cannot be redeemed (due to withdrawal limit being reached, slippage, the owner - /// not having enough shares, etc). - /// - /// NOTE: some implementations will require pre-requesting to the Vault before a withdrawal may be performed. - /// Those methods should be performed separately. - function redeem(uint256 shares, address receiver, address owner) external returns (uint256 assets); -} diff --git a/contracts/lib/forge-std/src/interfaces/IERC721.sol b/contracts/lib/forge-std/src/interfaces/IERC721.sol deleted file mode 100644 index 0a16f45cc5..0000000000 --- a/contracts/lib/forge-std/src/interfaces/IERC721.sol +++ /dev/null @@ -1,164 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2; - -import "./IERC165.sol"; - -/// @title ERC-721 Non-Fungible Token Standard -/// @dev See https://eips.ethereum.org/EIPS/eip-721 -/// Note: the ERC-165 identifier for this interface is 0x80ac58cd. -interface IERC721 is IERC165 { - /// @dev This emits when ownership of any NFT changes by any mechanism. - /// This event emits when NFTs are created (`from` == 0) and destroyed - /// (`to` == 0). Exception: during contract creation, any number of NFTs - /// may be created and assigned without emitting Transfer. At the time of - /// any transfer, the approved address for that NFT (if any) is reset to none. - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - - /// @dev This emits when the approved address for an NFT is changed or - /// reaffirmed. The zero address indicates there is no approved address. - /// When a Transfer event emits, this also indicates that the approved - /// address for that NFT (if any) is reset to none. - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - - /// @dev This emits when an operator is enabled or disabled for an owner. - /// The operator can manage all NFTs of the owner. - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); - - /// @notice Count all NFTs assigned to an owner - /// @dev NFTs assigned to the zero address are considered invalid, and this - /// function throws for queries about the zero address. - /// @param _owner An address for whom to query the balance - /// @return The number of NFTs owned by `_owner`, possibly zero - function balanceOf(address _owner) external view returns (uint256); - - /// @notice Find the owner of an NFT - /// @dev NFTs assigned to zero address are considered invalid, and queries - /// about them do throw. - /// @param _tokenId The identifier for an NFT - /// @return The address of the owner of the NFT - function ownerOf(uint256 _tokenId) external view returns (address); - - /// @notice Transfers the ownership of an NFT from one address to another address - /// @dev Throws unless `msg.sender` is the current owner, an authorized - /// operator, or the approved address for this NFT. Throws if `_from` is - /// not the current owner. Throws if `_to` is the zero address. Throws if - /// `_tokenId` is not a valid NFT. When transfer is complete, this function - /// checks if `_to` is a smart contract (code size > 0). If so, it calls - /// `onERC721Received` on `_to` and throws if the return value is not - /// `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`. - /// @param _from The current owner of the NFT - /// @param _to The new owner - /// @param _tokenId The NFT to transfer - /// @param data Additional data with no specified format, sent in call to `_to` - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external payable; - - /// @notice Transfers the ownership of an NFT from one address to another address - /// @dev This works identically to the other function with an extra data parameter, - /// except this function just sets data to "". - /// @param _from The current owner of the NFT - /// @param _to The new owner - /// @param _tokenId The NFT to transfer - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - - /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE - /// TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE - /// THEY MAY BE PERMANENTLY LOST - /// @dev Throws unless `msg.sender` is the current owner, an authorized - /// operator, or the approved address for this NFT. Throws if `_from` is - /// not the current owner. Throws if `_to` is the zero address. Throws if - /// `_tokenId` is not a valid NFT. - /// @param _from The current owner of the NFT - /// @param _to The new owner - /// @param _tokenId The NFT to transfer - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - - /// @notice Change or reaffirm the approved address for an NFT - /// @dev The zero address indicates there is no approved address. - /// Throws unless `msg.sender` is the current NFT owner, or an authorized - /// operator of the current owner. - /// @param _approved The new approved NFT controller - /// @param _tokenId The NFT to approve - function approve(address _approved, uint256 _tokenId) external payable; - - /// @notice Enable or disable approval for a third party ("operator") to manage - /// all of `msg.sender`'s assets - /// @dev Emits the ApprovalForAll event. The contract MUST allow - /// multiple operators per owner. - /// @param _operator Address to add to the set of authorized operators - /// @param _approved True if the operator is approved, false to revoke approval - function setApprovalForAll(address _operator, bool _approved) external; - - /// @notice Get the approved address for a single NFT - /// @dev Throws if `_tokenId` is not a valid NFT. - /// @param _tokenId The NFT to find the approved address for - /// @return The approved address for this NFT, or the zero address if there is none - function getApproved(uint256 _tokenId) external view returns (address); - - /// @notice Query if an address is an authorized operator for another address - /// @param _owner The address that owns the NFTs - /// @param _operator The address that acts on behalf of the owner - /// @return True if `_operator` is an approved operator for `_owner`, false otherwise - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -} - -/// @dev Note: the ERC-165 identifier for this interface is 0x150b7a02. -interface IERC721TokenReceiver { - /// @notice Handle the receipt of an NFT - /// @dev The ERC721 smart contract calls this function on the recipient - /// after a `transfer`. This function MAY throw to revert and reject the - /// transfer. Return of other than the magic value MUST result in the - /// transaction being reverted. - /// Note: the contract address is always the message sender. - /// @param _operator The address which called `safeTransferFrom` function - /// @param _from The address which previously owned the token - /// @param _tokenId The NFT identifier which is being transferred - /// @param _data Additional data with no specified format - /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` - /// unless throwing - function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes calldata _data) - external - returns (bytes4); -} - -/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension -/// @dev See https://eips.ethereum.org/EIPS/eip-721 -/// Note: the ERC-165 identifier for this interface is 0x5b5e139f. -interface IERC721Metadata is IERC721 { - /// @notice A descriptive name for a collection of NFTs in this contract - function name() external view returns (string memory _name); - - /// @notice An abbreviated name for NFTs in this contract - function symbol() external view returns (string memory _symbol); - - /// @notice A distinct Uniform Resource Identifier (URI) for a given asset. - /// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC - /// 3986. The URI may point to a JSON file that conforms to the "ERC721 - /// Metadata JSON Schema". - function tokenURI(uint256 _tokenId) external view returns (string memory); -} - -/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension -/// @dev See https://eips.ethereum.org/EIPS/eip-721 -/// Note: the ERC-165 identifier for this interface is 0x780e9d63. -interface IERC721Enumerable is IERC721 { - /// @notice Count NFTs tracked by this contract - /// @return A count of valid NFTs tracked by this contract, where each one of - /// them has an assigned and queryable owner not equal to the zero address - function totalSupply() external view returns (uint256); - - /// @notice Enumerate valid NFTs - /// @dev Throws if `_index` >= `totalSupply()`. - /// @param _index A counter less than `totalSupply()` - /// @return The token identifier for the `_index`th NFT, - /// (sort order not specified) - function tokenByIndex(uint256 _index) external view returns (uint256); - - /// @notice Enumerate NFTs assigned to an owner - /// @dev Throws if `_index` >= `balanceOf(_owner)` or if - /// `_owner` is the zero address, representing invalid NFTs. - /// @param _owner An address where we are interested in NFTs owned by them - /// @param _index A counter less than `balanceOf(_owner)` - /// @return The token identifier for the `_index`th NFT assigned to `_owner`, - /// (sort order not specified) - function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256); -} diff --git a/contracts/lib/forge-std/src/interfaces/IMulticall3.sol b/contracts/lib/forge-std/src/interfaces/IMulticall3.sol deleted file mode 100644 index 0d031b71dc..0000000000 --- a/contracts/lib/forge-std/src/interfaces/IMulticall3.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -interface IMulticall3 { - struct Call { - address target; - bytes callData; - } - - struct Call3 { - address target; - bool allowFailure; - bytes callData; - } - - struct Call3Value { - address target; - bool allowFailure; - uint256 value; - bytes callData; - } - - struct Result { - bool success; - bytes returnData; - } - - function aggregate(Call[] calldata calls) - external - payable - returns (uint256 blockNumber, bytes[] memory returnData); - - function aggregate3(Call3[] calldata calls) external payable returns (Result[] memory returnData); - - function aggregate3Value(Call3Value[] calldata calls) external payable returns (Result[] memory returnData); - - function blockAndAggregate(Call[] calldata calls) - external - payable - returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData); - - function getBasefee() external view returns (uint256 basefee); - - function getBlockHash(uint256 blockNumber) external view returns (bytes32 blockHash); - - function getBlockNumber() external view returns (uint256 blockNumber); - - function getChainId() external view returns (uint256 chainid); - - function getCurrentBlockCoinbase() external view returns (address coinbase); - - function getCurrentBlockDifficulty() external view returns (uint256 difficulty); - - function getCurrentBlockGasLimit() external view returns (uint256 gaslimit); - - function getCurrentBlockTimestamp() external view returns (uint256 timestamp); - - function getEthBalance(address addr) external view returns (uint256 balance); - - function getLastBlockHash() external view returns (bytes32 blockHash); - - function tryAggregate(bool requireSuccess, Call[] calldata calls) - external - payable - returns (Result[] memory returnData); - - function tryBlockAndAggregate(bool requireSuccess, Call[] calldata calls) - external - payable - returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData); -} diff --git a/contracts/lib/forge-std/test/StdAssertions.t.sol b/contracts/lib/forge-std/test/StdAssertions.t.sol deleted file mode 100644 index fcc346be66..0000000000 --- a/contracts/lib/forge-std/test/StdAssertions.t.sol +++ /dev/null @@ -1,999 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.7.0 <0.9.0; - -import "../src/Test.sol"; - -contract StdAssertionsTest is Test { - string constant CUSTOM_ERROR = "guh!"; - - bool constant EXPECT_PASS = false; - bool constant EXPECT_FAIL = true; - - bool constant SHOULD_REVERT = true; - bool constant SHOULD_RETURN = false; - - bool constant STRICT_REVERT_DATA = true; - bool constant NON_STRICT_REVERT_DATA = false; - - TestTest t = new TestTest(); - - /*////////////////////////////////////////////////////////////////////////// - FAIL(STRING) - //////////////////////////////////////////////////////////////////////////*/ - - function testShouldFail() external { - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._fail(CUSTOM_ERROR); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_FALSE - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertFalse_Pass() external { - t._assertFalse(false, EXPECT_PASS); - } - - function testAssertFalse_Fail() external { - vm.expectEmit(false, false, false, true); - emit log("Error: Assertion Failed"); - t._assertFalse(true, EXPECT_FAIL); - } - - function testAssertFalse_Err_Pass() external { - t._assertFalse(false, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertFalse_Err_Fail() external { - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertFalse(true, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_EQ(BOOL) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertEq_Bool_Pass(bool a) external { - t._assertEq(a, a, EXPECT_PASS); - } - - function testAssertEq_Bool_Fail(bool a, bool b) external { - vm.assume(a != b); - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [bool]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_BoolErr_Pass(bool a) external { - t._assertEq(a, a, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertEq_BoolErr_Fail(bool a, bool b) external { - vm.assume(a != b); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_EQ(BYTES) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertEq_Bytes_Pass(bytes calldata a) external { - t._assertEq(a, a, EXPECT_PASS); - } - - function testAssertEq_Bytes_Fail(bytes calldata a, bytes calldata b) external { - vm.assume(keccak256(a) != keccak256(b)); - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [bytes]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_BytesErr_Pass(bytes calldata a) external { - t._assertEq(a, a, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertEq_BytesErr_Fail(bytes calldata a, bytes calldata b) external { - vm.assume(keccak256(a) != keccak256(b)); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_EQ(ARRAY) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertEq_UintArr_Pass(uint256 e0, uint256 e1, uint256 e2) public { - uint256[] memory a = new uint256[](3); - a[0] = e0; - a[1] = e1; - a[2] = e2; - uint256[] memory b = new uint256[](3); - b[0] = e0; - b[1] = e1; - b[2] = e2; - - t._assertEq(a, b, EXPECT_PASS); - } - - function testAssertEq_IntArr_Pass(int256 e0, int256 e1, int256 e2) public { - int256[] memory a = new int256[](3); - a[0] = e0; - a[1] = e1; - a[2] = e2; - int256[] memory b = new int256[](3); - b[0] = e0; - b[1] = e1; - b[2] = e2; - - t._assertEq(a, b, EXPECT_PASS); - } - - function testAssertEq_AddressArr_Pass(address e0, address e1, address e2) public { - address[] memory a = new address[](3); - a[0] = e0; - a[1] = e1; - a[2] = e2; - address[] memory b = new address[](3); - b[0] = e0; - b[1] = e1; - b[2] = e2; - - t._assertEq(a, b, EXPECT_PASS); - } - - function testAssertEq_UintArr_FailEl(uint256 e1) public { - vm.assume(e1 != 0); - uint256[] memory a = new uint256[](3); - uint256[] memory b = new uint256[](3); - b[1] = e1; - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [uint[]]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_IntArr_FailEl(int256 e1) public { - vm.assume(e1 != 0); - int256[] memory a = new int256[](3); - int256[] memory b = new int256[](3); - b[1] = e1; - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [int[]]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_AddressArr_FailEl(address e1) public { - vm.assume(e1 != address(0)); - address[] memory a = new address[](3); - address[] memory b = new address[](3); - b[1] = e1; - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [address[]]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_UintArrErr_FailEl(uint256 e1) public { - vm.assume(e1 != 0); - uint256[] memory a = new uint256[](3); - uint256[] memory b = new uint256[](3); - b[1] = e1; - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [uint[]]"); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - function testAssertEq_IntArrErr_FailEl(int256 e1) public { - vm.assume(e1 != 0); - int256[] memory a = new int256[](3); - int256[] memory b = new int256[](3); - b[1] = e1; - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [int[]]"); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - function testAssertEq_AddressArrErr_FailEl(address e1) public { - vm.assume(e1 != address(0)); - address[] memory a = new address[](3); - address[] memory b = new address[](3); - b[1] = e1; - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [address[]]"); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - function testAssertEq_UintArr_FailLen(uint256 lenA, uint256 lenB) public { - vm.assume(lenA != lenB); - vm.assume(lenA <= 10000); - vm.assume(lenB <= 10000); - uint256[] memory a = new uint256[](lenA); - uint256[] memory b = new uint256[](lenB); - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [uint[]]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_IntArr_FailLen(uint256 lenA, uint256 lenB) public { - vm.assume(lenA != lenB); - vm.assume(lenA <= 10000); - vm.assume(lenB <= 10000); - int256[] memory a = new int256[](lenA); - int256[] memory b = new int256[](lenB); - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [int[]]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_AddressArr_FailLen(uint256 lenA, uint256 lenB) public { - vm.assume(lenA != lenB); - vm.assume(lenA <= 10000); - vm.assume(lenB <= 10000); - address[] memory a = new address[](lenA); - address[] memory b = new address[](lenB); - - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [address[]]"); - t._assertEq(a, b, EXPECT_FAIL); - } - - function testAssertEq_UintArrErr_FailLen(uint256 lenA, uint256 lenB) public { - vm.assume(lenA != lenB); - vm.assume(lenA <= 10000); - vm.assume(lenB <= 10000); - uint256[] memory a = new uint256[](lenA); - uint256[] memory b = new uint256[](lenB); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [uint[]]"); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - function testAssertEq_IntArrErr_FailLen(uint256 lenA, uint256 lenB) public { - vm.assume(lenA != lenB); - vm.assume(lenA <= 10000); - vm.assume(lenB <= 10000); - int256[] memory a = new int256[](lenA); - int256[] memory b = new int256[](lenB); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [int[]]"); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - function testAssertEq_AddressArrErr_FailLen(uint256 lenA, uint256 lenB) public { - vm.assume(lenA != lenB); - vm.assume(lenA <= 10000); - vm.assume(lenB <= 10000); - address[] memory a = new address[](lenA); - address[] memory b = new address[](lenB); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - vm.expectEmit(false, false, false, true); - emit log("Error: a == b not satisfied [address[]]"); - t._assertEq(a, b, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_EQ(UINT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertEqUint() public { - assertEqUint(uint8(1), uint128(1)); - assertEqUint(uint64(2), uint64(2)); - } - - function testFailAssertEqUint() public { - assertEqUint(uint64(1), uint96(2)); - assertEqUint(uint160(3), uint160(4)); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_ABS(UINT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqAbs_Uint_Pass(uint256 a, uint256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbs(a, b, maxDelta, EXPECT_PASS); - } - - function testAssertApproxEqAbs_Uint_Fail(uint256 a, uint256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [uint]"); - t._assertApproxEqAbs(a, b, maxDelta, EXPECT_FAIL); - } - - function testAssertApproxEqAbs_UintErr_Pass(uint256 a, uint256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbs(a, b, maxDelta, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqAbs_UintErr_Fail(uint256 a, uint256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqAbs(a, b, maxDelta, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_ABS_DECIMAL(UINT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqAbsDecimal_Uint_Pass(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals) - external - { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, EXPECT_PASS); - } - - function testAssertApproxEqAbsDecimal_Uint_Fail(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals) - external - { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [uint]"); - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, EXPECT_FAIL); - } - - function testAssertApproxEqAbsDecimal_UintErr_Pass(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals) - external - { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqAbsDecimal_UintErr_Fail(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals) - external - { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_ABS(INT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqAbs_Int_Pass(int256 a, int256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbs(a, b, maxDelta, EXPECT_PASS); - } - - function testAssertApproxEqAbs_Int_Fail(int256 a, int256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [int]"); - t._assertApproxEqAbs(a, b, maxDelta, EXPECT_FAIL); - } - - function testAssertApproxEqAbs_IntErr_Pass(int256 a, int256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbs(a, b, maxDelta, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqAbs_IntErr_Fail(int256 a, int256 b, uint256 maxDelta) external { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqAbs(a, b, maxDelta, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_ABS_DECIMAL(INT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqAbsDecimal_Int_Pass(int256 a, int256 b, uint256 maxDelta, uint256 decimals) external { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, EXPECT_PASS); - } - - function testAssertApproxEqAbsDecimal_Int_Fail(int256 a, int256 b, uint256 maxDelta, uint256 decimals) external { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [int]"); - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, EXPECT_FAIL); - } - - function testAssertApproxEqAbsDecimal_IntErr_Pass(int256 a, int256 b, uint256 maxDelta, uint256 decimals) - external - { - vm.assume(stdMath.delta(a, b) <= maxDelta); - - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqAbsDecimal_IntErr_Fail(int256 a, int256 b, uint256 maxDelta, uint256 decimals) - external - { - vm.assume(stdMath.delta(a, b) > maxDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqAbsDecimal(a, b, maxDelta, decimals, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_REL(UINT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqRel_Uint_Pass(uint256 a, uint256 b, uint256 maxPercentDelta) external { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRel(a, b, maxPercentDelta, EXPECT_PASS); - } - - function testAssertApproxEqRel_Uint_Fail(uint256 a, uint256 b, uint256 maxPercentDelta) external { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [uint]"); - t._assertApproxEqRel(a, b, maxPercentDelta, EXPECT_FAIL); - } - - function testAssertApproxEqRel_UintErr_Pass(uint256 a, uint256 b, uint256 maxPercentDelta) external { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRel(a, b, maxPercentDelta, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqRel_UintErr_Fail(uint256 a, uint256 b, uint256 maxPercentDelta) external { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqRel(a, b, maxPercentDelta, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_REL_DECIMAL(UINT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqRelDecimal_Uint_Pass(uint256 a, uint256 b, uint256 maxPercentDelta, uint256 decimals) - external - { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, EXPECT_PASS); - } - - function testAssertApproxEqRelDecimal_Uint_Fail(uint256 a, uint256 b, uint256 maxPercentDelta, uint256 decimals) - external - { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [uint]"); - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, EXPECT_FAIL); - } - - function testAssertApproxEqRelDecimal_UintErr_Pass(uint256 a, uint256 b, uint256 maxPercentDelta, uint256 decimals) - external - { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqRelDecimal_UintErr_Fail(uint256 a, uint256 b, uint256 maxPercentDelta, uint256 decimals) - external - { - vm.assume(a < type(uint128).max && b < type(uint128).max && b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_REL(INT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqRel_Int_Pass(int128 a, int128 b, uint128 maxPercentDelta) external { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRel(a, b, maxPercentDelta, EXPECT_PASS); - } - - function testAssertApproxEqRel_Int_Fail(int128 a, int128 b, uint128 maxPercentDelta) external { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [int]"); - t._assertApproxEqRel(a, b, maxPercentDelta, EXPECT_FAIL); - } - - function testAssertApproxEqRel_IntErr_Pass(int128 a, int128 b, uint128 maxPercentDelta) external { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRel(a, b, maxPercentDelta, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqRel_IntErr_Fail(int128 a, int128 b, uint128 maxPercentDelta) external { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqRel(a, b, maxPercentDelta, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - APPROX_EQ_REL_DECIMAL(INT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertApproxEqRelDecimal_Int_Pass(int128 a, int128 b, uint128 maxPercentDelta, uint128 decimals) - external - { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, EXPECT_PASS); - } - - function testAssertApproxEqRelDecimal_Int_Fail(int128 a, int128 b, uint128 maxPercentDelta, uint128 decimals) - external - { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log("Error: a ~= b not satisfied [int]"); - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, EXPECT_FAIL); - } - - function testAssertApproxEqRelDecimal_IntErr_Pass(int128 a, int128 b, uint128 maxPercentDelta, uint128 decimals) - external - { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) <= maxPercentDelta); - - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAssertApproxEqRelDecimal_IntErr_Fail(int128 a, int128 b, uint128 maxPercentDelta, uint128 decimals) - external - { - vm.assume(b != 0); - vm.assume(stdMath.percentDelta(a, b) > maxPercentDelta); - - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_EQ_CALL - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertEqCall_Return_Pass( - bytes memory callDataA, - bytes memory callDataB, - bytes memory returnData, - bool strictRevertData - ) external { - address targetA = address(new TestMockCall(returnData, SHOULD_RETURN)); - address targetB = address(new TestMockCall(returnData, SHOULD_RETURN)); - - t._assertEqCall(targetA, callDataA, targetB, callDataB, strictRevertData, EXPECT_PASS); - } - - function testAssertEqCall_Return_Fail( - bytes memory callDataA, - bytes memory callDataB, - bytes memory returnDataA, - bytes memory returnDataB, - bool strictRevertData - ) external { - vm.assume(keccak256(returnDataA) != keccak256(returnDataB)); - - address targetA = address(new TestMockCall(returnDataA, SHOULD_RETURN)); - address targetB = address(new TestMockCall(returnDataB, SHOULD_RETURN)); - - vm.expectEmit(true, true, true, true); - emit log_named_string("Error", "Call return data does not match"); - t._assertEqCall(targetA, callDataA, targetB, callDataB, strictRevertData, EXPECT_FAIL); - } - - function testAssertEqCall_Revert_Pass( - bytes memory callDataA, - bytes memory callDataB, - bytes memory revertDataA, - bytes memory revertDataB - ) external { - address targetA = address(new TestMockCall(revertDataA, SHOULD_REVERT)); - address targetB = address(new TestMockCall(revertDataB, SHOULD_REVERT)); - - t._assertEqCall(targetA, callDataA, targetB, callDataB, NON_STRICT_REVERT_DATA, EXPECT_PASS); - } - - function testAssertEqCall_Revert_Fail( - bytes memory callDataA, - bytes memory callDataB, - bytes memory revertDataA, - bytes memory revertDataB - ) external { - vm.assume(keccak256(revertDataA) != keccak256(revertDataB)); - - address targetA = address(new TestMockCall(revertDataA, SHOULD_REVERT)); - address targetB = address(new TestMockCall(revertDataB, SHOULD_REVERT)); - - vm.expectEmit(true, true, true, true); - emit log_named_string("Error", "Call revert data does not match"); - t._assertEqCall(targetA, callDataA, targetB, callDataB, STRICT_REVERT_DATA, EXPECT_FAIL); - } - - function testAssertEqCall_Fail( - bytes memory callDataA, - bytes memory callDataB, - bytes memory returnDataA, - bytes memory returnDataB, - bool strictRevertData - ) external { - address targetA = address(new TestMockCall(returnDataA, SHOULD_RETURN)); - address targetB = address(new TestMockCall(returnDataB, SHOULD_REVERT)); - - vm.expectEmit(true, true, true, true); - emit log_named_bytes(" Left call return data", returnDataA); - vm.expectEmit(true, true, true, true); - emit log_named_bytes(" Right call revert data", returnDataB); - t._assertEqCall(targetA, callDataA, targetB, callDataB, strictRevertData, EXPECT_FAIL); - - vm.expectEmit(true, true, true, true); - emit log_named_bytes(" Left call revert data", returnDataB); - vm.expectEmit(true, true, true, true); - emit log_named_bytes(" Right call return data", returnDataA); - t._assertEqCall(targetB, callDataB, targetA, callDataA, strictRevertData, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_NOT_EQ(BYTES) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertNotEq_Bytes_Pass(bytes32 a, bytes32 b) external { - vm.assume(a != b); - t._assertNotEq(a, b, EXPECT_PASS); - } - - function testAssertNotEq_Bytes_Fail(bytes32 a) external { - vm.expectEmit(false, false, false, true); - emit log("Error: a != b not satisfied [bytes32]"); - t._assertNotEq(a, a, EXPECT_FAIL); - } - - function testAssertNotEq_BytesErr_Pass(bytes32 a, bytes32 b) external { - vm.assume(a != b); - t._assertNotEq(a, b, CUSTOM_ERROR, EXPECT_PASS); - } - - function testAsserNottEq_BytesErr_Fail(bytes32 a) external { - vm.expectEmit(false, false, false, true); - emit log_named_string("Error", CUSTOM_ERROR); - t._assertNotEq(a, a, CUSTOM_ERROR, EXPECT_FAIL); - } - - /*////////////////////////////////////////////////////////////////////////// - ASSERT_NOT_EQ(UINT) - //////////////////////////////////////////////////////////////////////////*/ - - function testAssertNotEqUint() public { - assertNotEq(uint8(1), uint128(2)); - assertNotEq(uint64(3), uint64(4)); - } - - function testFailAssertNotEqUint() public { - assertNotEq(uint64(1), uint96(1)); - assertNotEq(uint160(2), uint160(2)); - } -} - -contract TestTest is Test { - modifier expectFailure(bool expectFail) { - bool preState = vm.load(HEVM_ADDRESS, bytes32("failed")) != bytes32(0x00); - _; - bool postState = vm.load(HEVM_ADDRESS, bytes32("failed")) != bytes32(0x00); - - if (preState == true) { - return; - } - - if (expectFail) { - require(postState == true, "expected failure not triggered"); - - // unwind the expected failure - vm.store(HEVM_ADDRESS, bytes32("failed"), bytes32(uint256(0x00))); - } else { - require(postState == false, "unexpected failure was triggered"); - } - } - - function _fail(string memory err) external expectFailure(true) { - fail(err); - } - - function _assertFalse(bool data, bool expectFail) external expectFailure(expectFail) { - assertFalse(data); - } - - function _assertFalse(bool data, string memory err, bool expectFail) external expectFailure(expectFail) { - assertFalse(data, err); - } - - function _assertEq(bool a, bool b, bool expectFail) external expectFailure(expectFail) { - assertEq(a, b); - } - - function _assertEq(bool a, bool b, string memory err, bool expectFail) external expectFailure(expectFail) { - assertEq(a, b, err); - } - - function _assertEq(bytes memory a, bytes memory b, bool expectFail) external expectFailure(expectFail) { - assertEq(a, b); - } - - function _assertEq(bytes memory a, bytes memory b, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertEq(a, b, err); - } - - function _assertEq(uint256[] memory a, uint256[] memory b, bool expectFail) external expectFailure(expectFail) { - assertEq(a, b); - } - - function _assertEq(int256[] memory a, int256[] memory b, bool expectFail) external expectFailure(expectFail) { - assertEq(a, b); - } - - function _assertEq(address[] memory a, address[] memory b, bool expectFail) external expectFailure(expectFail) { - assertEq(a, b); - } - - function _assertEq(uint256[] memory a, uint256[] memory b, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertEq(a, b, err); - } - - function _assertEq(int256[] memory a, int256[] memory b, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertEq(a, b, err); - } - - function _assertEq(address[] memory a, address[] memory b, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertEq(a, b, err); - } - - function _assertNotEq(bytes32 a, bytes32 b, bool expectFail) external expectFailure(expectFail) { - assertNotEq32(a, b); - } - - function _assertNotEq(bytes32 a, bytes32 b, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertNotEq32(a, b, err); - } - - function _assertApproxEqAbs(uint256 a, uint256 b, uint256 maxDelta, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqAbs(a, b, maxDelta); - } - - function _assertApproxEqAbs(uint256 a, uint256 b, uint256 maxDelta, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqAbs(a, b, maxDelta, err); - } - - function _assertApproxEqAbsDecimal(uint256 a, uint256 b, uint256 maxDelta, uint256 decimals, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqAbsDecimal(a, b, maxDelta, decimals); - } - - function _assertApproxEqAbsDecimal( - uint256 a, - uint256 b, - uint256 maxDelta, - uint256 decimals, - string memory err, - bool expectFail - ) external expectFailure(expectFail) { - assertApproxEqAbsDecimal(a, b, maxDelta, decimals, err); - } - - function _assertApproxEqAbs(int256 a, int256 b, uint256 maxDelta, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqAbs(a, b, maxDelta); - } - - function _assertApproxEqAbs(int256 a, int256 b, uint256 maxDelta, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqAbs(a, b, maxDelta, err); - } - - function _assertApproxEqAbsDecimal(int256 a, int256 b, uint256 maxDelta, uint256 decimals, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqAbsDecimal(a, b, maxDelta, decimals); - } - - function _assertApproxEqAbsDecimal( - int256 a, - int256 b, - uint256 maxDelta, - uint256 decimals, - string memory err, - bool expectFail - ) external expectFailure(expectFail) { - assertApproxEqAbsDecimal(a, b, maxDelta, decimals, err); - } - - function _assertApproxEqRel(uint256 a, uint256 b, uint256 maxPercentDelta, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqRel(a, b, maxPercentDelta); - } - - function _assertApproxEqRel(uint256 a, uint256 b, uint256 maxPercentDelta, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqRel(a, b, maxPercentDelta, err); - } - - function _assertApproxEqRelDecimal(uint256 a, uint256 b, uint256 maxPercentDelta, uint256 decimals, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals); - } - - function _assertApproxEqRelDecimal( - uint256 a, - uint256 b, - uint256 maxPercentDelta, - uint256 decimals, - string memory err, - bool expectFail - ) external expectFailure(expectFail) { - assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, err); - } - - function _assertApproxEqRel(int256 a, int256 b, uint256 maxPercentDelta, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqRel(a, b, maxPercentDelta); - } - - function _assertApproxEqRel(int256 a, int256 b, uint256 maxPercentDelta, string memory err, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqRel(a, b, maxPercentDelta, err); - } - - function _assertApproxEqRelDecimal(int256 a, int256 b, uint256 maxPercentDelta, uint256 decimals, bool expectFail) - external - expectFailure(expectFail) - { - assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals); - } - - function _assertApproxEqRelDecimal( - int256 a, - int256 b, - uint256 maxPercentDelta, - uint256 decimals, - string memory err, - bool expectFail - ) external expectFailure(expectFail) { - assertApproxEqRelDecimal(a, b, maxPercentDelta, decimals, err); - } - - function _assertEqCall( - address targetA, - bytes memory callDataA, - address targetB, - bytes memory callDataB, - bool strictRevertData, - bool expectFail - ) external expectFailure(expectFail) { - assertEqCall(targetA, callDataA, targetB, callDataB, strictRevertData); - } -} - -contract TestMockCall { - bytes returnData; - bool shouldRevert; - - constructor(bytes memory returnData_, bool shouldRevert_) { - returnData = returnData_; - shouldRevert = shouldRevert_; - } - - fallback() external payable { - bytes memory returnData_ = returnData; - - if (shouldRevert) { - assembly { - revert(add(returnData_, 0x20), mload(returnData_)) - } - } else { - assembly { - return(add(returnData_, 0x20), mload(returnData_)) - } - } - } -} diff --git a/contracts/lib/forge-std/test/StdChains.t.sol b/contracts/lib/forge-std/test/StdChains.t.sol deleted file mode 100644 index f0ede99c8d..0000000000 --- a/contracts/lib/forge-std/test/StdChains.t.sol +++ /dev/null @@ -1,160 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.7.0 <0.9.0; - -import "../src/Test.sol"; - -contract StdChainsTest is Test { - function testChainRpcInitialization() public { - // RPCs specified in `foundry.toml` should be updated. - assertEq(getChain(1).rpcUrl, "https://mainnet.infura.io/v3/b1d3925804e74152b316ca7da97060d3"); - assertEq(getChain("optimism_goerli").rpcUrl, "https://goerli.optimism.io/"); - assertEq(getChain("arbitrum_one_goerli").rpcUrl, "https://goerli-rollup.arbitrum.io/rpc/"); - - // Environment variables should be the next fallback - assertEq(getChain("arbitrum_nova").rpcUrl, "https://nova.arbitrum.io/rpc"); - vm.setEnv("ARBITRUM_NOVA_RPC_URL", "myoverride"); - assertEq(getChain("arbitrum_nova").rpcUrl, "myoverride"); - vm.setEnv("ARBITRUM_NOVA_RPC_URL", "https://nova.arbitrum.io/rpc"); - - // Cannot override RPCs defined in `foundry.toml` - vm.setEnv("MAINNET_RPC_URL", "myoverride2"); - assertEq(getChain("mainnet").rpcUrl, "https://mainnet.infura.io/v3/b1d3925804e74152b316ca7da97060d3"); - - // Other RPCs should remain unchanged. - assertEq(getChain(31337).rpcUrl, "http://127.0.0.1:8545"); - assertEq(getChain("sepolia").rpcUrl, "https://sepolia.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001"); - } - - function testRpc(string memory rpcAlias) internal { - string memory rpcUrl = getChain(rpcAlias).rpcUrl; - vm.createSelectFork(rpcUrl); - } - - // Ensure we can connect to the default RPC URL for each chain. - // function testRpcs() public { - // testRpc("mainnet"); - // testRpc("goerli"); - // testRpc("sepolia"); - // testRpc("optimism"); - // testRpc("optimism_goerli"); - // testRpc("arbitrum_one"); - // testRpc("arbitrum_one_goerli"); - // testRpc("arbitrum_nova"); - // testRpc("polygon"); - // testRpc("polygon_mumbai"); - // testRpc("avalanche"); - // testRpc("avalanche_fuji"); - // testRpc("bnb_smart_chain"); - // testRpc("bnb_smart_chain_testnet"); - // testRpc("gnosis_chain"); - // } - - function testChainNoDefault() public { - vm.expectRevert("StdChains getChain(string): Chain with alias \"does_not_exist\" not found."); - getChain("does_not_exist"); - } - - function testSetChainFirstFails() public { - vm.expectRevert("StdChains setChain(string,ChainData): Chain ID 31337 already used by \"anvil\"."); - setChain("anvil2", ChainData("Anvil", 31337, "URL")); - } - - function testChainBubbleUp() public { - setChain("needs_undefined_env_var", ChainData("", 123456789, "")); - vm.expectRevert( - "Failed to resolve env var `UNDEFINED_RPC_URL_PLACEHOLDER` in `${UNDEFINED_RPC_URL_PLACEHOLDER}`: environment variable not found" - ); - getChain("needs_undefined_env_var"); - } - - function testCannotSetChain_ChainIdExists() public { - setChain("custom_chain", ChainData("Custom Chain", 123456789, "https://custom.chain/")); - - vm.expectRevert('StdChains setChain(string,ChainData): Chain ID 123456789 already used by "custom_chain".'); - - setChain("another_custom_chain", ChainData("", 123456789, "")); - } - - function testSetChain() public { - setChain("custom_chain", ChainData("Custom Chain", 123456789, "https://custom.chain/")); - Chain memory customChain = getChain("custom_chain"); - assertEq(customChain.name, "Custom Chain"); - assertEq(customChain.chainId, 123456789); - assertEq(customChain.chainAlias, "custom_chain"); - assertEq(customChain.rpcUrl, "https://custom.chain/"); - Chain memory chainById = getChain(123456789); - assertEq(chainById.name, customChain.name); - assertEq(chainById.chainId, customChain.chainId); - assertEq(chainById.chainAlias, customChain.chainAlias); - assertEq(chainById.rpcUrl, customChain.rpcUrl); - customChain.name = "Another Custom Chain"; - customChain.chainId = 987654321; - setChain("another_custom_chain", customChain); - Chain memory anotherCustomChain = getChain("another_custom_chain"); - assertEq(anotherCustomChain.name, "Another Custom Chain"); - assertEq(anotherCustomChain.chainId, 987654321); - assertEq(anotherCustomChain.chainAlias, "another_custom_chain"); - assertEq(anotherCustomChain.rpcUrl, "https://custom.chain/"); - // Verify the first chain data was not overwritten - chainById = getChain(123456789); - assertEq(chainById.name, "Custom Chain"); - assertEq(chainById.chainId, 123456789); - } - - function testSetNoEmptyAlias() public { - vm.expectRevert("StdChains setChain(string,ChainData): Chain alias cannot be the empty string."); - setChain("", ChainData("", 123456789, "")); - } - - function testSetNoChainId0() public { - vm.expectRevert("StdChains setChain(string,ChainData): Chain ID cannot be 0."); - setChain("alias", ChainData("", 0, "")); - } - - function testGetNoChainId0() public { - vm.expectRevert("StdChains getChain(uint256): Chain ID cannot be 0."); - getChain(0); - } - - function testGetNoEmptyAlias() public { - vm.expectRevert("StdChains getChain(string): Chain alias cannot be the empty string."); - getChain(""); - } - - function testChainIdNotFound() public { - vm.expectRevert("StdChains getChain(string): Chain with alias \"no_such_alias\" not found."); - getChain("no_such_alias"); - } - - function testChainAliasNotFound() public { - vm.expectRevert("StdChains getChain(uint256): Chain with ID 321 not found."); - getChain(321); - } - - function testSetChain_ExistingOne() public { - setChain("custom_chain", ChainData("Custom Chain", 123456789, "https://custom.chain/")); - assertEq(getChain(123456789).chainId, 123456789); - - setChain("custom_chain", ChainData("Modified Chain", 999999999, "https://modified.chain/")); - vm.expectRevert("StdChains getChain(uint256): Chain with ID 123456789 not found."); - getChain(123456789); - - Chain memory modifiedChain = getChain(999999999); - assertEq(modifiedChain.name, "Modified Chain"); - assertEq(modifiedChain.chainId, 999999999); - assertEq(modifiedChain.rpcUrl, "https://modified.chain/"); - } - - function testDontUseDefaultRpcUrl() public { - // Should error if default RPCs flag is set to false. - setFallbackToDefaultRpcUrls(false); - vm.expectRevert( - "Failed to get environment variable `ANVIL_RPC_URL` as type `string`: environment variable not found" - ); - getChain(31337); - vm.expectRevert( - "Failed to get environment variable `SEPOLIA_RPC_URL` as type `string`: environment variable not found" - ); - getChain("sepolia"); - } -} diff --git a/contracts/lib/forge-std/test/StdCheats.t.sol b/contracts/lib/forge-std/test/StdCheats.t.sol deleted file mode 100644 index 36091efa04..0000000000 --- a/contracts/lib/forge-std/test/StdCheats.t.sol +++ /dev/null @@ -1,418 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.7.0 <0.9.0; - -import "../src/StdCheats.sol"; -import "../src/Test.sol"; -import "../src/StdJson.sol"; - -contract StdCheatsTest is Test { - Bar test; - - using stdJson for string; - - function setUp() public { - test = new Bar(); - } - - function testSkip() public { - vm.warp(100); - skip(25); - assertEq(block.timestamp, 125); - } - - function testRewind() public { - vm.warp(100); - rewind(25); - assertEq(block.timestamp, 75); - } - - function testHoax() public { - hoax(address(1337)); - test.bar{value: 100}(address(1337)); - } - - function testHoaxOrigin() public { - hoax(address(1337), address(1337)); - test.origin{value: 100}(address(1337)); - } - - function testHoaxDifferentAddresses() public { - hoax(address(1337), address(7331)); - test.origin{value: 100}(address(1337), address(7331)); - } - - function testStartHoax() public { - startHoax(address(1337)); - test.bar{value: 100}(address(1337)); - test.bar{value: 100}(address(1337)); - vm.stopPrank(); - test.bar(address(this)); - } - - function testStartHoaxOrigin() public { - startHoax(address(1337), address(1337)); - test.origin{value: 100}(address(1337)); - test.origin{value: 100}(address(1337)); - vm.stopPrank(); - test.bar(address(this)); - } - - function testChangePrankMsgSender() public { - vm.startPrank(address(1337)); - test.bar(address(1337)); - changePrank(address(0xdead)); - test.bar(address(0xdead)); - changePrank(address(1337)); - test.bar(address(1337)); - vm.stopPrank(); - } - - function testChangePrankMsgSenderAndTxOrigin() public { - vm.startPrank(address(1337), address(1338)); - test.origin(address(1337), address(1338)); - changePrank(address(0xdead), address(0xbeef)); - test.origin(address(0xdead), address(0xbeef)); - changePrank(address(1337), address(1338)); - test.origin(address(1337), address(1338)); - vm.stopPrank(); - } - - function testMakeAccountEquivalence() public { - Account memory account = makeAccount("1337"); - (address addr, uint256 key) = makeAddrAndKey("1337"); - assertEq(account.addr, addr); - assertEq(account.key, key); - } - - function testMakeAddrEquivalence() public { - (address addr,) = makeAddrAndKey("1337"); - assertEq(makeAddr("1337"), addr); - } - - function testMakeAddrSigning() public { - (address addr, uint256 key) = makeAddrAndKey("1337"); - bytes32 hash = keccak256("some_message"); - - (uint8 v, bytes32 r, bytes32 s) = vm.sign(key, hash); - assertEq(ecrecover(hash, v, r, s), addr); - } - - function testDeal() public { - deal(address(this), 1 ether); - assertEq(address(this).balance, 1 ether); - } - - function testDealToken() public { - Bar barToken = new Bar(); - address bar = address(barToken); - deal(bar, address(this), 10000e18); - assertEq(barToken.balanceOf(address(this)), 10000e18); - } - - function testDealTokenAdjustTotalSupply() public { - Bar barToken = new Bar(); - address bar = address(barToken); - deal(bar, address(this), 10000e18, true); - assertEq(barToken.balanceOf(address(this)), 10000e18); - assertEq(barToken.totalSupply(), 20000e18); - deal(bar, address(this), 0, true); - assertEq(barToken.balanceOf(address(this)), 0); - assertEq(barToken.totalSupply(), 10000e18); - } - - function testDealERC1155Token() public { - BarERC1155 barToken = new BarERC1155(); - address bar = address(barToken); - dealERC1155(bar, address(this), 0, 10000e18, false); - assertEq(barToken.balanceOf(address(this), 0), 10000e18); - } - - function testDealERC1155TokenAdjustTotalSupply() public { - BarERC1155 barToken = new BarERC1155(); - address bar = address(barToken); - dealERC1155(bar, address(this), 0, 10000e18, true); - assertEq(barToken.balanceOf(address(this), 0), 10000e18); - assertEq(barToken.totalSupply(0), 20000e18); - dealERC1155(bar, address(this), 0, 0, true); - assertEq(barToken.balanceOf(address(this), 0), 0); - assertEq(barToken.totalSupply(0), 10000e18); - } - - function testDealERC721Token() public { - BarERC721 barToken = new BarERC721(); - address bar = address(barToken); - dealERC721(bar, address(2), 1); - assertEq(barToken.balanceOf(address(2)), 1); - assertEq(barToken.balanceOf(address(1)), 0); - dealERC721(bar, address(1), 2); - assertEq(barToken.balanceOf(address(1)), 1); - assertEq(barToken.balanceOf(bar), 1); - } - - function testDeployCode() public { - address deployed = deployCode("StdCheats.t.sol:Bar", bytes("")); - assertEq(string(getCode(deployed)), string(getCode(address(test)))); - } - - function testDeployCodeNoArgs() public { - address deployed = deployCode("StdCheats.t.sol:Bar"); - assertEq(string(getCode(deployed)), string(getCode(address(test)))); - } - - function testDeployCodeVal() public { - address deployed = deployCode("StdCheats.t.sol:Bar", bytes(""), 1 ether); - assertEq(string(getCode(deployed)), string(getCode(address(test)))); - assertEq(deployed.balance, 1 ether); - } - - function testDeployCodeValNoArgs() public { - address deployed = deployCode("StdCheats.t.sol:Bar", 1 ether); - assertEq(string(getCode(deployed)), string(getCode(address(test)))); - assertEq(deployed.balance, 1 ether); - } - - // We need this so we can call "this.deployCode" rather than "deployCode" directly - function deployCodeHelper(string memory what) external { - deployCode(what); - } - - function testDeployCodeFail() public { - vm.expectRevert(bytes("StdCheats deployCode(string): Deployment failed.")); - this.deployCodeHelper("StdCheats.t.sol:RevertingContract"); - } - - function getCode(address who) internal view returns (bytes memory o_code) { - /// @solidity memory-safe-assembly - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(who) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - // new "memory end" including padding - mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) - // store length in memory - mstore(o_code, size) - // actually retrieve the code, this needs assembly - extcodecopy(who, add(o_code, 0x20), 0, size) - } - } - - function testDeriveRememberKey() public { - string memory mnemonic = "test test test test test test test test test test test junk"; - - (address deployer, uint256 privateKey) = deriveRememberKey(mnemonic, 0); - assertEq(deployer, 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266); - assertEq(privateKey, 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80); - } - - function testBytesToUint() public { - assertEq(3, bytesToUint_test(hex"03")); - assertEq(2, bytesToUint_test(hex"02")); - assertEq(255, bytesToUint_test(hex"ff")); - assertEq(29625, bytesToUint_test(hex"73b9")); - } - - function testParseJsonTxDetail() public { - string memory root = vm.projectRoot(); - string memory path = string.concat(root, "/test/fixtures/broadcast.log.json"); - string memory json = vm.readFile(path); - bytes memory transactionDetails = json.parseRaw(".transactions[0].tx"); - RawTx1559Detail memory rawTxDetail = abi.decode(transactionDetails, (RawTx1559Detail)); - Tx1559Detail memory txDetail = rawToConvertedEIP1559Detail(rawTxDetail); - assertEq(txDetail.from, 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266); - assertEq(txDetail.to, 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512); - assertEq( - txDetail.data, - hex"23e99187000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000013370000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004" - ); - assertEq(txDetail.nonce, 3); - assertEq(txDetail.txType, 2); - assertEq(txDetail.gas, 29625); - assertEq(txDetail.value, 0); - } - - function testReadEIP1559Transaction() public view { - string memory root = vm.projectRoot(); - string memory path = string.concat(root, "/test/fixtures/broadcast.log.json"); - uint256 index = 0; - Tx1559 memory transaction = readTx1559(path, index); - transaction; - } - - function testReadEIP1559Transactions() public view { - string memory root = vm.projectRoot(); - string memory path = string.concat(root, "/test/fixtures/broadcast.log.json"); - Tx1559[] memory transactions = readTx1559s(path); - transactions; - } - - function testReadReceipt() public { - string memory root = vm.projectRoot(); - string memory path = string.concat(root, "/test/fixtures/broadcast.log.json"); - uint256 index = 5; - Receipt memory receipt = readReceipt(path, index); - assertEq( - receipt.logsBloom, - hex"00000000000800000000000000000010000000000000000000000000000180000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100" - ); - } - - function testReadReceipts() public view { - string memory root = vm.projectRoot(); - string memory path = string.concat(root, "/test/fixtures/broadcast.log.json"); - Receipt[] memory receipts = readReceipts(path); - receipts; - } - - function testGasMeteringModifier() public { - uint256 gas_start_normal = gasleft(); - addInLoop(); - uint256 gas_used_normal = gas_start_normal - gasleft(); - - uint256 gas_start_single = gasleft(); - addInLoopNoGas(); - uint256 gas_used_single = gas_start_single - gasleft(); - - uint256 gas_start_double = gasleft(); - addInLoopNoGasNoGas(); - uint256 gas_used_double = gas_start_double - gasleft(); - - emit log_named_uint("Normal gas", gas_used_normal); - emit log_named_uint("Single modifier gas", gas_used_single); - emit log_named_uint("Double modifier gas", gas_used_double); - assertTrue(gas_used_double + gas_used_single < gas_used_normal); - } - - function addInLoop() internal pure returns (uint256) { - uint256 b; - for (uint256 i; i < 10000; i++) { - b += i; - } - return b; - } - - function addInLoopNoGas() internal noGasMetering returns (uint256) { - return addInLoop(); - } - - function addInLoopNoGasNoGas() internal noGasMetering returns (uint256) { - return addInLoopNoGas(); - } - - function bytesToUint_test(bytes memory b) private pure returns (uint256) { - uint256 number; - for (uint256 i = 0; i < b.length; i++) { - number = number + uint256(uint8(b[i])) * (2 ** (8 * (b.length - (i + 1)))); - } - return number; - } - - function testAssumeNoPrecompiles(address addr) external { - assumeNoPrecompiles(addr, getChain("optimism_goerli").chainId); - assertTrue( - addr < address(1) || (addr > address(9) && addr < address(0x4200000000000000000000000000000000000000)) - || addr > address(0x4200000000000000000000000000000000000800) - ); - } - - function testAssumePayable() external { - // all should revert since these addresses are not payable - - // VM address - vm.expectRevert(); - assumePayable(0x7109709ECfa91a80626fF3989D68f67F5b1DD12D); - - // Console address - vm.expectRevert(); - assumePayable(0x000000000000000000636F6e736F6c652e6c6f67); - - // Create2Deployer - vm.expectRevert(); - assumePayable(0x4e59b44847b379578588920cA78FbF26c0B4956C); - } - - function testAssumePayable(address addr) external { - assumePayable(addr); - assertTrue( - addr != 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D && addr != 0x000000000000000000636F6e736F6c652e6c6f67 - && addr != 0x4e59b44847b379578588920cA78FbF26c0B4956C - ); - } -} - -contract Bar { - constructor() payable { - /// `DEAL` STDCHEAT - totalSupply = 10000e18; - balanceOf[address(this)] = totalSupply; - } - - /// `HOAX` and `CHANGEPRANK` STDCHEATS - function bar(address expectedSender) public payable { - require(msg.sender == expectedSender, "!prank"); - } - - function origin(address expectedSender) public payable { - require(msg.sender == expectedSender, "!prank"); - require(tx.origin == expectedSender, "!prank"); - } - - function origin(address expectedSender, address expectedOrigin) public payable { - require(msg.sender == expectedSender, "!prank"); - require(tx.origin == expectedOrigin, "!prank"); - } - - /// `DEAL` STDCHEAT - mapping(address => uint256) public balanceOf; - uint256 public totalSupply; -} - -contract BarERC1155 { - constructor() payable { - /// `DEALERC1155` STDCHEAT - _totalSupply[0] = 10000e18; - _balances[0][address(this)] = _totalSupply[0]; - } - - function balanceOf(address account, uint256 id) public view virtual returns (uint256) { - return _balances[id][account]; - } - - function totalSupply(uint256 id) public view virtual returns (uint256) { - return _totalSupply[id]; - } - - /// `DEALERC1155` STDCHEAT - mapping(uint256 => mapping(address => uint256)) private _balances; - mapping(uint256 => uint256) private _totalSupply; -} - -contract BarERC721 { - constructor() payable { - /// `DEALERC721` STDCHEAT - _owners[1] = address(1); - _balances[address(1)] = 1; - _owners[2] = address(this); - _owners[3] = address(this); - _balances[address(this)] = 2; - } - - function balanceOf(address owner) public view virtual returns (uint256) { - return _balances[owner]; - } - - function ownerOf(uint256 tokenId) public view virtual returns (address) { - address owner = _owners[tokenId]; - return owner; - } - - mapping(uint256 => address) private _owners; - mapping(address => uint256) private _balances; -} - -contract RevertingContract { - constructor() { - revert(); - } -} diff --git a/contracts/lib/forge-std/test/StdError.t.sol b/contracts/lib/forge-std/test/StdError.t.sol deleted file mode 100644 index ccd3eface3..0000000000 --- a/contracts/lib/forge-std/test/StdError.t.sol +++ /dev/null @@ -1,118 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.8.0 <0.9.0; - -import "../src/StdError.sol"; -import "../src/Test.sol"; - -contract StdErrorsTest is Test { - ErrorsTest test; - - function setUp() public { - test = new ErrorsTest(); - } - - function testExpectAssertion() public { - vm.expectRevert(stdError.assertionError); - test.assertionError(); - } - - function testExpectArithmetic() public { - vm.expectRevert(stdError.arithmeticError); - test.arithmeticError(10); - } - - function testExpectDiv() public { - vm.expectRevert(stdError.divisionError); - test.divError(0); - } - - function testExpectMod() public { - vm.expectRevert(stdError.divisionError); - test.modError(0); - } - - function testExpectEnum() public { - vm.expectRevert(stdError.enumConversionError); - test.enumConversion(1); - } - - function testExpectEncodeStg() public { - vm.expectRevert(stdError.encodeStorageError); - test.encodeStgError(); - } - - function testExpectPop() public { - vm.expectRevert(stdError.popError); - test.pop(); - } - - function testExpectOOB() public { - vm.expectRevert(stdError.indexOOBError); - test.indexOOBError(1); - } - - function testExpectMem() public { - vm.expectRevert(stdError.memOverflowError); - test.mem(); - } - - function testExpectIntern() public { - vm.expectRevert(stdError.zeroVarError); - test.intern(); - } -} - -contract ErrorsTest { - enum T {T1} - - uint256[] public someArr; - bytes someBytes; - - function assertionError() public pure { - assert(false); - } - - function arithmeticError(uint256 a) public pure { - a -= 100; - } - - function divError(uint256 a) public pure { - 100 / a; - } - - function modError(uint256 a) public pure { - 100 % a; - } - - function enumConversion(uint256 a) public pure { - T(a); - } - - function encodeStgError() public { - /// @solidity memory-safe-assembly - assembly { - sstore(someBytes.slot, 1) - } - keccak256(someBytes); - } - - function pop() public { - someArr.pop(); - } - - function indexOOBError(uint256 a) public pure { - uint256[] memory t = new uint256[](0); - t[a]; - } - - function mem() public pure { - uint256 l = 2 ** 256 / 32; - new uint256[](l); - } - - function intern() public returns (uint256) { - function(uint256) internal returns (uint256) x; - x(2); - return 7; - } -} diff --git a/contracts/lib/forge-std/test/StdMath.t.sol b/contracts/lib/forge-std/test/StdMath.t.sol deleted file mode 100644 index 95037ea5d4..0000000000 --- a/contracts/lib/forge-std/test/StdMath.t.sol +++ /dev/null @@ -1,197 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.8.0 <0.9.0; - -import "../src/StdMath.sol"; -import "../src/Test.sol"; - -contract StdMathTest is Test { - function testGetAbs() external { - assertEq(stdMath.abs(-50), 50); - assertEq(stdMath.abs(50), 50); - assertEq(stdMath.abs(-1337), 1337); - assertEq(stdMath.abs(0), 0); - - assertEq(stdMath.abs(type(int256).min), (type(uint256).max >> 1) + 1); - assertEq(stdMath.abs(type(int256).max), (type(uint256).max >> 1)); - } - - function testGetAbs_Fuzz(int256 a) external { - uint256 manualAbs = getAbs(a); - - uint256 abs = stdMath.abs(a); - - assertEq(abs, manualAbs); - } - - function testGetDelta_Uint() external { - assertEq(stdMath.delta(uint256(0), uint256(0)), 0); - assertEq(stdMath.delta(uint256(0), uint256(1337)), 1337); - assertEq(stdMath.delta(uint256(0), type(uint64).max), type(uint64).max); - assertEq(stdMath.delta(uint256(0), type(uint128).max), type(uint128).max); - assertEq(stdMath.delta(uint256(0), type(uint256).max), type(uint256).max); - - assertEq(stdMath.delta(0, uint256(0)), 0); - assertEq(stdMath.delta(1337, uint256(0)), 1337); - assertEq(stdMath.delta(type(uint64).max, uint256(0)), type(uint64).max); - assertEq(stdMath.delta(type(uint128).max, uint256(0)), type(uint128).max); - assertEq(stdMath.delta(type(uint256).max, uint256(0)), type(uint256).max); - - assertEq(stdMath.delta(1337, uint256(1337)), 0); - assertEq(stdMath.delta(type(uint256).max, type(uint256).max), 0); - assertEq(stdMath.delta(5000, uint256(1250)), 3750); - } - - function testGetDelta_Uint_Fuzz(uint256 a, uint256 b) external { - uint256 manualDelta; - if (a > b) { - manualDelta = a - b; - } else { - manualDelta = b - a; - } - - uint256 delta = stdMath.delta(a, b); - - assertEq(delta, manualDelta); - } - - function testGetDelta_Int() external { - assertEq(stdMath.delta(int256(0), int256(0)), 0); - assertEq(stdMath.delta(int256(0), int256(1337)), 1337); - assertEq(stdMath.delta(int256(0), type(int64).max), type(uint64).max >> 1); - assertEq(stdMath.delta(int256(0), type(int128).max), type(uint128).max >> 1); - assertEq(stdMath.delta(int256(0), type(int256).max), type(uint256).max >> 1); - - assertEq(stdMath.delta(0, int256(0)), 0); - assertEq(stdMath.delta(1337, int256(0)), 1337); - assertEq(stdMath.delta(type(int64).max, int256(0)), type(uint64).max >> 1); - assertEq(stdMath.delta(type(int128).max, int256(0)), type(uint128).max >> 1); - assertEq(stdMath.delta(type(int256).max, int256(0)), type(uint256).max >> 1); - - assertEq(stdMath.delta(-0, int256(0)), 0); - assertEq(stdMath.delta(-1337, int256(0)), 1337); - assertEq(stdMath.delta(type(int64).min, int256(0)), (type(uint64).max >> 1) + 1); - assertEq(stdMath.delta(type(int128).min, int256(0)), (type(uint128).max >> 1) + 1); - assertEq(stdMath.delta(type(int256).min, int256(0)), (type(uint256).max >> 1) + 1); - - assertEq(stdMath.delta(int256(0), -0), 0); - assertEq(stdMath.delta(int256(0), -1337), 1337); - assertEq(stdMath.delta(int256(0), type(int64).min), (type(uint64).max >> 1) + 1); - assertEq(stdMath.delta(int256(0), type(int128).min), (type(uint128).max >> 1) + 1); - assertEq(stdMath.delta(int256(0), type(int256).min), (type(uint256).max >> 1) + 1); - - assertEq(stdMath.delta(1337, int256(1337)), 0); - assertEq(stdMath.delta(type(int256).max, type(int256).max), 0); - assertEq(stdMath.delta(type(int256).min, type(int256).min), 0); - assertEq(stdMath.delta(type(int256).min, type(int256).max), type(uint256).max); - assertEq(stdMath.delta(5000, int256(1250)), 3750); - } - - function testGetDelta_Int_Fuzz(int256 a, int256 b) external { - uint256 absA = getAbs(a); - uint256 absB = getAbs(b); - uint256 absDelta = absA > absB ? absA - absB : absB - absA; - - uint256 manualDelta; - if ((a >= 0 && b >= 0) || (a < 0 && b < 0)) { - manualDelta = absDelta; - } - // (a < 0 && b >= 0) || (a >= 0 && b < 0) - else { - manualDelta = absA + absB; - } - - uint256 delta = stdMath.delta(a, b); - - assertEq(delta, manualDelta); - } - - function testGetPercentDelta_Uint() external { - assertEq(stdMath.percentDelta(uint256(0), uint256(1337)), 1e18); - assertEq(stdMath.percentDelta(uint256(0), type(uint64).max), 1e18); - assertEq(stdMath.percentDelta(uint256(0), type(uint128).max), 1e18); - assertEq(stdMath.percentDelta(uint256(0), type(uint192).max), 1e18); - - assertEq(stdMath.percentDelta(1337, uint256(1337)), 0); - assertEq(stdMath.percentDelta(type(uint192).max, type(uint192).max), 0); - assertEq(stdMath.percentDelta(0, uint256(2500)), 1e18); - assertEq(stdMath.percentDelta(2500, uint256(2500)), 0); - assertEq(stdMath.percentDelta(5000, uint256(2500)), 1e18); - assertEq(stdMath.percentDelta(7500, uint256(2500)), 2e18); - - vm.expectRevert(stdError.divisionError); - stdMath.percentDelta(uint256(1), 0); - } - - function testGetPercentDelta_Uint_Fuzz(uint192 a, uint192 b) external { - vm.assume(b != 0); - uint256 manualDelta; - if (a > b) { - manualDelta = a - b; - } else { - manualDelta = b - a; - } - - uint256 manualPercentDelta = manualDelta * 1e18 / b; - uint256 percentDelta = stdMath.percentDelta(a, b); - - assertEq(percentDelta, manualPercentDelta); - } - - function testGetPercentDelta_Int() external { - assertEq(stdMath.percentDelta(int256(0), int256(1337)), 1e18); - assertEq(stdMath.percentDelta(int256(0), -1337), 1e18); - assertEq(stdMath.percentDelta(int256(0), type(int64).min), 1e18); - assertEq(stdMath.percentDelta(int256(0), type(int128).min), 1e18); - assertEq(stdMath.percentDelta(int256(0), type(int192).min), 1e18); - assertEq(stdMath.percentDelta(int256(0), type(int64).max), 1e18); - assertEq(stdMath.percentDelta(int256(0), type(int128).max), 1e18); - assertEq(stdMath.percentDelta(int256(0), type(int192).max), 1e18); - - assertEq(stdMath.percentDelta(1337, int256(1337)), 0); - assertEq(stdMath.percentDelta(type(int192).max, type(int192).max), 0); - assertEq(stdMath.percentDelta(type(int192).min, type(int192).min), 0); - - assertEq(stdMath.percentDelta(type(int192).min, type(int192).max), 2e18); // rounds the 1 wei diff down - assertEq(stdMath.percentDelta(type(int192).max, type(int192).min), 2e18 - 1); // rounds the 1 wei diff down - assertEq(stdMath.percentDelta(0, int256(2500)), 1e18); - assertEq(stdMath.percentDelta(2500, int256(2500)), 0); - assertEq(stdMath.percentDelta(5000, int256(2500)), 1e18); - assertEq(stdMath.percentDelta(7500, int256(2500)), 2e18); - - vm.expectRevert(stdError.divisionError); - stdMath.percentDelta(int256(1), 0); - } - - function testGetPercentDelta_Int_Fuzz(int192 a, int192 b) external { - vm.assume(b != 0); - uint256 absA = getAbs(a); - uint256 absB = getAbs(b); - uint256 absDelta = absA > absB ? absA - absB : absB - absA; - - uint256 manualDelta; - if ((a >= 0 && b >= 0) || (a < 0 && b < 0)) { - manualDelta = absDelta; - } - // (a < 0 && b >= 0) || (a >= 0 && b < 0) - else { - manualDelta = absA + absB; - } - - uint256 manualPercentDelta = manualDelta * 1e18 / absB; - uint256 percentDelta = stdMath.percentDelta(a, b); - - assertEq(percentDelta, manualPercentDelta); - } - - /*////////////////////////////////////////////////////////////////////////// - HELPERS - //////////////////////////////////////////////////////////////////////////*/ - - function getAbs(int256 a) private pure returns (uint256) { - if (a < 0) { - return a == type(int256).min ? uint256(type(int256).max) + 1 : uint256(-a); - } - - return uint256(a); - } -} diff --git a/contracts/lib/forge-std/test/StdStorage.t.sol b/contracts/lib/forge-std/test/StdStorage.t.sol deleted file mode 100644 index d4c563a04b..0000000000 --- a/contracts/lib/forge-std/test/StdStorage.t.sol +++ /dev/null @@ -1,283 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.7.0 <0.9.0; - -import "../src/StdStorage.sol"; -import "../src/Test.sol"; - -contract StdStorageTest is Test { - using stdStorage for StdStorage; - - StorageTest internal test; - - function setUp() public { - test = new StorageTest(); - } - - function testStorageHidden() public { - assertEq(uint256(keccak256("my.random.var")), stdstore.target(address(test)).sig("hidden()").find()); - } - - function testStorageObvious() public { - assertEq(uint256(0), stdstore.target(address(test)).sig("exists()").find()); - } - - function testStorageCheckedWriteHidden() public { - stdstore.target(address(test)).sig(test.hidden.selector).checked_write(100); - assertEq(uint256(test.hidden()), 100); - } - - function testStorageCheckedWriteObvious() public { - stdstore.target(address(test)).sig(test.exists.selector).checked_write(100); - assertEq(test.exists(), 100); - } - - function testStorageMapStructA() public { - uint256 slot = - stdstore.target(address(test)).sig(test.map_struct.selector).with_key(address(this)).depth(0).find(); - assertEq(uint256(keccak256(abi.encode(address(this), 4))), slot); - } - - function testStorageMapStructB() public { - uint256 slot = - stdstore.target(address(test)).sig(test.map_struct.selector).with_key(address(this)).depth(1).find(); - assertEq(uint256(keccak256(abi.encode(address(this), 4))) + 1, slot); - } - - function testStorageDeepMap() public { - uint256 slot = stdstore.target(address(test)).sig(test.deep_map.selector).with_key(address(this)).with_key( - address(this) - ).find(); - assertEq(uint256(keccak256(abi.encode(address(this), keccak256(abi.encode(address(this), uint256(5)))))), slot); - } - - function testStorageCheckedWriteDeepMap() public { - stdstore.target(address(test)).sig(test.deep_map.selector).with_key(address(this)).with_key(address(this)) - .checked_write(100); - assertEq(100, test.deep_map(address(this), address(this))); - } - - function testStorageDeepMapStructA() public { - uint256 slot = stdstore.target(address(test)).sig(test.deep_map_struct.selector).with_key(address(this)) - .with_key(address(this)).depth(0).find(); - assertEq( - bytes32(uint256(keccak256(abi.encode(address(this), keccak256(abi.encode(address(this), uint256(6)))))) + 0), - bytes32(slot) - ); - } - - function testStorageDeepMapStructB() public { - uint256 slot = stdstore.target(address(test)).sig(test.deep_map_struct.selector).with_key(address(this)) - .with_key(address(this)).depth(1).find(); - assertEq( - bytes32(uint256(keccak256(abi.encode(address(this), keccak256(abi.encode(address(this), uint256(6)))))) + 1), - bytes32(slot) - ); - } - - function testStorageCheckedWriteDeepMapStructA() public { - stdstore.target(address(test)).sig(test.deep_map_struct.selector).with_key(address(this)).with_key( - address(this) - ).depth(0).checked_write(100); - (uint256 a, uint256 b) = test.deep_map_struct(address(this), address(this)); - assertEq(100, a); - assertEq(0, b); - } - - function testStorageCheckedWriteDeepMapStructB() public { - stdstore.target(address(test)).sig(test.deep_map_struct.selector).with_key(address(this)).with_key( - address(this) - ).depth(1).checked_write(100); - (uint256 a, uint256 b) = test.deep_map_struct(address(this), address(this)); - assertEq(0, a); - assertEq(100, b); - } - - function testStorageCheckedWriteMapStructA() public { - stdstore.target(address(test)).sig(test.map_struct.selector).with_key(address(this)).depth(0).checked_write(100); - (uint256 a, uint256 b) = test.map_struct(address(this)); - assertEq(a, 100); - assertEq(b, 0); - } - - function testStorageCheckedWriteMapStructB() public { - stdstore.target(address(test)).sig(test.map_struct.selector).with_key(address(this)).depth(1).checked_write(100); - (uint256 a, uint256 b) = test.map_struct(address(this)); - assertEq(a, 0); - assertEq(b, 100); - } - - function testStorageStructA() public { - uint256 slot = stdstore.target(address(test)).sig(test.basic.selector).depth(0).find(); - assertEq(uint256(7), slot); - } - - function testStorageStructB() public { - uint256 slot = stdstore.target(address(test)).sig(test.basic.selector).depth(1).find(); - assertEq(uint256(7) + 1, slot); - } - - function testStorageCheckedWriteStructA() public { - stdstore.target(address(test)).sig(test.basic.selector).depth(0).checked_write(100); - (uint256 a, uint256 b) = test.basic(); - assertEq(a, 100); - assertEq(b, 1337); - } - - function testStorageCheckedWriteStructB() public { - stdstore.target(address(test)).sig(test.basic.selector).depth(1).checked_write(100); - (uint256 a, uint256 b) = test.basic(); - assertEq(a, 1337); - assertEq(b, 100); - } - - function testStorageMapAddrFound() public { - uint256 slot = stdstore.target(address(test)).sig(test.map_addr.selector).with_key(address(this)).find(); - assertEq(uint256(keccak256(abi.encode(address(this), uint256(1)))), slot); - } - - function testStorageMapUintFound() public { - uint256 slot = stdstore.target(address(test)).sig(test.map_uint.selector).with_key(100).find(); - assertEq(uint256(keccak256(abi.encode(100, uint256(2)))), slot); - } - - function testStorageCheckedWriteMapUint() public { - stdstore.target(address(test)).sig(test.map_uint.selector).with_key(100).checked_write(100); - assertEq(100, test.map_uint(100)); - } - - function testStorageCheckedWriteMapAddr() public { - stdstore.target(address(test)).sig(test.map_addr.selector).with_key(address(this)).checked_write(100); - assertEq(100, test.map_addr(address(this))); - } - - function testStorageCheckedWriteMapBool() public { - stdstore.target(address(test)).sig(test.map_bool.selector).with_key(address(this)).checked_write(true); - assertTrue(test.map_bool(address(this))); - } - - function testFailStorageCheckedWriteMapPacked() public { - // expect PackedSlot error but not external call so cant expectRevert - stdstore.target(address(test)).sig(test.read_struct_lower.selector).with_key(address(uint160(1337))) - .checked_write(100); - } - - function testStorageCheckedWriteMapPackedSuccess() public { - uint256 full = test.map_packed(address(1337)); - // keep upper 128, set lower 128 to 1337 - full = (full & (uint256((1 << 128) - 1) << 128)) | 1337; - stdstore.target(address(test)).sig(test.map_packed.selector).with_key(address(uint160(1337))).checked_write( - full - ); - assertEq(1337, test.read_struct_lower(address(1337))); - } - - function testFailStorageConst() public { - // vm.expectRevert(abi.encodeWithSignature("NotStorage(bytes4)", bytes4(keccak256("const()")))); - stdstore.target(address(test)).sig("const()").find(); - } - - function testFailStorageNativePack() public { - stdstore.target(address(test)).sig(test.tA.selector).find(); - stdstore.target(address(test)).sig(test.tB.selector).find(); - - // these both would fail - stdstore.target(address(test)).sig(test.tC.selector).find(); - stdstore.target(address(test)).sig(test.tD.selector).find(); - } - - function testStorageReadBytes32() public { - bytes32 val = stdstore.target(address(test)).sig(test.tE.selector).read_bytes32(); - assertEq(val, hex"1337"); - } - - function testStorageReadBool_False() public { - bool val = stdstore.target(address(test)).sig(test.tB.selector).read_bool(); - assertEq(val, false); - } - - function testStorageReadBool_True() public { - bool val = stdstore.target(address(test)).sig(test.tH.selector).read_bool(); - assertEq(val, true); - } - - function testStorageReadBool_Revert() public { - vm.expectRevert("stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."); - this.readNonBoolValue(); - } - - function readNonBoolValue() public { - stdstore.target(address(test)).sig(test.tE.selector).read_bool(); - } - - function testStorageReadAddress() public { - address val = stdstore.target(address(test)).sig(test.tF.selector).read_address(); - assertEq(val, address(1337)); - } - - function testStorageReadUint() public { - uint256 val = stdstore.target(address(test)).sig(test.exists.selector).read_uint(); - assertEq(val, 1); - } - - function testStorageReadInt() public { - int256 val = stdstore.target(address(test)).sig(test.tG.selector).read_int(); - assertEq(val, type(int256).min); - } -} - -contract StorageTest { - uint256 public exists = 1; - mapping(address => uint256) public map_addr; - mapping(uint256 => uint256) public map_uint; - mapping(address => uint256) public map_packed; - mapping(address => UnpackedStruct) public map_struct; - mapping(address => mapping(address => uint256)) public deep_map; - mapping(address => mapping(address => UnpackedStruct)) public deep_map_struct; - UnpackedStruct public basic; - - uint248 public tA; - bool public tB; - - bool public tC = false; - uint248 public tD = 1; - - struct UnpackedStruct { - uint256 a; - uint256 b; - } - - mapping(address => bool) public map_bool; - - bytes32 public tE = hex"1337"; - address public tF = address(1337); - int256 public tG = type(int256).min; - bool public tH = true; - - constructor() { - basic = UnpackedStruct({a: 1337, b: 1337}); - - uint256 two = (1 << 128) | 1; - map_packed[msg.sender] = two; - map_packed[address(uint160(1337))] = 1 << 128; - } - - function read_struct_upper(address who) public view returns (uint256) { - return map_packed[who] >> 128; - } - - function read_struct_lower(address who) public view returns (uint256) { - return map_packed[who] & ((1 << 128) - 1); - } - - function hidden() public view returns (bytes32 t) { - bytes32 slot = keccak256("my.random.var"); - /// @solidity memory-safe-assembly - assembly { - t := sload(slot) - } - } - - function const() public pure returns (bytes32 t) { - t = bytes32(hex"1337"); - } -} diff --git a/contracts/lib/forge-std/test/StdStyle.t.sol b/contracts/lib/forge-std/test/StdStyle.t.sol deleted file mode 100644 index e63ed68e39..0000000000 --- a/contracts/lib/forge-std/test/StdStyle.t.sol +++ /dev/null @@ -1,110 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.7.0 <0.9.0; - -import "../src/Test.sol"; - -contract StdStyleTest is Test { - function testStyleColor() public view { - console2.log(StdStyle.red("StdStyle.red String Test")); - console2.log(StdStyle.red(uint256(10e18))); - console2.log(StdStyle.red(int256(-10e18))); - console2.log(StdStyle.red(true)); - console2.log(StdStyle.red(address(0))); - console2.log(StdStyle.redBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.redBytes32("StdStyle.redBytes32")); - console2.log(StdStyle.green("StdStyle.green String Test")); - console2.log(StdStyle.green(uint256(10e18))); - console2.log(StdStyle.green(int256(-10e18))); - console2.log(StdStyle.green(true)); - console2.log(StdStyle.green(address(0))); - console2.log(StdStyle.greenBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.greenBytes32("StdStyle.greenBytes32")); - console2.log(StdStyle.yellow("StdStyle.yellow String Test")); - console2.log(StdStyle.yellow(uint256(10e18))); - console2.log(StdStyle.yellow(int256(-10e18))); - console2.log(StdStyle.yellow(true)); - console2.log(StdStyle.yellow(address(0))); - console2.log(StdStyle.yellowBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.yellowBytes32("StdStyle.yellowBytes32")); - console2.log(StdStyle.blue("StdStyle.blue String Test")); - console2.log(StdStyle.blue(uint256(10e18))); - console2.log(StdStyle.blue(int256(-10e18))); - console2.log(StdStyle.blue(true)); - console2.log(StdStyle.blue(address(0))); - console2.log(StdStyle.blueBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.blueBytes32("StdStyle.blueBytes32")); - console2.log(StdStyle.magenta("StdStyle.magenta String Test")); - console2.log(StdStyle.magenta(uint256(10e18))); - console2.log(StdStyle.magenta(int256(-10e18))); - console2.log(StdStyle.magenta(true)); - console2.log(StdStyle.magenta(address(0))); - console2.log(StdStyle.magentaBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.magentaBytes32("StdStyle.magentaBytes32")); - console2.log(StdStyle.cyan("StdStyle.cyan String Test")); - console2.log(StdStyle.cyan(uint256(10e18))); - console2.log(StdStyle.cyan(int256(-10e18))); - console2.log(StdStyle.cyan(true)); - console2.log(StdStyle.cyan(address(0))); - console2.log(StdStyle.cyanBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.cyanBytes32("StdStyle.cyanBytes32")); - } - - function testStyleFontWeight() public view { - console2.log(StdStyle.bold("StdStyle.bold String Test")); - console2.log(StdStyle.bold(uint256(10e18))); - console2.log(StdStyle.bold(int256(-10e18))); - console2.log(StdStyle.bold(address(0))); - console2.log(StdStyle.bold(true)); - console2.log(StdStyle.boldBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.boldBytes32("StdStyle.boldBytes32")); - console2.log(StdStyle.dim("StdStyle.dim String Test")); - console2.log(StdStyle.dim(uint256(10e18))); - console2.log(StdStyle.dim(int256(-10e18))); - console2.log(StdStyle.dim(address(0))); - console2.log(StdStyle.dim(true)); - console2.log(StdStyle.dimBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.dimBytes32("StdStyle.dimBytes32")); - console2.log(StdStyle.italic("StdStyle.italic String Test")); - console2.log(StdStyle.italic(uint256(10e18))); - console2.log(StdStyle.italic(int256(-10e18))); - console2.log(StdStyle.italic(address(0))); - console2.log(StdStyle.italic(true)); - console2.log(StdStyle.italicBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.italicBytes32("StdStyle.italicBytes32")); - console2.log(StdStyle.underline("StdStyle.underline String Test")); - console2.log(StdStyle.underline(uint256(10e18))); - console2.log(StdStyle.underline(int256(-10e18))); - console2.log(StdStyle.underline(address(0))); - console2.log(StdStyle.underline(true)); - console2.log(StdStyle.underlineBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.underlineBytes32("StdStyle.underlineBytes32")); - console2.log(StdStyle.inverse("StdStyle.inverse String Test")); - console2.log(StdStyle.inverse(uint256(10e18))); - console2.log(StdStyle.inverse(int256(-10e18))); - console2.log(StdStyle.inverse(address(0))); - console2.log(StdStyle.inverse(true)); - console2.log(StdStyle.inverseBytes(hex"7109709ECfa91a80626fF3989D68f67F5b1DD12D")); - console2.log(StdStyle.inverseBytes32("StdStyle.inverseBytes32")); - } - - function testStyleCombined() public view { - console2.log(StdStyle.red(StdStyle.bold("Red Bold String Test"))); - console2.log(StdStyle.green(StdStyle.dim(uint256(10e18)))); - console2.log(StdStyle.yellow(StdStyle.italic(int256(-10e18)))); - console2.log(StdStyle.blue(StdStyle.underline(address(0)))); - console2.log(StdStyle.magenta(StdStyle.inverse(true))); - } - - function testStyleCustom() public view { - console2.log(h1("Custom Style 1")); - console2.log(h2("Custom Style 2")); - } - - function h1(string memory a) private pure returns (string memory) { - return StdStyle.cyan(StdStyle.inverse(StdStyle.bold(a))); - } - - function h2(string memory a) private pure returns (string memory) { - return StdStyle.magenta(StdStyle.bold(StdStyle.underline(a))); - } -} diff --git a/contracts/lib/forge-std/test/StdUtils.t.sol b/contracts/lib/forge-std/test/StdUtils.t.sol deleted file mode 100644 index a085b19e65..0000000000 --- a/contracts/lib/forge-std/test/StdUtils.t.sol +++ /dev/null @@ -1,297 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.7.0 <0.9.0; - -import "../src/Test.sol"; - -contract StdUtilsMock is StdUtils { - // We deploy a mock version so we can properly test expected reverts. - function getTokenBalances_(address token, address[] memory addresses) - external - returns (uint256[] memory balances) - { - return getTokenBalances(token, addresses); - } -} - -contract StdUtilsTest is Test { - /*////////////////////////////////////////////////////////////////////////// - BOUND UINT - //////////////////////////////////////////////////////////////////////////*/ - - function testBound() public { - assertEq(bound(uint256(5), 0, 4), 0); - assertEq(bound(uint256(0), 69, 69), 69); - assertEq(bound(uint256(0), 68, 69), 68); - assertEq(bound(uint256(10), 150, 190), 174); - assertEq(bound(uint256(300), 2800, 3200), 3107); - assertEq(bound(uint256(9999), 1337, 6666), 4669); - } - - function testBound_WithinRange() public { - assertEq(bound(uint256(51), 50, 150), 51); - assertEq(bound(uint256(51), 50, 150), bound(bound(uint256(51), 50, 150), 50, 150)); - assertEq(bound(uint256(149), 50, 150), 149); - assertEq(bound(uint256(149), 50, 150), bound(bound(uint256(149), 50, 150), 50, 150)); - } - - function testBound_EdgeCoverage() public { - assertEq(bound(uint256(0), 50, 150), 50); - assertEq(bound(uint256(1), 50, 150), 51); - assertEq(bound(uint256(2), 50, 150), 52); - assertEq(bound(uint256(3), 50, 150), 53); - assertEq(bound(type(uint256).max, 50, 150), 150); - assertEq(bound(type(uint256).max - 1, 50, 150), 149); - assertEq(bound(type(uint256).max - 2, 50, 150), 148); - assertEq(bound(type(uint256).max - 3, 50, 150), 147); - } - - function testBound_DistributionIsEven(uint256 min, uint256 size) public { - size = size % 100 + 1; - min = bound(min, UINT256_MAX / 2, UINT256_MAX / 2 + size); - uint256 max = min + size - 1; - uint256 result; - - for (uint256 i = 1; i <= size * 4; ++i) { - // x > max - result = bound(max + i, min, max); - assertEq(result, min + (i - 1) % size); - // x < min - result = bound(min - i, min, max); - assertEq(result, max - (i - 1) % size); - } - } - - function testBound(uint256 num, uint256 min, uint256 max) public { - if (min > max) (min, max) = (max, min); - - uint256 result = bound(num, min, max); - - assertGe(result, min); - assertLe(result, max); - assertEq(result, bound(result, min, max)); - if (num >= min && num <= max) assertEq(result, num); - } - - function testBoundUint256Max() public { - assertEq(bound(0, type(uint256).max - 1, type(uint256).max), type(uint256).max - 1); - assertEq(bound(1, type(uint256).max - 1, type(uint256).max), type(uint256).max); - } - - function testCannotBoundMaxLessThanMin() public { - vm.expectRevert(bytes("StdUtils bound(uint256,uint256,uint256): Max is less than min.")); - bound(uint256(5), 100, 10); - } - - function testCannotBoundMaxLessThanMin(uint256 num, uint256 min, uint256 max) public { - vm.assume(min > max); - vm.expectRevert(bytes("StdUtils bound(uint256,uint256,uint256): Max is less than min.")); - bound(num, min, max); - } - - /*////////////////////////////////////////////////////////////////////////// - BOUND INT - //////////////////////////////////////////////////////////////////////////*/ - - function testBoundInt() public { - assertEq(bound(-3, 0, 4), 2); - assertEq(bound(0, -69, -69), -69); - assertEq(bound(0, -69, -68), -68); - assertEq(bound(-10, 150, 190), 154); - assertEq(bound(-300, 2800, 3200), 2908); - assertEq(bound(9999, -1337, 6666), 1995); - } - - function testBoundInt_WithinRange() public { - assertEq(bound(51, -50, 150), 51); - assertEq(bound(51, -50, 150), bound(bound(51, -50, 150), -50, 150)); - assertEq(bound(149, -50, 150), 149); - assertEq(bound(149, -50, 150), bound(bound(149, -50, 150), -50, 150)); - } - - function testBoundInt_EdgeCoverage() public { - assertEq(bound(type(int256).min, -50, 150), -50); - assertEq(bound(type(int256).min + 1, -50, 150), -49); - assertEq(bound(type(int256).min + 2, -50, 150), -48); - assertEq(bound(type(int256).min + 3, -50, 150), -47); - assertEq(bound(type(int256).min, 10, 150), 10); - assertEq(bound(type(int256).min + 1, 10, 150), 11); - assertEq(bound(type(int256).min + 2, 10, 150), 12); - assertEq(bound(type(int256).min + 3, 10, 150), 13); - - assertEq(bound(type(int256).max, -50, 150), 150); - assertEq(bound(type(int256).max - 1, -50, 150), 149); - assertEq(bound(type(int256).max - 2, -50, 150), 148); - assertEq(bound(type(int256).max - 3, -50, 150), 147); - assertEq(bound(type(int256).max, -50, -10), -10); - assertEq(bound(type(int256).max - 1, -50, -10), -11); - assertEq(bound(type(int256).max - 2, -50, -10), -12); - assertEq(bound(type(int256).max - 3, -50, -10), -13); - } - - function testBoundInt_DistributionIsEven(int256 min, uint256 size) public { - size = size % 100 + 1; - min = bound(min, -int256(size / 2), int256(size - size / 2)); - int256 max = min + int256(size) - 1; - int256 result; - - for (uint256 i = 1; i <= size * 4; ++i) { - // x > max - result = bound(max + int256(i), min, max); - assertEq(result, min + int256((i - 1) % size)); - // x < min - result = bound(min - int256(i), min, max); - assertEq(result, max - int256((i - 1) % size)); - } - } - - function testBoundInt(int256 num, int256 min, int256 max) public { - if (min > max) (min, max) = (max, min); - - int256 result = bound(num, min, max); - - assertGe(result, min); - assertLe(result, max); - assertEq(result, bound(result, min, max)); - if (num >= min && num <= max) assertEq(result, num); - } - - function testBoundIntInt256Max() public { - assertEq(bound(0, type(int256).max - 1, type(int256).max), type(int256).max - 1); - assertEq(bound(1, type(int256).max - 1, type(int256).max), type(int256).max); - } - - function testBoundIntInt256Min() public { - assertEq(bound(0, type(int256).min, type(int256).min + 1), type(int256).min); - assertEq(bound(1, type(int256).min, type(int256).min + 1), type(int256).min + 1); - } - - function testCannotBoundIntMaxLessThanMin() public { - vm.expectRevert(bytes("StdUtils bound(int256,int256,int256): Max is less than min.")); - bound(-5, 100, 10); - } - - function testCannotBoundIntMaxLessThanMin(int256 num, int256 min, int256 max) public { - vm.assume(min > max); - vm.expectRevert(bytes("StdUtils bound(int256,int256,int256): Max is less than min.")); - bound(num, min, max); - } - - /*////////////////////////////////////////////////////////////////////////// - BYTES TO UINT - //////////////////////////////////////////////////////////////////////////*/ - - function testBytesToUint() external { - bytes memory maxUint = hex"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; - bytes memory two = hex"02"; - bytes memory millionEther = hex"d3c21bcecceda1000000"; - - assertEq(bytesToUint(maxUint), type(uint256).max); - assertEq(bytesToUint(two), 2); - assertEq(bytesToUint(millionEther), 1_000_000 ether); - } - - function testCannotConvertGT32Bytes() external { - bytes memory thirty3Bytes = hex"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; - vm.expectRevert("StdUtils bytesToUint(bytes): Bytes length exceeds 32."); - bytesToUint(thirty3Bytes); - } - - /*////////////////////////////////////////////////////////////////////////// - COMPUTE CREATE ADDRESS - //////////////////////////////////////////////////////////////////////////*/ - - function testComputeCreateAddress() external { - address deployer = 0x6C9FC64A53c1b71FB3f9Af64d1ae3A4931A5f4E9; - uint256 nonce = 14; - address createAddress = computeCreateAddress(deployer, nonce); - assertEq(createAddress, 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45); - } - - /*////////////////////////////////////////////////////////////////////////// - COMPUTE CREATE2 ADDRESS - //////////////////////////////////////////////////////////////////////////*/ - - function testComputeCreate2Address() external { - bytes32 salt = bytes32(uint256(31415)); - bytes32 initcodeHash = keccak256(abi.encode(0x6080)); - address deployer = 0x6C9FC64A53c1b71FB3f9Af64d1ae3A4931A5f4E9; - address create2Address = computeCreate2Address(salt, initcodeHash, deployer); - assertEq(create2Address, 0xB147a5d25748fda14b463EB04B111027C290f4d3); - } - - function testComputeCreate2AddressWithDefaultDeployer() external { - bytes32 salt = 0xc290c670fde54e5ef686f9132cbc8711e76a98f0333a438a92daa442c71403c0; - bytes32 initcodeHash = hashInitCode(hex"6080", ""); - assertEq(initcodeHash, 0x1a578b7a4b0b5755db6d121b4118d4bc68fe170dca840c59bc922f14175a76b0); - address create2Address = computeCreate2Address(salt, initcodeHash); - assertEq(create2Address, 0xc0ffEe2198a06235aAbFffe5Db0CacF1717f5Ac6); - } -} - -contract StdUtilsForkTest is Test { - /*////////////////////////////////////////////////////////////////////////// - GET TOKEN BALANCES - //////////////////////////////////////////////////////////////////////////*/ - - address internal SHIB = 0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE; - address internal SHIB_HOLDER_0 = 0x855F5981e831D83e6A4b4EBFCAdAa68D92333170; - address internal SHIB_HOLDER_1 = 0x8F509A90c2e47779cA408Fe00d7A72e359229AdA; - address internal SHIB_HOLDER_2 = 0x0e3bbc0D04fF62211F71f3e4C45d82ad76224385; - - address internal USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; - address internal USDC_HOLDER_0 = 0xDa9CE944a37d218c3302F6B82a094844C6ECEb17; - address internal USDC_HOLDER_1 = 0x3e67F4721E6d1c41a015f645eFa37BEd854fcf52; - - function setUp() public { - // All tests of the `getTokenBalances` method are fork tests using live contracts. - vm.createSelectFork({urlOrAlias: "mainnet", blockNumber: 16_428_900}); - } - - function testCannotGetTokenBalances_NonTokenContract() external { - // We deploy a mock version so we can properly test the revert. - StdUtilsMock stdUtils = new StdUtilsMock(); - - // The UniswapV2Factory contract has neither a `balanceOf` function nor a fallback function, - // so the `balanceOf` call should revert. - address token = address(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f); - address[] memory addresses = new address[](1); - addresses[0] = USDC_HOLDER_0; - - vm.expectRevert("Multicall3: call failed"); - stdUtils.getTokenBalances_(token, addresses); - } - - function testCannotGetTokenBalances_EOA() external { - address eoa = vm.addr({privateKey: 1}); - address[] memory addresses = new address[](1); - addresses[0] = USDC_HOLDER_0; - vm.expectRevert("StdUtils getTokenBalances(address,address[]): Token address is not a contract."); - getTokenBalances(eoa, addresses); - } - - function testGetTokenBalances_Empty() external { - address[] memory addresses = new address[](0); - uint256[] memory balances = getTokenBalances(USDC, addresses); - assertEq(balances.length, 0); - } - - function testGetTokenBalances_USDC() external { - address[] memory addresses = new address[](2); - addresses[0] = USDC_HOLDER_0; - addresses[1] = USDC_HOLDER_1; - uint256[] memory balances = getTokenBalances(USDC, addresses); - assertEq(balances[0], 159_000_000_000_000); - assertEq(balances[1], 131_350_000_000_000); - } - - function testGetTokenBalances_SHIB() external { - address[] memory addresses = new address[](3); - addresses[0] = SHIB_HOLDER_0; - addresses[1] = SHIB_HOLDER_1; - addresses[2] = SHIB_HOLDER_2; - uint256[] memory balances = getTokenBalances(SHIB, addresses); - assertEq(balances[0], 3_323_256_285_484.42e18); - assertEq(balances[1], 1_271_702_771_149.99999928e18); - assertEq(balances[2], 606_357_106_247e18); - } -} diff --git a/contracts/lib/forge-std/test/compilation/CompilationScript.sol b/contracts/lib/forge-std/test/compilation/CompilationScript.sol deleted file mode 100644 index e205cfff3c..0000000000 --- a/contracts/lib/forge-std/test/compilation/CompilationScript.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import "../../src/Script.sol"; - -// The purpose of this contract is to benchmark compilation time to avoid accidentally introducing -// a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 -contract CompilationScript is Script {} diff --git a/contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol b/contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol deleted file mode 100644 index ce8e0e9545..0000000000 --- a/contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import "../../src/Script.sol"; - -// The purpose of this contract is to benchmark compilation time to avoid accidentally introducing -// a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 -contract CompilationScriptBase is ScriptBase {} diff --git a/contracts/lib/forge-std/test/compilation/CompilationTest.sol b/contracts/lib/forge-std/test/compilation/CompilationTest.sol deleted file mode 100644 index 9beeafeb7d..0000000000 --- a/contracts/lib/forge-std/test/compilation/CompilationTest.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import "../../src/Test.sol"; - -// The purpose of this contract is to benchmark compilation time to avoid accidentally introducing -// a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 -contract CompilationTest is Test {} diff --git a/contracts/lib/forge-std/test/compilation/CompilationTestBase.sol b/contracts/lib/forge-std/test/compilation/CompilationTestBase.sol deleted file mode 100644 index e993535bc0..0000000000 --- a/contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.6.2 <0.9.0; - -pragma experimental ABIEncoderV2; - -import "../../src/Test.sol"; - -// The purpose of this contract is to benchmark compilation time to avoid accidentally introducing -// a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 -contract CompilationTestBase is TestBase {} diff --git a/contracts/lib/forge-std/test/fixtures/broadcast.log.json b/contracts/lib/forge-std/test/fixtures/broadcast.log.json deleted file mode 100644 index 0a0200bca9..0000000000 --- a/contracts/lib/forge-std/test/fixtures/broadcast.log.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xc6006863c267735a11476b7f15b15bc718e117e2da114a2be815dd651e1a509f", - "type": "CALL", - "contractName": "Test", - "contractAddress": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "function": "multiple_arguments(uint256,address,uint256[]):(uint256)", - "arguments": ["1", "0000000000000000000000000000000000001337", "[3,4]"], - "tx": { - "type": "0x02", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "gas": "0x73b9", - "value": "0x0", - "data": "0x23e99187000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000013370000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004", - "nonce": "0x3", - "accessList": [] - } - }, - { - "hash": "0xedf2b38d8d896519a947a1acf720f859bb35c0c5ecb8dd7511995b67b9853298", - "type": "CALL", - "contractName": "Test", - "contractAddress": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "function": "inc():(uint256)", - "arguments": [], - "tx": { - "type": "0x02", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "gas": "0xdcb2", - "value": "0x0", - "data": "0x371303c0", - "nonce": "0x4", - "accessList": [] - } - }, - { - "hash": "0xa57e8e3981a6c861442e46c9471bd19cb3e21f9a8a6c63a72e7b5c47c6675a7c", - "type": "CALL", - "contractName": "Test", - "contractAddress": "0x7c6b4bbe207d642d98d5c537142d85209e585087", - "function": "t(uint256):(uint256)", - "arguments": ["1"], - "tx": { - "type": "0x02", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x7c6b4bbe207d642d98d5c537142d85209e585087", - "gas": "0x8599", - "value": "0x0", - "data": "0xafe29f710000000000000000000000000000000000000000000000000000000000000001", - "nonce": "0x5", - "accessList": [] - } - } - ], - "receipts": [ - { - "transactionHash": "0x481dc86e40bba90403c76f8e144aa9ff04c1da2164299d0298573835f0991181", - "transactionIndex": "0x0", - "blockHash": "0xef0730448490304e5403be0fa8f8ce64f118e9adcca60c07a2ae1ab921d748af", - "blockNumber": "0x1", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "cumulativeGasUsed": "0x13f3a", - "gasUsed": "0x13f3a", - "contractAddress": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "logs": [], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "effectiveGasPrice": "0xee6b2800" - }, - { - "transactionHash": "0x6a187183545b8a9e7f1790e847139379bf5622baff2cb43acf3f5c79470af782", - "transactionIndex": "0x0", - "blockHash": "0xf3acb96a90071640c2a8c067ae4e16aad87e634ea8d8bbbb5b352fba86ba0148", - "blockNumber": "0x2", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "cumulativeGasUsed": "0x45d80", - "gasUsed": "0x45d80", - "contractAddress": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "logs": [], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "effectiveGasPrice": "0xee6b2800" - }, - { - "transactionHash": "0x064ad173b4867bdef2fb60060bbdaf01735fbf10414541ea857772974e74ea9d", - "transactionIndex": "0x0", - "blockHash": "0x8373d02109d3ee06a0225f23da4c161c656ccc48fe0fcee931d325508ae73e58", - "blockNumber": "0x3", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "cumulativeGasUsed": "0x45feb", - "gasUsed": "0x45feb", - "contractAddress": null, - "logs": [], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "effectiveGasPrice": "0xee6b2800" - }, - { - "transactionHash": "0xc6006863c267735a11476b7f15b15bc718e117e2da114a2be815dd651e1a509f", - "transactionIndex": "0x0", - "blockHash": "0x16712fae5c0e18f75045f84363fb6b4d9a9fe25e660c4ce286833a533c97f629", - "blockNumber": "0x4", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "cumulativeGasUsed": "0x5905", - "gasUsed": "0x5905", - "contractAddress": null, - "logs": [], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "effectiveGasPrice": "0xee6b2800" - }, - { - "transactionHash": "0xedf2b38d8d896519a947a1acf720f859bb35c0c5ecb8dd7511995b67b9853298", - "transactionIndex": "0x0", - "blockHash": "0x156b88c3eb9a1244ba00a1834f3f70de735b39e3e59006dd03af4fe7d5480c11", - "blockNumber": "0x5", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "cumulativeGasUsed": "0xa9c4", - "gasUsed": "0xa9c4", - "contractAddress": null, - "logs": [], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "effectiveGasPrice": "0xee6b2800" - }, - { - "transactionHash": "0xa57e8e3981a6c861442e46c9471bd19cb3e21f9a8a6c63a72e7b5c47c6675a7c", - "transactionIndex": "0x0", - "blockHash": "0xcf61faca67dbb2c28952b0b8a379e53b1505ae0821e84779679390cb8571cadb", - "blockNumber": "0x6", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x7c6b4bbe207d642d98d5c537142d85209e585087", - "cumulativeGasUsed": "0x66c5", - "gasUsed": "0x66c5", - "contractAddress": null, - "logs": [ - { - "address": "0x7c6b4bbe207d642d98d5c537142d85209e585087", - "topics": [ - "0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000046865726500000000000000000000000000000000000000000000000000000000", - "blockHash": "0xcf61faca67dbb2c28952b0b8a379e53b1505ae0821e84779679390cb8571cadb", - "blockNumber": "0x6", - "transactionHash": "0xa57e8e3981a6c861442e46c9471bd19cb3e21f9a8a6c63a72e7b5c47c6675a7c", - "transactionIndex": "0x1", - "logIndex": "0x0", - "transactionLogIndex": "0x0", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000800000000000000000010000000000000000000000000000180000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100", - "effectiveGasPrice": "0xee6b2800" - }, - { - "transactionHash": "0x11fbb10230c168ca1e36a7e5c69a6dbcd04fd9e64ede39d10a83e36ee8065c16", - "transactionIndex": "0x0", - "blockHash": "0xf1e0ed2eda4e923626ec74621006ed50b3fc27580dc7b4cf68a07ca77420e29c", - "blockNumber": "0x7", - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x0000000000000000000000000000000000001337", - "cumulativeGasUsed": "0x5208", - "gasUsed": "0x5208", - "contractAddress": null, - "logs": [], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "effectiveGasPrice": "0xee6b2800" - } - ], - "libraries": [ - "src/Broadcast.t.sol:F:0x5fbdb2315678afecb367f032d93f642f64180aa3" - ], - "pending": [], - "path": "broadcast/Broadcast.t.sol/31337/run-latest.json", - "returns": {}, - "timestamp": 1655140035 -} From a3671d92614ce1f913116273fdd4aa3442072554 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Tue, 19 Dec 2023 09:29:30 +0000 Subject: [PATCH 7/9] CHORE: Comment out runtime --- Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 55e1b24de6..d31fc86d88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,8 @@ members = [ "contracts/binding", # fvm-utils, "fvm-utils/primitives", - "fvm-utils/runtime", + # Runtime is no longer needed. `primitives` will be moved under `ipc` + # "fvm-utils/runtime", # ipc "ipc/ipc/cli", "ipc/ipc/identity", From 5cc2aa47dc5554306eec0799050021f5e0db4257 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Tue, 19 Dec 2023 09:52:11 +0000 Subject: [PATCH 8/9] FIX: Add forge-std submodule --- .gitmodules | 14 +++++++------- README.md | 2 ++ contracts/.gitmodules | 15 --------------- contracts/lib/forge-std | 1 + 4 files changed, 10 insertions(+), 22 deletions(-) delete mode 100644 contracts/.gitmodules create mode 160000 contracts/lib/forge-std diff --git a/.gitmodules b/.gitmodules index 13d1b17549..2aeab4415f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,15 @@ -[submodule "lib/forge-std"] - path = contracts/lib/forge-std - url = https://github.com/foundry-rs/forge-std -[submodule "lib/openzeppelin-contracts"] +[submodule "contracts/lib/openzeppelin-contracts"] path = contracts/lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts -[submodule "lib/fevmate"] +[submodule "contracts/lib/fevmate"] path = contracts/lib/fevmate url = https://github.com/wadealexc/fevmate -[submodule "lib/murky"] +[submodule "contracts/lib/murky"] path = contracts/lib/murky url = https://github.com/dmfxyz/murky -[submodule "lib/elliptic-curve-solidity"] +[submodule "contracts/lib/elliptic-curve-solidity"] path = contracts/lib/elliptic-curve-solidity url = https://github.com/witnet/elliptic-curve-solidity +[submodule "contracts/lib/forge-std"] + path = contracts/lib/forge-std + url = https://github.com/foundry-rs/forge-std diff --git a/README.md b/README.md index c1d65c3d37..579a0cb5eb 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,6 @@ git subtree add -P fvm-utils ../fvm-utils main git subtree add -P ipld-resolver ../ipc-ipld-resolver main ``` +You may have to run `git submodule update --init --recursive` to initialize all the submodules under `contracts`. + TODO: Add examples of pulling updates from the upstream repos. diff --git a/contracts/.gitmodules b/contracts/.gitmodules deleted file mode 100644 index a5f2365309..0000000000 --- a/contracts/.gitmodules +++ /dev/null @@ -1,15 +0,0 @@ -[submodule "lib/forge-std"] - path = lib/forge-std - url = https://github.com/foundry-rs/forge-std -[submodule "lib/openzeppelin-contracts"] - path = lib/openzeppelin-contracts - url = https://github.com/OpenZeppelin/openzeppelin-contracts -[submodule "lib/fevmate"] - path = lib/fevmate - url = https://github.com/wadealexc/fevmate -[submodule "lib/murky"] - path = lib/murky - url = https://github.com/dmfxyz/murky -[submodule "lib/elliptic-curve-solidity"] - path = lib/elliptic-curve-solidity - url = https://github.com/witnet/elliptic-curve-solidity diff --git a/contracts/lib/forge-std b/contracts/lib/forge-std new file mode 160000 index 0000000000..155d547c44 --- /dev/null +++ b/contracts/lib/forge-std @@ -0,0 +1 @@ +Subproject commit 155d547c449afa8715f538d69454b83944117811 From a334b888a41d93307ed78c544199376dc883cbf4 Mon Sep 17 00:00:00 2001 From: Akosh Farkash Date: Tue, 19 Dec 2023 09:52:57 +0000 Subject: [PATCH 9/9] CHORE: Delete contracts/out --- contracts/.gitignore | 1 + contracts/out/AccountHelper.sol/AccountHelper.json | 1 - contracts/out/Address.sol/Address.json | 1 - contracts/out/Checkpoint.sol/Checkpoint.json | 1 - contracts/out/ConsensusType.sol/ConsensusType.json | 1 - contracts/out/Constants.sol/Constants.json | 1 - contracts/out/Context.sol/Context.json | 1 - contracts/out/CrossMsgHelper.sol/CrossMsgHelper.json | 1 - contracts/out/DiamondCutFacet.sol/DiamondCutFacet.json | 1 - contracts/out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json | 1 - contracts/out/ECDSA.sol/ECDSA.json | 1 - contracts/out/ERC20.sol/ERC20.json | 1 - contracts/out/ERC20Helper.sol/DummyERC20.json | 1 - contracts/out/EnumerableSet.sol/EnumerableSet.json | 1 - contracts/out/FilAddress.sol/FilAddress.json | 1 - contracts/out/FvmAddress.sol/FvmAddress.json | 1 - contracts/out/FvmAddressHelper.sol/FvmAddressHelper.json | 1 - contracts/out/GatewayDiamond.sol/GatewayDiamond.json | 1 - contracts/out/GatewayGetterFacet.sol/GatewayGetterFacet.json | 1 - contracts/out/GatewayManagerFacet.sol/GatewayManagerFacet.json | 1 - .../out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json | 1 - contracts/out/GatewayRouterFacet.sol/GatewayRouterFacet.json | 1 - contracts/out/IDiamond.sol/IDiamond.json | 1 - contracts/out/IDiamondCut.sol/IDiamondCut.json | 1 - contracts/out/IDiamondLoupe.sol/IDiamondLoupe.json | 1 - contracts/out/IERC165.sol/IERC165.json | 1 - contracts/out/IERC20.sol/IERC20.json | 1 - contracts/out/IERC20Metadata.sol/IERC20Metadata.json | 1 - contracts/out/IGateway.sol/IGateway.json | 1 - contracts/out/IPCErrors.sol/IPCErrors.json | 1 - contracts/out/IPCMsgType.sol/IPCMsgType.json | 1 - contracts/out/ISubnetActor.sol/ISubnetActor.json | 1 - contracts/out/LibDiamond.sol/LibDiamond.json | 1 - contracts/out/LibGateway.sol/LibGateway.json | 1 - .../out/LibGatewayActorStorage.sol/GatewayActorModifiers.json | 1 - .../out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json | 1 - contracts/out/LibMaxPQ.sol/LibMaxPQ.json | 1 - contracts/out/LibMinPQ.sol/LibMinPQ.json | 1 - .../out/LibMultisignatureChecker.sol/MultisignatureChecker.json | 1 - contracts/out/LibPQ.sol/LibPQ.json | 1 - contracts/out/LibReentrancyGuard.sol/ReentrancyGuard.json | 1 - contracts/out/LibStaking.sol/LibAddressStakingReleases.json | 1 - contracts/out/LibStaking.sol/LibStaking.json | 1 - contracts/out/LibStaking.sol/LibStakingReleaseQueue.json | 1 - contracts/out/LibStaking.sol/LibValidatorSet.json | 1 - contracts/out/LibStaking.sol/LibValidatorTracking.json | 1 - contracts/out/LibStakingChangeLog.sol/LibStakingChangeLog.json | 1 - .../out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json | 1 - .../out/LibSubnetActorStorage.sol/SubnetActorModifiers.json | 1 - .../LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json | 1 - contracts/out/Math.sol/Math.json | 1 - contracts/out/NumberContract.sol/NumberContractFacetEight.json | 1 - contracts/out/NumberContract.sol/NumberContractFacetSeven.json | 1 - contracts/out/Ownable.sol/Ownable.json | 1 - contracts/out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json | 1 - contracts/out/SignedMath.sol/SignedMath.json | 1 - contracts/out/Status.sol/Status.json | 1 - contracts/out/StorableMsgHelper.sol/StorableMsgHelper.json | 1 - contracts/out/Strings.sol/Strings.json | 1 - contracts/out/Subnet.sol/Subnet.json | 1 - contracts/out/SubnetActorDiamond.sol/SubnetActorDiamond.json | 1 - .../out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json | 1 - .../out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json | 1 - contracts/out/SubnetGetterFacet.sol/SubnetGetterFacet.json | 1 - contracts/out/SubnetIDHelper.sol/SubnetIDHelper.json | 1 - .../out/SubnetManagerTestUtil.sol/SubnetManagerTestUtil.json | 1 - .../out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json | 1 - contracts/out/draft-IERC6093.sol/IERC1155Errors.json | 1 - contracts/out/draft-IERC6093.sol/IERC20Errors.json | 1 - contracts/out/draft-IERC6093.sol/IERC721Errors.json | 1 - 70 files changed, 1 insertion(+), 69 deletions(-) delete mode 100644 contracts/out/AccountHelper.sol/AccountHelper.json delete mode 100644 contracts/out/Address.sol/Address.json delete mode 100644 contracts/out/Checkpoint.sol/Checkpoint.json delete mode 100644 contracts/out/ConsensusType.sol/ConsensusType.json delete mode 100644 contracts/out/Constants.sol/Constants.json delete mode 100644 contracts/out/Context.sol/Context.json delete mode 100644 contracts/out/CrossMsgHelper.sol/CrossMsgHelper.json delete mode 100644 contracts/out/DiamondCutFacet.sol/DiamondCutFacet.json delete mode 100644 contracts/out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json delete mode 100644 contracts/out/ECDSA.sol/ECDSA.json delete mode 100644 contracts/out/ERC20.sol/ERC20.json delete mode 100644 contracts/out/ERC20Helper.sol/DummyERC20.json delete mode 100644 contracts/out/EnumerableSet.sol/EnumerableSet.json delete mode 100644 contracts/out/FilAddress.sol/FilAddress.json delete mode 100644 contracts/out/FvmAddress.sol/FvmAddress.json delete mode 100644 contracts/out/FvmAddressHelper.sol/FvmAddressHelper.json delete mode 100644 contracts/out/GatewayDiamond.sol/GatewayDiamond.json delete mode 100644 contracts/out/GatewayGetterFacet.sol/GatewayGetterFacet.json delete mode 100644 contracts/out/GatewayManagerFacet.sol/GatewayManagerFacet.json delete mode 100644 contracts/out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json delete mode 100644 contracts/out/GatewayRouterFacet.sol/GatewayRouterFacet.json delete mode 100644 contracts/out/IDiamond.sol/IDiamond.json delete mode 100644 contracts/out/IDiamondCut.sol/IDiamondCut.json delete mode 100644 contracts/out/IDiamondLoupe.sol/IDiamondLoupe.json delete mode 100644 contracts/out/IERC165.sol/IERC165.json delete mode 100644 contracts/out/IERC20.sol/IERC20.json delete mode 100644 contracts/out/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 contracts/out/IGateway.sol/IGateway.json delete mode 100644 contracts/out/IPCErrors.sol/IPCErrors.json delete mode 100644 contracts/out/IPCMsgType.sol/IPCMsgType.json delete mode 100644 contracts/out/ISubnetActor.sol/ISubnetActor.json delete mode 100644 contracts/out/LibDiamond.sol/LibDiamond.json delete mode 100644 contracts/out/LibGateway.sol/LibGateway.json delete mode 100644 contracts/out/LibGatewayActorStorage.sol/GatewayActorModifiers.json delete mode 100644 contracts/out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json delete mode 100644 contracts/out/LibMaxPQ.sol/LibMaxPQ.json delete mode 100644 contracts/out/LibMinPQ.sol/LibMinPQ.json delete mode 100644 contracts/out/LibMultisignatureChecker.sol/MultisignatureChecker.json delete mode 100644 contracts/out/LibPQ.sol/LibPQ.json delete mode 100644 contracts/out/LibReentrancyGuard.sol/ReentrancyGuard.json delete mode 100644 contracts/out/LibStaking.sol/LibAddressStakingReleases.json delete mode 100644 contracts/out/LibStaking.sol/LibStaking.json delete mode 100644 contracts/out/LibStaking.sol/LibStakingReleaseQueue.json delete mode 100644 contracts/out/LibStaking.sol/LibValidatorSet.json delete mode 100644 contracts/out/LibStaking.sol/LibValidatorTracking.json delete mode 100644 contracts/out/LibStakingChangeLog.sol/LibStakingChangeLog.json delete mode 100644 contracts/out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json delete mode 100644 contracts/out/LibSubnetActorStorage.sol/SubnetActorModifiers.json delete mode 100644 contracts/out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json delete mode 100644 contracts/out/Math.sol/Math.json delete mode 100644 contracts/out/NumberContract.sol/NumberContractFacetEight.json delete mode 100644 contracts/out/NumberContract.sol/NumberContractFacetSeven.json delete mode 100644 contracts/out/Ownable.sol/Ownable.json delete mode 100644 contracts/out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json delete mode 100644 contracts/out/SignedMath.sol/SignedMath.json delete mode 100644 contracts/out/Status.sol/Status.json delete mode 100644 contracts/out/StorableMsgHelper.sol/StorableMsgHelper.json delete mode 100644 contracts/out/Strings.sol/Strings.json delete mode 100644 contracts/out/Subnet.sol/Subnet.json delete mode 100644 contracts/out/SubnetActorDiamond.sol/SubnetActorDiamond.json delete mode 100644 contracts/out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json delete mode 100644 contracts/out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json delete mode 100644 contracts/out/SubnetGetterFacet.sol/SubnetGetterFacet.json delete mode 100644 contracts/out/SubnetIDHelper.sol/SubnetIDHelper.json delete mode 100644 contracts/out/SubnetManagerTestUtil.sol/SubnetManagerTestUtil.json delete mode 100644 contracts/out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json delete mode 100644 contracts/out/draft-IERC6093.sol/IERC1155Errors.json delete mode 100644 contracts/out/draft-IERC6093.sol/IERC20Errors.json delete mode 100644 contracts/out/draft-IERC6093.sol/IERC721Errors.json diff --git a/contracts/.gitignore b/contracts/.gitignore index 125a410f1e..be32475e1d 100644 --- a/contracts/.gitignore +++ b/contracts/.gitignore @@ -5,6 +5,7 @@ crytic-export/ .idea .env broadcast/ +out/ node_modules diff --git a/contracts/out/AccountHelper.sol/AccountHelper.json b/contracts/out/AccountHelper.sol/AccountHelper.json deleted file mode 100644 index 26259c7e01..0000000000 --- a/contracts/out/AccountHelper.sol/AccountHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"isAccount","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSystemActor","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576101949081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816325ca4c9c146100715750635d3f8a691461003757600080fd5b602036600319011261006e576004356001600160a01b0381169081900361006a5760405160ff60981b9091148152602090f35b5080fd5b80fd5b9050602036600319011261006a576004356001600160a01b038116810361015a57803b15918261012f575b826100af575b6020836040519015158152f35b908092503b67ffffffffffffffff80821161011b57601f8201601f19908116603f011683019081118382101761011b579360209460405281835284830180943c5190207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701438806100a2565b634e487b7160e01b85526041600452602485fd5b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470823f14925061009c565b8280fdfea2646970667358221220731bddc67736ece49eaa9e958bd140e516b1a76b0e1431c7f4dc461907dc671664736f6c63430008130033","sourceMap":"269:545:34:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c90816325ca4c9c146100715750635d3f8a691461003757600080fd5b602036600319011261006e576004356001600160a01b0381169081900361006a5760405160ff60981b9091148152602090f35b5080fd5b80fd5b9050602036600319011261006a576004356001600160a01b038116810361015a57803b15918261012f575b826100af575b6020836040519015158152f35b908092503b67ffffffffffffffff80821161011b57601f8201601f19908116603f011683019081118382101761011b579360209460405281835284830180943c5190207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701438806100a2565b634e487b7160e01b85526041600452602485fd5b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470823f14925061009c565b8280fdfea2646970667358221220731bddc67736ece49eaa9e958bd140e516b1a76b0e1431c7f4dc461907dc671664736f6c63430008130033","sourceMap":"269:545:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;269:545:34;;;;;;-1:-1:-1;;;;;269:545:34;;;;;;;;;;-1:-1:-1;;;770:35:34;;;269:545;;;;;;;;;;;;;;-1:-1:-1;269:545:34;;-1:-1:-1;;269:545:34;;;;;;-1:-1:-1;;;;;269:545:34;;;;;;445:62;;572:9;:50;;;;269:545;572:98;;;269:545;;;;;;;;;;;572:98;240:66:17;;;;;;;;;;;;;;-1:-1:-1;;240:66:17;;;;;;;;;;;;;;;;;;269:545:34;240:66:17;269:545:34;240:66:17;;;;;;;;;;;646:24:34;;240:66:17;626:44:34;572:98;;;;240:66:17;-1:-1:-1;;;240:66:17;;;269:545:34;240:66:17;;;;572:50:34;240:66:17;605:17:34;;585:37;;-1:-1:-1;572:50:34;;269:545;;;","linkReferences":{}},"methodIdentifiers":{"isAccount(address)":"25ca4c9c","isSystemActor(address)":"5d3f8a69"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isSystemActor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for checking account type\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/AccountHelper.sol\":\"AccountHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"pure","type":"function","name":"isSystemActor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/AccountHelper.sol":"AccountHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/AccountHelper.sol","id":8969,"exportedSymbols":{"ADDRESS_CODEHASH":[5550],"AccountHelper":[8968],"FilAddress":[298]},"nodeType":"SourceUnit","src":"46:769:34","nodes":[{"id":8921,"nodeType":"PragmaDirective","src":"46:23:34","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8923,"nodeType":"ImportDirective","src":"71:60:34","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":8969,"sourceUnit":5557,"symbolAliases":[{"foreign":{"id":8922,"name":"ADDRESS_CODEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5550,"src":"79:16:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8925,"nodeType":"ImportDirective","src":"132:56:34","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":8969,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":8924,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"140:10:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8968,"nodeType":"ContractDefinition","src":"269:545:34","nodes":[{"id":8954,"nodeType":"FunctionDefinition","src":"297:380:34","nodes":[],"body":{"id":8953,"nodeType":"Block","src":"363:314:34","nodes":[],"statements":[{"assignments":[8934],"declarations":[{"constant":false,"id":8934,"mutability":"mutable","name":"size","nameLocation":"381:4:34","nodeType":"VariableDeclaration","scope":8953,"src":"373:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8933,"name":"uint256","nodeType":"ElementaryTypeName","src":"373:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8935,"nodeType":"VariableDeclarationStatement","src":"373:12:34"},{"AST":{"nodeType":"YulBlock","src":"454:53:34","statements":[{"nodeType":"YulAssignment","src":"468:29:34","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"488:8:34"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"476:11:34"},"nodeType":"YulFunctionCall","src":"476:21:34"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"468:4:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8928,"isOffset":false,"isSlot":false,"src":"488:8:34","valueSize":1},{"declaration":8934,"isOffset":false,"isSlot":false,"src":"468:4:34","valueSize":1}],"id":8936,"nodeType":"InlineAssembly","src":"445:62:34"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8937,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8934,"src":"572:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"580:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"572:9:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8940,"name":"ADDRESS_CODEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5550,"src":"585:16:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8941,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8928,"src":"605:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:8:34","memberName":"codehash","nodeType":"MemberAccess","src":"605:17:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"585:37:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"572:50:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8945,"name":"ADDRESS_CODEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5550,"src":"626:16:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":8947,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8928,"src":"656:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"665:4:34","memberName":"code","nodeType":"MemberAccess","src":"656:13:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8946,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"646:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"646:24:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"626:44:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"572:98:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8932,"id":8952,"nodeType":"Return","src":"565:105:34"}]},"functionSelector":"25ca4c9c","implemented":true,"kind":"function","modifiers":[],"name":"isAccount","nameLocation":"306:9:34","parameters":{"id":8929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8928,"mutability":"mutable","name":"_address","nameLocation":"324:8:34","nodeType":"VariableDeclaration","scope":8954,"src":"316:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8927,"name":"address","nodeType":"ElementaryTypeName","src":"316:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"315:18:34"},"returnParameters":{"id":8932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8954,"src":"357:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8930,"name":"bool","nodeType":"ElementaryTypeName","src":"357:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"356:6:34"},"scope":8968,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8967,"nodeType":"FunctionDefinition","src":"683:129:34","nodes":[],"body":{"id":8966,"nodeType":"Block","src":"753:59:34","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8961,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"770:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8962,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"782:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$298_$","typeString":"type(library FilAddress)"}},"id":8963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"793:12:34","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":11,"src":"782:23:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"770:35:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8960,"id":8965,"nodeType":"Return","src":"763:42:34"}]},"functionSelector":"5d3f8a69","implemented":true,"kind":"function","modifiers":[],"name":"isSystemActor","nameLocation":"692:13:34","parameters":{"id":8957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8956,"mutability":"mutable","name":"_address","nameLocation":"714:8:34","nodeType":"VariableDeclaration","scope":8967,"src":"706:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8955,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"705:18:34"},"returnParameters":{"id":8960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8967,"src":"747:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8958,"name":"bool","nodeType":"ElementaryTypeName","src":"747:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"746:6:34"},"scope":8968,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AccountHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":8926,"nodeType":"StructuredDocumentation","src":"190:79:34","text":"@title Helper library for checking account type\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[8968],"name":"AccountHelper","nameLocation":"277:13:34","scope":8969,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":34} \ No newline at end of file diff --git a/contracts/out/Address.sol/Address.json b/contracts/out/Address.sol/Address.json deleted file mode 100644 index cce72f2108..0000000000 --- a/contracts/out/Address.sol/Address.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212205288df66b511ce16539a8ada312362ea2e57de94461203c9d1002bd233703ca364736f6c63430008130033","sourceMap":"195:9048:6:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212205288df66b511ce16539a8ada312362ea2e57de94461203c9d1002bd233703ca364736f6c63430008130033","sourceMap":"195:9048:6:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":"Address"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","id":1626,"exportedSymbols":{"Address":[1625]},"nodeType":"SourceUnit","src":"101:9143:6","nodes":[{"id":1242,"nodeType":"PragmaDirective","src":"101:24:6","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":1625,"nodeType":"ContractDefinition","src":"195:9048:6","nodes":[{"id":1248,"nodeType":"ErrorDefinition","src":"316:50:6","nodes":[],"documentation":{"id":1244,"nodeType":"StructuredDocumentation","src":"217:94:6","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","name":"AddressInsufficientBalance","nameLocation":"322:26:6","parameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1246,"mutability":"mutable","name":"account","nameLocation":"357:7:6","nodeType":"VariableDeclaration","scope":1248,"src":"349:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1245,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:6"}},{"id":1253,"nodeType":"ErrorDefinition","src":"452:39:6","nodes":[],"documentation":{"id":1249,"nodeType":"StructuredDocumentation","src":"372:75:6","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","name":"AddressEmptyCode","nameLocation":"458:16:6","parameters":{"id":1252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1251,"mutability":"mutable","name":"target","nameLocation":"483:6:6","nodeType":"VariableDeclaration","scope":1253,"src":"475:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1250,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"474:16:6"}},{"id":1256,"nodeType":"ErrorDefinition","src":"591:24:6","nodes":[],"documentation":{"id":1254,"nodeType":"StructuredDocumentation","src":"497:89:6","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","name":"FailedInnerCall","nameLocation":"597:15:6","parameters":{"id":1255,"nodeType":"ParameterList","parameters":[],"src":"612:2:6"}},{"id":1297,"nodeType":"FunctionDefinition","src":"1530:331:6","nodes":[],"body":{"id":1296,"nodeType":"Block","src":"1601:260:6","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1266,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1623:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}],"id":1265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1615:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1264,"name":"address","nodeType":"ElementaryTypeName","src":"1615:7:6","typeDescriptions":{}}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1629:7:6","memberName":"balance","nodeType":"MemberAccess","src":"1615:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1269,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"1639:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1615:30:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1279,"nodeType":"IfStatement","src":"1611:109:6","trueBody":{"id":1278,"nodeType":"Block","src":"1647:73:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":1274,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1703:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}],"id":1273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1695:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1272,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:6","typeDescriptions":{}}},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1695:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1271,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1668:26:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1668:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1277,"nodeType":"RevertStatement","src":"1661:48:6"}]}},{"assignments":[1281,null],"declarations":[{"constant":false,"id":1281,"mutability":"mutable","name":"success","nameLocation":"1736:7:6","nodeType":"VariableDeclaration","scope":1296,"src":"1731:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1280,"name":"bool","nodeType":"ElementaryTypeName","src":"1731:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1288,"initialValue":{"arguments":[{"hexValue":"","id":1286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1779:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1282,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"1749:9:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1759:4:6","memberName":"call","nodeType":"MemberAccess","src":"1749:14:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1284,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"1771:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1749:29:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1749:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1730:52:6"},{"condition":{"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:8:6","subExpression":{"id":1289,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"1797:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1295,"nodeType":"IfStatement","src":"1792:63:6","trueBody":{"id":1294,"nodeType":"Block","src":"1806:49:6","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1291,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"1827:15:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1293,"nodeType":"RevertStatement","src":"1820:24:6"}]}}]},"documentation":{"id":1257,"nodeType":"StructuredDocumentation","src":"621:904:6","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1539:9:6","parameters":{"id":1262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1259,"mutability":"mutable","name":"recipient","nameLocation":"1565:9:6","nodeType":"VariableDeclaration","scope":1297,"src":"1549:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1258,"name":"address","nodeType":"ElementaryTypeName","src":"1549:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1261,"mutability":"mutable","name":"amount","nameLocation":"1584:6:6","nodeType":"VariableDeclaration","scope":1297,"src":"1576:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1576:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1548:43:6"},"returnParameters":{"id":1263,"nodeType":"ParameterList","parameters":[],"src":"1601:0:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1315,"nodeType":"FunctionDefinition","src":"2603:166:6","nodes":[],"body":{"id":1314,"nodeType":"Block","src":"2692:77:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":1308,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"2731:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1309,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1302,"src":"2739:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":1310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2745:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":1311,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1600,"src":"2748:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":1307,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1357,1408],"referencedDeclaration":1408,"src":"2709:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":1312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:53:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1306,"id":1313,"nodeType":"Return","src":"2702:60:6"}]},"documentation":{"id":1298,"nodeType":"StructuredDocumentation","src":"1867:731:6","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2612:12:6","parameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"mutability":"mutable","name":"target","nameLocation":"2633:6:6","nodeType":"VariableDeclaration","scope":1315,"src":"2625:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1299,"name":"address","nodeType":"ElementaryTypeName","src":"2625:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1302,"mutability":"mutable","name":"data","nameLocation":"2654:4:6","nodeType":"VariableDeclaration","scope":1315,"src":"2641:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1301,"name":"bytes","nodeType":"ElementaryTypeName","src":"2641:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2624:35:6"},"returnParameters":{"id":1306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1315,"src":"2678:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1304,"name":"bytes","nodeType":"ElementaryTypeName","src":"2678:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2677:14:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1337,"nodeType":"FunctionDefinition","src":"3077:234:6","nodes":[],"body":{"id":1336,"nodeType":"Block","src":"3235:76:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":1330,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"3274:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1331,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"3282:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":1332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":1333,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"3291:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":1329,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1357,1408],"referencedDeclaration":1408,"src":"3252:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":1334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:52:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1328,"id":1335,"nodeType":"Return","src":"3245:59:6"}]},"documentation":{"id":1316,"nodeType":"StructuredDocumentation","src":"2775:297:6","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with a\n `customRevert` function as a fallback when `target` reverts.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3086:12:6","parameters":{"id":1325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"mutability":"mutable","name":"target","nameLocation":"3116:6:6","nodeType":"VariableDeclaration","scope":1337,"src":"3108:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1317,"name":"address","nodeType":"ElementaryTypeName","src":"3108:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1320,"mutability":"mutable","name":"data","nameLocation":"3145:4:6","nodeType":"VariableDeclaration","scope":1337,"src":"3132:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1319,"name":"bytes","nodeType":"ElementaryTypeName","src":"3132:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1324,"mutability":"mutable","name":"customRevert","nameLocation":"3184:12:6","nodeType":"VariableDeclaration","scope":1337,"src":"3159:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1323,"nodeType":"FunctionTypeName","parameterTypes":{"id":1321,"nodeType":"ParameterList","parameters":[],"src":"3167:2:6"},"returnParameterTypes":{"id":1322,"nodeType":"ParameterList","parameters":[],"src":"3184:0:6"},"src":"3159:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"3098:104:6"},"returnParameters":{"id":1328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1337,"src":"3221:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1326,"name":"bytes","nodeType":"ElementaryTypeName","src":"3221:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3220:14:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1357,"nodeType":"FunctionDefinition","src":"3673:194:6","nodes":[],"body":{"id":1356,"nodeType":"Block","src":"3786:81:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":1350,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1340,"src":"3825:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1351,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"3833:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"3839:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1353,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1600,"src":"3846:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":1349,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1357,1408],"referencedDeclaration":1408,"src":"3803:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:57:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1348,"id":1355,"nodeType":"Return","src":"3796:64:6"}]},"documentation":{"id":1338,"nodeType":"StructuredDocumentation","src":"3317:351:6","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"3682:21:6","parameters":{"id":1345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1340,"mutability":"mutable","name":"target","nameLocation":"3712:6:6","nodeType":"VariableDeclaration","scope":1357,"src":"3704:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"3704:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1342,"mutability":"mutable","name":"data","nameLocation":"3733:4:6","nodeType":"VariableDeclaration","scope":1357,"src":"3720:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1341,"name":"bytes","nodeType":"ElementaryTypeName","src":"3720:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1344,"mutability":"mutable","name":"value","nameLocation":"3747:5:6","nodeType":"VariableDeclaration","scope":1357,"src":"3739:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1343,"name":"uint256","nodeType":"ElementaryTypeName","src":"3739:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3703:50:6"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1357,"src":"3772:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1346,"name":"bytes","nodeType":"ElementaryTypeName","src":"3772:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3771:14:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1408,"nodeType":"FunctionDefinition","src":"4215:483:6","nodes":[],"body":{"id":1407,"nodeType":"Block","src":"4405:293:6","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1375,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4427:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}],"id":1374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4419:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"4419:7:6","typeDescriptions":{}}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4433:7:6","memberName":"balance","nodeType":"MemberAccess","src":"4419:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1378,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1364,"src":"4443:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4419:29:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1388,"nodeType":"IfStatement","src":"4415:108:6","trueBody":{"id":1387,"nodeType":"Block","src":"4450:73:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":1383,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4506:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1625","typeString":"library Address"}],"id":1382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4498:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1381,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:6","typeDescriptions":{}}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1380,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"4471:26:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4471:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1386,"nodeType":"RevertStatement","src":"4464:48:6"}]}},{"assignments":[1390,1392],"declarations":[{"constant":false,"id":1390,"mutability":"mutable","name":"success","nameLocation":"4538:7:6","nodeType":"VariableDeclaration","scope":1407,"src":"4533:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1389,"name":"bool","nodeType":"ElementaryTypeName","src":"4533:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1392,"mutability":"mutable","name":"returndata","nameLocation":"4560:10:6","nodeType":"VariableDeclaration","scope":1407,"src":"4547:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1391,"name":"bytes","nodeType":"ElementaryTypeName","src":"4547:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1399,"initialValue":{"arguments":[{"id":1397,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"4600:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1393,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"4574:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4581:4:6","memberName":"call","nodeType":"MemberAccess","src":"4574:11:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1395,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1364,"src":"4593:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4574:25:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4574:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4532:73:6"},{"expression":{"arguments":[{"id":1401,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"4649:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1402,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"4657:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1403,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"4666:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1404,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1368,"src":"4678:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":1400,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"4622:26:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":1405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1372,"id":1406,"nodeType":"Return","src":"4615:76:6"}]},"documentation":{"id":1358,"nodeType":"StructuredDocumentation","src":"3873:337:6","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with a `customRevert` function as a fallback revert reason when `target` reverts.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4224:21:6","parameters":{"id":1369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1360,"mutability":"mutable","name":"target","nameLocation":"4263:6:6","nodeType":"VariableDeclaration","scope":1408,"src":"4255:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1359,"name":"address","nodeType":"ElementaryTypeName","src":"4255:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1362,"mutability":"mutable","name":"data","nameLocation":"4292:4:6","nodeType":"VariableDeclaration","scope":1408,"src":"4279:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1361,"name":"bytes","nodeType":"ElementaryTypeName","src":"4279:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1364,"mutability":"mutable","name":"value","nameLocation":"4314:5:6","nodeType":"VariableDeclaration","scope":1408,"src":"4306:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1363,"name":"uint256","nodeType":"ElementaryTypeName","src":"4306:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1368,"mutability":"mutable","name":"customRevert","nameLocation":"4354:12:6","nodeType":"VariableDeclaration","scope":1408,"src":"4329:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1367,"nodeType":"FunctionTypeName","parameterTypes":{"id":1365,"nodeType":"ParameterList","parameters":[],"src":"4337:2:6"},"returnParameterTypes":{"id":1366,"nodeType":"ParameterList","parameters":[],"src":"4354:0:6"},"src":"4329:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"4245:127:6"},"returnParameters":{"id":1372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1408,"src":"4391:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1370,"name":"bytes","nodeType":"ElementaryTypeName","src":"4391:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4390:14:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1425,"nodeType":"FunctionDefinition","src":"4875:171:6","nodes":[],"body":{"id":1424,"nodeType":"Block","src":"4975:71:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":1419,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1411,"src":"5011:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1420,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"5019:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1421,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1600,"src":"5025:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":1418,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[1425,1456],"referencedDeclaration":1456,"src":"4992:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,function () view) view returns (bytes memory)"}},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4992:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1417,"id":1423,"nodeType":"Return","src":"4985:54:6"}]},"documentation":{"id":1409,"nodeType":"StructuredDocumentation","src":"4704:166:6","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"4884:18:6","parameters":{"id":1414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1411,"mutability":"mutable","name":"target","nameLocation":"4911:6:6","nodeType":"VariableDeclaration","scope":1425,"src":"4903:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1410,"name":"address","nodeType":"ElementaryTypeName","src":"4903:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1413,"mutability":"mutable","name":"data","nameLocation":"4932:4:6","nodeType":"VariableDeclaration","scope":1425,"src":"4919:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1412,"name":"bytes","nodeType":"ElementaryTypeName","src":"4919:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4902:35:6"},"returnParameters":{"id":1417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1425,"src":"4961:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1415,"name":"bytes","nodeType":"ElementaryTypeName","src":"4961:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4960:14:6"},"scope":1625,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1456,"nodeType":"FunctionDefinition","src":"5230:337:6","nodes":[],"body":{"id":1455,"nodeType":"Block","src":"5399:168:6","nodes":[],"statements":[{"assignments":[1440,1442],"declarations":[{"constant":false,"id":1440,"mutability":"mutable","name":"success","nameLocation":"5415:7:6","nodeType":"VariableDeclaration","scope":1455,"src":"5410:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1439,"name":"bool","nodeType":"ElementaryTypeName","src":"5410:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1442,"mutability":"mutable","name":"returndata","nameLocation":"5437:10:6","nodeType":"VariableDeclaration","scope":1455,"src":"5424:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1441,"name":"bytes","nodeType":"ElementaryTypeName","src":"5424:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1447,"initialValue":{"arguments":[{"id":1445,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1430,"src":"5469:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1443,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"5451:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5458:10:6","memberName":"staticcall","nodeType":"MemberAccess","src":"5451:17:6","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5409:65:6"},{"expression":{"arguments":[{"id":1449,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"5518:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1450,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"5526:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1451,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"5535:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1452,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5547:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":1448,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"5491:26:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5491:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1438,"id":1454,"nodeType":"Return","src":"5484:76:6"}]},"documentation":{"id":1426,"nodeType":"StructuredDocumentation","src":"5052:173:6","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5239:18:6","parameters":{"id":1435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1428,"mutability":"mutable","name":"target","nameLocation":"5275:6:6","nodeType":"VariableDeclaration","scope":1456,"src":"5267:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1427,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1430,"mutability":"mutable","name":"data","nameLocation":"5304:4:6","nodeType":"VariableDeclaration","scope":1456,"src":"5291:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1429,"name":"bytes","nodeType":"ElementaryTypeName","src":"5291:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1434,"mutability":"mutable","name":"customRevert","nameLocation":"5343:12:6","nodeType":"VariableDeclaration","scope":1456,"src":"5318:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1433,"nodeType":"FunctionTypeName","parameterTypes":{"id":1431,"nodeType":"ParameterList","parameters":[],"src":"5326:2:6"},"returnParameterTypes":{"id":1432,"nodeType":"ParameterList","parameters":[],"src":"5343:0:6"},"src":"5318:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"5257:104:6"},"returnParameters":{"id":1438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1456,"src":"5385:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1436,"name":"bytes","nodeType":"ElementaryTypeName","src":"5385:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5384:14:6"},"scope":1625,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1473,"nodeType":"FunctionDefinition","src":"5746:170:6","nodes":[],"body":{"id":1472,"nodeType":"Block","src":"5843:73:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":1467,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"5881:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1468,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"5889:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1469,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1600,"src":"5895:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":1466,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[1473,1504],"referencedDeclaration":1504,"src":"5860:20:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,function () view) returns (bytes memory)"}},"id":1470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5860:49:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1465,"id":1471,"nodeType":"Return","src":"5853:56:6"}]},"documentation":{"id":1457,"nodeType":"StructuredDocumentation","src":"5573:168:6","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"5755:20:6","parameters":{"id":1462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"mutability":"mutable","name":"target","nameLocation":"5784:6:6","nodeType":"VariableDeclaration","scope":1473,"src":"5776:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1458,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1461,"mutability":"mutable","name":"data","nameLocation":"5805:4:6","nodeType":"VariableDeclaration","scope":1473,"src":"5792:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1460,"name":"bytes","nodeType":"ElementaryTypeName","src":"5792:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5775:35:6"},"returnParameters":{"id":1465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1473,"src":"5829:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1463,"name":"bytes","nodeType":"ElementaryTypeName","src":"5829:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5828:14:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1504,"nodeType":"FunctionDefinition","src":"6102:336:6","nodes":[],"body":{"id":1503,"nodeType":"Block","src":"6268:170:6","nodes":[],"statements":[{"assignments":[1488,1490],"declarations":[{"constant":false,"id":1488,"mutability":"mutable","name":"success","nameLocation":"6284:7:6","nodeType":"VariableDeclaration","scope":1503,"src":"6279:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1487,"name":"bool","nodeType":"ElementaryTypeName","src":"6279:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1490,"mutability":"mutable","name":"returndata","nameLocation":"6306:10:6","nodeType":"VariableDeclaration","scope":1503,"src":"6293:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1489,"name":"bytes","nodeType":"ElementaryTypeName","src":"6293:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1495,"initialValue":{"arguments":[{"id":1493,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"6340:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1491,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"6320:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6327:12:6","memberName":"delegatecall","nodeType":"MemberAccess","src":"6320:19:6","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6320:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6278:67:6"},{"expression":{"arguments":[{"id":1497,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"6389:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1498,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1488,"src":"6397:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1499,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"6406:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1500,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"6418:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":1496,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"6362:26:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1486,"id":1502,"nodeType":"Return","src":"6355:76:6"}]},"documentation":{"id":1474,"nodeType":"StructuredDocumentation","src":"5922:175:6","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6111:20:6","parameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1476,"mutability":"mutable","name":"target","nameLocation":"6149:6:6","nodeType":"VariableDeclaration","scope":1504,"src":"6141:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1475,"name":"address","nodeType":"ElementaryTypeName","src":"6141:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1478,"mutability":"mutable","name":"data","nameLocation":"6178:4:6","nodeType":"VariableDeclaration","scope":1504,"src":"6165:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1477,"name":"bytes","nodeType":"ElementaryTypeName","src":"6165:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1482,"mutability":"mutable","name":"customRevert","nameLocation":"6217:12:6","nodeType":"VariableDeclaration","scope":1504,"src":"6192:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1481,"nodeType":"FunctionTypeName","parameterTypes":{"id":1479,"nodeType":"ParameterList","parameters":[],"src":"6200:2:6"},"returnParameterTypes":{"id":1480,"nodeType":"ParameterList","parameters":[],"src":"6217:0:6"},"src":"6192:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"6131:104:6"},"returnParameters":{"id":1486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1504,"src":"6254:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1484,"name":"bytes","nodeType":"ElementaryTypeName","src":"6254:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6253:14:6"},"scope":1625,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1549,"nodeType":"FunctionDefinition","src":"6737:692:6","nodes":[],"body":{"id":1548,"nodeType":"Block","src":"6942:487:6","nodes":[],"statements":[{"condition":{"id":1520,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"6956:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1546,"nodeType":"Block","src":"7365:58:6","statements":[{"expression":{"arguments":[{"id":1542,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"7387:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1543,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1515,"src":"7399:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":1541,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1624,"src":"7379:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$__$","typeString":"function (bytes memory,function () view) view"}},"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7379:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1545,"nodeType":"ExpressionStatement","src":"7379:33:6"}]},"id":1547,"nodeType":"IfStatement","src":"6952:471:6","trueBody":{"id":1540,"nodeType":"Block","src":"6965:394:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1521,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"6983:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6994:6:6","memberName":"length","nodeType":"MemberAccess","src":"6983:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7004:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6983:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1537,"nodeType":"IfStatement","src":"6979:339:6","trueBody":{"id":1536,"nodeType":"Block","src":"7007:311:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1525,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"7207:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7214:4:6","memberName":"code","nodeType":"MemberAccess","src":"7207:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7219:6:6","memberName":"length","nodeType":"MemberAccess","src":"7207:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7207:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1535,"nodeType":"IfStatement","src":"7203:101:6","trueBody":{"id":1534,"nodeType":"Block","src":"7232:72:6","statements":[{"errorCall":{"arguments":[{"id":1531,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"7278:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1530,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"7261:16:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1533,"nodeType":"RevertStatement","src":"7254:31:6"}]}}]}},{"expression":{"id":1538,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"7338:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1519,"id":1539,"nodeType":"Return","src":"7331:17:6"}]}}]},"documentation":{"id":1505,"nodeType":"StructuredDocumentation","src":"6444:288:6","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided `customRevert`) in case of unsuccessful call or if target was not a contract.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"6746:26:6","parameters":{"id":1516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1507,"mutability":"mutable","name":"target","nameLocation":"6790:6:6","nodeType":"VariableDeclaration","scope":1549,"src":"6782:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"6782:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1509,"mutability":"mutable","name":"success","nameLocation":"6811:7:6","nodeType":"VariableDeclaration","scope":1549,"src":"6806:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1508,"name":"bool","nodeType":"ElementaryTypeName","src":"6806:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1511,"mutability":"mutable","name":"returndata","nameLocation":"6841:10:6","nodeType":"VariableDeclaration","scope":1549,"src":"6828:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1510,"name":"bytes","nodeType":"ElementaryTypeName","src":"6828:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1515,"mutability":"mutable","name":"customRevert","nameLocation":"6886:12:6","nodeType":"VariableDeclaration","scope":1549,"src":"6861:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1514,"nodeType":"FunctionTypeName","parameterTypes":{"id":1512,"nodeType":"ParameterList","parameters":[],"src":"6869:2:6"},"returnParameterTypes":{"id":1513,"nodeType":"ParameterList","parameters":[],"src":"6886:0:6"},"src":"6861:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"6772:132:6"},"returnParameters":{"id":1519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1549,"src":"6928:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1517,"name":"bytes","nodeType":"ElementaryTypeName","src":"6928:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6927:14:6"},"scope":1625,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1566,"nodeType":"FunctionDefinition","src":"7655:178:6","nodes":[],"body":{"id":1565,"nodeType":"Block","src":"7757:76:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":1560,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1552,"src":"7791:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1561,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1554,"src":"7800:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1562,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1600,"src":"7812:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":1559,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[1566,1592],"referencedDeclaration":1592,"src":"7774:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,function () view) view returns (bytes memory)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7774:52:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1558,"id":1564,"nodeType":"Return","src":"7767:59:6"}]},"documentation":{"id":1550,"nodeType":"StructuredDocumentation","src":"7435:215:6","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or with a default revert error.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7664:16:6","parameters":{"id":1555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1552,"mutability":"mutable","name":"success","nameLocation":"7686:7:6","nodeType":"VariableDeclaration","scope":1566,"src":"7681:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1551,"name":"bool","nodeType":"ElementaryTypeName","src":"7681:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1554,"mutability":"mutable","name":"returndata","nameLocation":"7708:10:6","nodeType":"VariableDeclaration","scope":1566,"src":"7695:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1553,"name":"bytes","nodeType":"ElementaryTypeName","src":"7695:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7680:39:6"},"returnParameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1566,"src":"7743:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1556,"name":"bytes","nodeType":"ElementaryTypeName","src":"7743:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7742:14:6"},"scope":1625,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1592,"nodeType":"FunctionDefinition","src":"8150:306:6","nodes":[],"body":{"id":1591,"nodeType":"Block","src":"8321:135:6","nodes":[],"statements":[{"condition":{"id":1580,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"8335:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1589,"nodeType":"Block","src":"8392:58:6","statements":[{"expression":{"arguments":[{"id":1585,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"8414:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1586,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"8426:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":1584,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1624,"src":"8406:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$__$","typeString":"function (bytes memory,function () view) view"}},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8406:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1588,"nodeType":"ExpressionStatement","src":"8406:33:6"}]},"id":1590,"nodeType":"IfStatement","src":"8331:119:6","trueBody":{"id":1583,"nodeType":"Block","src":"8344:42:6","statements":[{"expression":{"id":1581,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"8365:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1579,"id":1582,"nodeType":"Return","src":"8358:17:6"}]}}]},"documentation":{"id":1567,"nodeType":"StructuredDocumentation","src":"7839:306:6","text":" @dev Same as {xref-Address-verifyCallResult-bool-bytes-}[`verifyCallResult`], but with a\n `customRevert` function as a fallback when `success` is `false`.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8159:16:6","parameters":{"id":1576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1569,"mutability":"mutable","name":"success","nameLocation":"8190:7:6","nodeType":"VariableDeclaration","scope":1592,"src":"8185:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1568,"name":"bool","nodeType":"ElementaryTypeName","src":"8185:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1571,"mutability":"mutable","name":"returndata","nameLocation":"8220:10:6","nodeType":"VariableDeclaration","scope":1592,"src":"8207:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1570,"name":"bytes","nodeType":"ElementaryTypeName","src":"8207:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1575,"mutability":"mutable","name":"customRevert","nameLocation":"8265:12:6","nodeType":"VariableDeclaration","scope":1592,"src":"8240:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1574,"nodeType":"FunctionTypeName","parameterTypes":{"id":1572,"nodeType":"ParameterList","parameters":[],"src":"8248:2:6"},"returnParameterTypes":{"id":1573,"nodeType":"ParameterList","parameters":[],"src":"8265:0:6"},"src":"8240:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"8175:108:6"},"returnParameters":{"id":1579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1592,"src":"8307:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1577,"name":"bytes","nodeType":"ElementaryTypeName","src":"8307:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8306:14:6"},"scope":1625,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1600,"nodeType":"FunctionDefinition","src":"8572:80:6","nodes":[],"body":{"id":1599,"nodeType":"Block","src":"8611:41:6","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1596,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"8628:15:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8628:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1598,"nodeType":"RevertStatement","src":"8621:24:6"}]},"documentation":{"id":1593,"nodeType":"StructuredDocumentation","src":"8462:105:6","text":" @dev Default reverting function when no `customRevert` is provided in a function call."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultRevert","nameLocation":"8581:13:6","parameters":{"id":1594,"nodeType":"ParameterList","parameters":[],"src":"8594:2:6"},"returnParameters":{"id":1595,"nodeType":"ParameterList","parameters":[],"src":"8611:0:6"},"scope":1625,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1624,"nodeType":"FunctionDefinition","src":"8658:583:6","nodes":[],"body":{"id":1623,"nodeType":"Block","src":"8752:489:6","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1609,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"8828:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8839:6:6","memberName":"length","nodeType":"MemberAccess","src":"8828:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8848:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8828:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1621,"nodeType":"Block","src":"9158:77:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1615,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1606,"src":"9172:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1617,"nodeType":"ExpressionStatement","src":"9172:14:6"},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1618,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"9207:15:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1620,"nodeType":"RevertStatement","src":"9200:24:6"}]},"id":1622,"nodeType":"IfStatement","src":"8824:411:6","trueBody":{"id":1614,"nodeType":"Block","src":"8851:301:6","statements":[{"AST":{"nodeType":"YulBlock","src":"9009:133:6","statements":[{"nodeType":"YulVariableDeclaration","src":"9027:40:6","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9056:10:6"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9050:5:6"},"nodeType":"YulFunctionCall","src":"9050:17:6"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9031:15:6","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9095:2:6","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9099:10:6"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9091:3:6"},"nodeType":"YulFunctionCall","src":"9091:19:6"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9112:15:6"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9084:6:6"},"nodeType":"YulFunctionCall","src":"9084:44:6"},"nodeType":"YulExpressionStatement","src":"9084:44:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1602,"isOffset":false,"isSlot":false,"src":"9056:10:6","valueSize":1},{"declaration":1602,"isOffset":false,"isSlot":false,"src":"9099:10:6","valueSize":1}],"id":1613,"nodeType":"InlineAssembly","src":"9000:142:6"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8667:7:6","parameters":{"id":1607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1602,"mutability":"mutable","name":"returndata","nameLocation":"8688:10:6","nodeType":"VariableDeclaration","scope":1624,"src":"8675:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1601,"name":"bytes","nodeType":"ElementaryTypeName","src":"8675:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1606,"mutability":"mutable","name":"customRevert","nameLocation":"8725:12:6","nodeType":"VariableDeclaration","scope":1624,"src":"8700:37:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":1605,"nodeType":"FunctionTypeName","parameterTypes":{"id":1603,"nodeType":"ParameterList","parameters":[],"src":"8708:2:6"},"returnParameterTypes":{"id":1604,"nodeType":"ParameterList","parameters":[],"src":"8725:0:6"},"src":"8700:37:6","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"8674:64:6"},"returnParameters":{"id":1608,"nodeType":"ParameterList","parameters":[],"src":"8752:0:6"},"scope":1625,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":1243,"nodeType":"StructuredDocumentation","src":"127:67:6","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[1625],"name":"Address","nameLocation":"203:7:6","scope":1626,"usedErrors":[1248,1253,1256]}],"license":"MIT"},"id":6} \ No newline at end of file diff --git a/contracts/out/Checkpoint.sol/Checkpoint.json b/contracts/out/Checkpoint.sol/Checkpoint.json deleted file mode 100644 index b6afe5a775..0000000000 --- a/contracts/out/Checkpoint.sol/Checkpoint.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Checkpoint.sol","id":16173,"exportedSymbols":{"BottomUpCheckpoint":[16133],"CheckpointInfo":[16149],"CrossMsg":[16155],"IPCAddress":[16327],"ParentFinality":[16116],"StorableMsg":[16172],"SubnetID":[16209]},"nodeType":"SourceUnit","src":"46:2364:51","nodes":[{"id":16108,"nodeType":"PragmaDirective","src":"46:23:51","nodes":[],"literals":["solidity","0.8",".19"]},{"id":16111,"nodeType":"ImportDirective","src":"71:50:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":16173,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":16109,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"79:8:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16110,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"89:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16116,"nodeType":"StructDefinition","src":"189:68:51","nodes":[],"canonicalName":"ParentFinality","members":[{"constant":false,"id":16113,"mutability":"mutable","name":"height","nameLocation":"225:6:51","nodeType":"VariableDeclaration","scope":16116,"src":"217:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16112,"name":"uint256","nodeType":"ElementaryTypeName","src":"217:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16115,"mutability":"mutable","name":"blockHash","nameLocation":"245:9:51","nodeType":"VariableDeclaration","scope":16116,"src":"237:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ParentFinality","nameLocation":"196:14:51","scope":16173,"visibility":"public"},{"id":16133,"nodeType":"StructDefinition","src":"300:1161:51","nodes":[],"canonicalName":"BottomUpCheckpoint","members":[{"constant":false,"id":16120,"mutability":"mutable","name":"subnetID","nameLocation":"558:8:51","nodeType":"VariableDeclaration","scope":16133,"src":"549:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":16119,"nodeType":"UserDefinedTypeName","pathNode":{"id":16118,"name":"SubnetID","nameLocations":["549:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"549:8:51"},"referencedDeclaration":16209,"src":"549:8:51","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":16123,"mutability":"mutable","name":"blockHeight","nameLocation":"725:11:51","nodeType":"VariableDeclaration","scope":16133,"src":"718:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16122,"name":"uint64","nodeType":"ElementaryTypeName","src":"718:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16126,"mutability":"mutable","name":"blockHash","nameLocation":"786:9:51","nodeType":"VariableDeclaration","scope":16133,"src":"778:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"778:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16129,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1058:23:51","nodeType":"VariableDeclaration","scope":16133,"src":"1051:30:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16128,"name":"uint64","nodeType":"ElementaryTypeName","src":"1051:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16132,"mutability":"mutable","name":"crossMessagesHash","nameLocation":"1441:17:51","nodeType":"VariableDeclaration","scope":16133,"src":"1433:25:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"BottomUpCheckpoint","nameLocation":"307:18:51","scope":16173,"visibility":"public"},{"id":16149,"nodeType":"StructDefinition","src":"1463:486:51","nodes":[],"canonicalName":"CheckpointInfo","members":[{"constant":false,"id":16136,"mutability":"mutable","name":"hash","nameLocation":"1564:4:51","nodeType":"VariableDeclaration","scope":16149,"src":"1556:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1556:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16139,"mutability":"mutable","name":"rootHash","nameLocation":"1683:8:51","nodeType":"VariableDeclaration","scope":16149,"src":"1675:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1675:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16142,"mutability":"mutable","name":"threshold","nameLocation":"1783:9:51","nodeType":"VariableDeclaration","scope":16149,"src":"1775:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16141,"name":"uint256","nodeType":"ElementaryTypeName","src":"1775:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16145,"mutability":"mutable","name":"currentWeight","nameLocation":"1857:13:51","nodeType":"VariableDeclaration","scope":16149,"src":"1849:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16144,"name":"uint256","nodeType":"ElementaryTypeName","src":"1849:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16148,"mutability":"mutable","name":"reached","nameLocation":"1939:7:51","nodeType":"VariableDeclaration","scope":16149,"src":"1934:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16147,"name":"bool","nodeType":"ElementaryTypeName","src":"1934:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CheckpointInfo","nameLocation":"1470:14:51","scope":16173,"visibility":"public"},{"id":16155,"nodeType":"StructDefinition","src":"2192:62:51","nodes":[],"canonicalName":"CrossMsg","members":[{"constant":false,"id":16152,"mutability":"mutable","name":"message","nameLocation":"2226:7:51","nodeType":"VariableDeclaration","scope":16155,"src":"2214:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"},"typeName":{"id":16151,"nodeType":"UserDefinedTypeName","pathNode":{"id":16150,"name":"StorableMsg","nameLocations":["2214:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":16172,"src":"2214:11:51"},"referencedDeclaration":16172,"src":"2214:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":16154,"mutability":"mutable","name":"wrapped","nameLocation":"2244:7:51","nodeType":"VariableDeclaration","scope":16155,"src":"2239:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16153,"name":"bool","nodeType":"ElementaryTypeName","src":"2239:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CrossMsg","nameLocation":"2199:8:51","scope":16173,"visibility":"public"},{"id":16172,"nodeType":"StructDefinition","src":"2256:153:51","nodes":[],"canonicalName":"StorableMsg","members":[{"constant":false,"id":16158,"mutability":"mutable","name":"from","nameLocation":"2292:4:51","nodeType":"VariableDeclaration","scope":16172,"src":"2281:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":16157,"nodeType":"UserDefinedTypeName","pathNode":{"id":16156,"name":"IPCAddress","nameLocations":["2281:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":16327,"src":"2281:10:51"},"referencedDeclaration":16327,"src":"2281:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":16161,"mutability":"mutable","name":"to","nameLocation":"2313:2:51","nodeType":"VariableDeclaration","scope":16172,"src":"2302:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":16160,"nodeType":"UserDefinedTypeName","pathNode":{"id":16159,"name":"IPCAddress","nameLocations":["2302:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":16327,"src":"2302:10:51"},"referencedDeclaration":16327,"src":"2302:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":16163,"mutability":"mutable","name":"value","nameLocation":"2329:5:51","nodeType":"VariableDeclaration","scope":16172,"src":"2321:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16162,"name":"uint256","nodeType":"ElementaryTypeName","src":"2321:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16165,"mutability":"mutable","name":"nonce","nameLocation":"2347:5:51","nodeType":"VariableDeclaration","scope":16172,"src":"2340:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16164,"name":"uint64","nodeType":"ElementaryTypeName","src":"2340:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16167,"mutability":"mutable","name":"method","nameLocation":"2365:6:51","nodeType":"VariableDeclaration","scope":16172,"src":"2358:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2358:6:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":16169,"mutability":"mutable","name":"params","nameLocation":"2383:6:51","nodeType":"VariableDeclaration","scope":16172,"src":"2377:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16168,"name":"bytes","nodeType":"ElementaryTypeName","src":"2377:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16171,"mutability":"mutable","name":"fee","nameLocation":"2403:3:51","nodeType":"VariableDeclaration","scope":16172,"src":"2395:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16170,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StorableMsg","nameLocation":"2263:11:51","scope":16173,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":51} \ No newline at end of file diff --git a/contracts/out/ConsensusType.sol/ConsensusType.json b/contracts/out/ConsensusType.sol/ConsensusType.json deleted file mode 100644 index 699bff4862..0000000000 --- a/contracts/out/ConsensusType.sol/ConsensusType.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/ConsensusType.sol","id":6034,"exportedSymbols":{"ConsensusType":[6033]},"nodeType":"SourceUnit","src":"46:128:20","nodes":[{"id":6031,"nodeType":"PragmaDirective","src":"46:23:20","nodes":[],"literals":["solidity","0.8",".19"]},{"id":6033,"nodeType":"EnumDefinition","src":"136:37:20","nodes":[],"canonicalName":"ConsensusType","members":[{"id":6032,"name":"Fendermint","nameLocation":"161:10:20","nodeType":"EnumValue","src":"161:10:20"}],"name":"ConsensusType","nameLocation":"141:13:20"}],"license":"MIT OR Apache-2.0"},"id":20} \ No newline at end of file diff --git a/contracts/out/Constants.sol/Constants.json b/contracts/out/Constants.sol/Constants.json deleted file mode 100644 index fd346ed59c..0000000000 --- a/contracts/out/Constants.sol/Constants.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/constants/Constants.sol","id":5557,"exportedSymbols":{"ADDRESS_CODEHASH":[5550],"BURNT_FUNDS_ACTOR":[5535],"EMPTY_BYTES":[5547],"EMPTY_HASH":[5541],"METHOD_SEND":[5556]},"nodeType":"SourceUnit","src":"46:303:17","nodes":[{"id":5529,"nodeType":"PragmaDirective","src":"46:23:17","nodes":[],"literals":["solidity","0.8",".19"]},{"id":5535,"nodeType":"VariableDeclaration","src":"71:48:17","nodes":[],"constant":true,"mutability":"constant","name":"BURNT_FUNDS_ACTOR","nameLocation":"88:17:17","scope":5557,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5530,"name":"address","nodeType":"ElementaryTypeName","src":"71:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3939","id":5533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"116:2:17","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"}],"id":5532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"108:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5531,"name":"address","nodeType":"ElementaryTypeName","src":"108:7:17","typeDescriptions":{}}},"id":5534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108:11:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5541,"nodeType":"VariableDeclaration","src":"121:41:17","nodes":[],"constant":true,"mutability":"constant","name":"EMPTY_HASH","nameLocation":"138:10:17","scope":5557,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"","id":5539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159:2:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"151:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151:7:17","typeDescriptions":{}}},"id":5540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151:11:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5547,"nodeType":"VariableDeclaration","src":"164:38:17","nodes":[],"constant":true,"mutability":"constant","name":"EMPTY_BYTES","nameLocation":"179:11:17","scope":5557,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5542,"name":"bytes","nodeType":"ElementaryTypeName","src":"164:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"","id":5545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"199:2:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"193:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5543,"name":"bytes","nodeType":"ElementaryTypeName","src":"193:5:17","typeDescriptions":{}}},"id":5546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"193:9:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":5550,"nodeType":"VariableDeclaration","src":"204:102:17","nodes":[],"constant":true,"mutability":"constant","name":"ADDRESS_CODEHASH","nameLocation":"221:16:17","scope":5557,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730","id":5549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"240:66:17","typeDescriptions":{"typeIdentifier":"t_rational_89477152217924674838424037953991966239322087453347756267410168184682657981552_by_1","typeString":"int_const 8947...(69 digits omitted)...1552"},"value":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"},"visibility":"internal"},{"id":5556,"nodeType":"VariableDeclaration","src":"308:39:17","nodes":[],"constant":true,"mutability":"constant","name":"METHOD_SEND","nameLocation":"324:11:17","scope":5557,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"308:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"hexValue":"30","id":5554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"338:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":5552,"name":"bytes4","nodeType":"ElementaryTypeName","src":"338:6:17","typeDescriptions":{}}},"id":5555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"338:9:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"license":"MIT OR Apache-2.0"},"id":17} \ No newline at end of file diff --git a/contracts/out/Context.sol/Context.json b/contracts/out/Context.sol/Context.json deleted file mode 100644 index 659130058e..0000000000 --- a/contracts/out/Context.sol/Context.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","id":1648,"exportedSymbols":{"Context":[1647]},"nodeType":"SourceUnit","src":"86:759:7","nodes":[{"id":1627,"nodeType":"PragmaDirective","src":"86:24:7","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":1647,"nodeType":"ContractDefinition","src":"609:235:7","nodes":[{"id":1637,"nodeType":"FunctionDefinition","src":"641:96:7","nodes":[],"body":{"id":1636,"nodeType":"Block","src":"703:34:7","nodes":[],"statements":[{"expression":{"expression":{"id":1633,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"720:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:7","memberName":"sender","nodeType":"MemberAccess","src":"720:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1632,"id":1635,"nodeType":"Return","src":"713:17:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"650:10:7","parameters":{"id":1629,"nodeType":"ParameterList","parameters":[],"src":"660:2:7"},"returnParameters":{"id":1632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1637,"src":"694:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1630,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"693:9:7"},"scope":1647,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":1646,"nodeType":"FunctionDefinition","src":"743:99:7","nodes":[],"body":{"id":1645,"nodeType":"Block","src":"810:32:7","nodes":[],"statements":[{"expression":{"expression":{"id":1642,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"827:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"831:4:7","memberName":"data","nodeType":"MemberAccess","src":"827:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1641,"id":1644,"nodeType":"Return","src":"820:15:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"752:8:7","parameters":{"id":1638,"nodeType":"ParameterList","parameters":[],"src":"760:2:7"},"returnParameters":{"id":1641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1646,"src":"794:14:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1639,"name":"bytes","nodeType":"ElementaryTypeName","src":"794:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"793:16:7"},"scope":1647,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1628,"nodeType":"StructuredDocumentation","src":"112:496:7","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[1647],"name":"Context","nameLocation":"627:7:7","scope":1648,"usedErrors":[]}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/contracts/out/CrossMsgHelper.sol/CrossMsgHelper.json b/contracts/out/CrossMsgHelper.sol/CrossMsgHelper.json deleted file mode 100644 index ae3ee2d1cb..0000000000 --- a/contracts/out/CrossMsgHelper.sol/CrossMsgHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"createFundMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"createReleaseMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"isSorted","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c576115be90816100228239308160600152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f578063898414751461008a578063b88dfdf61461005d578063ba094234146100585763f230beb21461005357600080fd5b610930565b610804565b307f000000000000000000000000000000000000000000000000000000000000000003610627575b600080fd5b610574565b6020366003190112610085576001600160401b03600435116100855736602360043501121561008557600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008557602460043501915b60248260051b600435010183106101285761012461011485610c38565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008557602319916040600435830136038401126100855760405190610159826102ae565b602483600435010135936001600160401b0385116100855760e09085856004350101360301126100855761018b61030a565b9160248585600435010101356001600160401b038111610085576101bb90602436918888600435010101016104ed565b83526001600160401b03604486866004350101013511610085576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b038111610085576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008557565b35906103368261034f565b6001600160a01b0381160361008557565b91906040838203126100855760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008557019280601f850112156100855783356103d181610338565b946103df60405196876102e9565b818652848087019260051b8201019283116100855784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008557565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b829481845281830111610085578281602093846000960137010152565b9080601f830112156100855781602061049e9335910161044c565b90565b919060408382031261008557604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b038311610085576020926104e89201610483565b910152565b91906040838203126100855760405190610506826102ae565b81938035916001600160401b0392838111610085578161052791840161037c565b84526020820135928311610085576020926104e892016104a1565b6001600160e01b031981160361008557565b359061033682610542565b8015150361008557565b35906103368261055f565b6020366003190112610085576001600160401b036004358181116100855736602382011215610085578060040135918211610085573660248360051b830101116100855760209160246105c7920161132f565b6040519015158152f35b908160409103126100855790565b60005b8381106105f25750506000910152565b81810151838201526020016105e2565b9060209161061b815180928185528580860191016105df565b601f01601f1916010190565b6020366003190112610085576004356001600160401b0381116100855761065d6106586101249236906004016105d1565b611046565b604051918291602083526020830190610602565b60a0600319820112610085576001600160401b0391600435838111610085578261069d916004016105d1565b926024356106aa8161036b565b92604435918211610085576106c1916004016105d1565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061070a575050505090565b83516001600160a01b0316855293810193928101926001016106fc565b6040602061049e93816107418551858452858401906106cc565b940151908281860391015260ff81511684520151918160208201520190610602565b61049e906020815260406020845194828285015260c06107f2610793885160e06060890152610140880190610727565b6107ae858a015191605f1992838a83030160808b0152610727565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a01519088830301610100890152610602565b96015161012085015201511515910152565b61082b61084d61086c61081636610671565b93959192610825979197610a3a565b50611395565b94610834610329565b9561083f368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561092b57610124968593610903575b506108ae906108a4610329565b93845236906104a1565b60208301526108bb610b88565b916108c461030a565b9586526020860152604085015282606085015282608085015260a084015260c08301526108ef610329565b918252602082015260405191829182610763565b6108ae919350610924903d8088833e61091c81836102e9565b810190610aa5565b9290610897565b610b71565b61097361093c36610671565b9194929390610949610a3a565b50610954368361037c565b95604051966308c7427760e11b88528780600097889360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561092b576101249786976109d8575b50906109ac6108ae92611395565b6109b4610329565b97885260208801526109cf6109c7610329565b94369061037c565b845236906104a1565b6108ae929197506109f56109ac913d808a833e61091c81836102e9565b9791925061099e565b60405190610a0b826102ae565b6060602083600081520152565b60405190610a25826102ae565b81610a2e6109fe565b815260206104e86109fe565b60405190610a47826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610a72610a18565b8152610a7c610a18565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b90602080838303126100855782516001600160401b03938482116100855701926040848403126100855760405193610adc856102ae565b8051610ae78161034f565b85528281015191821161008557019180601f84011215610085578251610b0c81610338565b93610b1a60405195866102e9565b818552838086019260051b8201019283116100855783809101915b838310610b46575050505082015290565b81908351610b538161036b565b8152019101908390610b35565b90602061049e9281815201906106cc565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c1b575050509360408381938161049e97980151908281860391015260ff81511684520151938201520190610602565b82516001600160a01b031688529685019691850191600101610be7565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610c8c57505050505050610c86925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d408b519183808451948a845289610d2e8c8851610ccc60e09182848b01526101208a0190610bab565b906001600160401b03610cf0888d015193603f19948c898782850301910152610bab565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b0151918984030190890152610602565b96015161010085015201511515910152565b990194019401918896949197959397610c66565b90359060de1981360301821215610085570190565b903590603e1981360301821215610085570190565b3561049e81610542565b903590601e198136030182121561008557018035906001600160401b0382116100855760200191813603831361008557565b3561049e8161055f565b9035603e1982360301811215610085570190565b9035601e19823603018112156100855701602081359101916001600160401b03821161008557813603831361008557565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e4c61049e9360ff610e3f82610423565b1684526020810190610dd8565b9190928160208201520191610e09565b919091610e698180610dc4565b604084526080840193813592610e7e8461034f565b6001600160401b03809416604083015260209283810135601e19823603018112156100855701958387359701948711610085578660051b36038513610085578690604060608501525260a08201936000965b808810610ef857505061049e9495508083610eec920190610dc4565b91818403910152610e2a565b909484806001928835610f0a8161036b565b848060a01b0316815201960197019690610ed0565b6020815281359060de1983360301821215610085576040610fff60208561049e950195838286015260c0610ff0610f6b610f598a80610dc4565b60e060608a0152610140890190610e5c565b610f8e610f7a868c018c610dc4565b91605f1992838b83030160808c0152610e5c565b90878b013560a08a01526001600160401b0360608c0135610fae8161034f565b16848a0152610fd3610fc260808d01610554565b6001600160e01b03191660e08b0152565b610fe060a08c018c610dd8565b918a8403016101008b0152610e09565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b16602083015261103681518092602086860191016105df565b81010360048101855201836102e9565b60406110528280610d54565b013561108661108161107c61107761106d61106d8780610d54565b6020810190610d69565b610b7d565b6114f0565b611161565b916001600160e01b03196110a5608061109f8480610d54565b01610d7e565b161561114657806110d06110c96110bf836110f695610d54565b60a0810190610d88565b369161044c565b906110dd60208201610dba565b611110575b608061109f826110f193610d54565b611006565b9080611106575061049e916112c8565b9061049e926112a0565b90506110f1608061109f60405161113c8161112e8760208301610f1f565b03601f1981018352826102e9565b93925050506110e2565b50611159916001600160a01b031661124b565b61049e610b88565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111a6575b156111a257611194906111b9565b9061119d575090565b905090565b5090565b50506001600160401b0381166001611186565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff160361120f575b83158015611204575b6111fd5750565b9250829150565b5060163d14156111f6565b600093509150816111ed565b3d15611246573d9061122c82610431565b9161123a60405193846102e9565b82523d6000602084013e565b606090565b814710611288576000918291829182916001600160a01b03165af161126e61121b565b501561127657565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b908247106112885760008161049e946020839451920190855af16112c261121b565b916112e1565b60008061049e9360208151910182855af16112c261121b565b901561131f578151156112f2575090565b803b156112fd575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561127657805190602001fd5b600090815b8383106113445750505050600190565b6001600160401b0360606113666113608660051b860186610d69565b80610d54565b01356113718161034f565b1680911015611386575b600190920191611334565b821561137b5750505050600090565b61142a6001600160401b03916113a96109fe565b50604051906bffffffffffffffffffffffff199060601b166020820152601481526113d3816102ae565b61112e604051916113e3836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a0830190610602565b611432610329565b6004815290602082015290565b90602080838303126100855782516001600160401b03938482116100855701926060848403126100855760405193611476856102ce565b80516114818161034f565b8552828101516001600160801b038116810361008557838601526040810151918211610085570182601f82011215610085578051906114bf82610431565b936114cd60405195866102e9565b82855283838301011161008557826114e893850191016105df565b604082015290565b600460ff6114ff835160ff1690565b160361157657602061151c9101516020808251830101910161143f565b600a6001600160401b0361153783516001600160401b031690565b16036115765760146001600160801b0361155b60208401516001600160801b031690565b16036115765760400160148151510361157657516014015190565b60405163c5f8961f60e01b8152600490fdfea264697066735822122045647878e0121e4af704a14e2dcf8ec035ef4777fd4e22454d6fc4629e4aef0d64736f6c63430008130033","sourceMap":"652:3595:35:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2194,"length":20},{"start":2457,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f578063898414751461008a578063b88dfdf61461005d578063ba094234146100585763f230beb21461005357600080fd5b610930565b610804565b307f000000000000000000000000000000000000000000000000000000000000000003610627575b600080fd5b610574565b6020366003190112610085576001600160401b03600435116100855736602360043501121561008557600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008557602460043501915b60248260051b600435010183106101285761012461011485610c38565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008557602319916040600435830136038401126100855760405190610159826102ae565b602483600435010135936001600160401b0385116100855760e09085856004350101360301126100855761018b61030a565b9160248585600435010101356001600160401b038111610085576101bb90602436918888600435010101016104ed565b83526001600160401b03604486866004350101013511610085576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b038111610085576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008557565b35906103368261034f565b6001600160a01b0381160361008557565b91906040838203126100855760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008557019280601f850112156100855783356103d181610338565b946103df60405196876102e9565b818652848087019260051b8201019283116100855784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008557565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b829481845281830111610085578281602093846000960137010152565b9080601f830112156100855781602061049e9335910161044c565b90565b919060408382031261008557604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b038311610085576020926104e89201610483565b910152565b91906040838203126100855760405190610506826102ae565b81938035916001600160401b0392838111610085578161052791840161037c565b84526020820135928311610085576020926104e892016104a1565b6001600160e01b031981160361008557565b359061033682610542565b8015150361008557565b35906103368261055f565b6020366003190112610085576001600160401b036004358181116100855736602382011215610085578060040135918211610085573660248360051b830101116100855760209160246105c7920161132f565b6040519015158152f35b908160409103126100855790565b60005b8381106105f25750506000910152565b81810151838201526020016105e2565b9060209161061b815180928185528580860191016105df565b601f01601f1916010190565b6020366003190112610085576004356001600160401b0381116100855761065d6106586101249236906004016105d1565b611046565b604051918291602083526020830190610602565b60a0600319820112610085576001600160401b0391600435838111610085578261069d916004016105d1565b926024356106aa8161036b565b92604435918211610085576106c1916004016105d1565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061070a575050505090565b83516001600160a01b0316855293810193928101926001016106fc565b6040602061049e93816107418551858452858401906106cc565b940151908281860391015260ff81511684520151918160208201520190610602565b61049e906020815260406020845194828285015260c06107f2610793885160e06060890152610140880190610727565b6107ae858a015191605f1992838a83030160808b0152610727565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a01519088830301610100890152610602565b96015161012085015201511515910152565b61082b61084d61086c61081636610671565b93959192610825979197610a3a565b50611395565b94610834610329565b9561083f368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561092b57610124968593610903575b506108ae906108a4610329565b93845236906104a1565b60208301526108bb610b88565b916108c461030a565b9586526020860152604085015282606085015282608085015260a084015260c08301526108ef610329565b918252602082015260405191829182610763565b6108ae919350610924903d8088833e61091c81836102e9565b810190610aa5565b9290610897565b610b71565b61097361093c36610671565b9194929390610949610a3a565b50610954368361037c565b95604051966308c7427760e11b88528780600097889360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561092b576101249786976109d8575b50906109ac6108ae92611395565b6109b4610329565b97885260208801526109cf6109c7610329565b94369061037c565b845236906104a1565b6108ae929197506109f56109ac913d808a833e61091c81836102e9565b9791925061099e565b60405190610a0b826102ae565b6060602083600081520152565b60405190610a25826102ae565b81610a2e6109fe565b815260206104e86109fe565b60405190610a47826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610a72610a18565b8152610a7c610a18565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b90602080838303126100855782516001600160401b03938482116100855701926040848403126100855760405193610adc856102ae565b8051610ae78161034f565b85528281015191821161008557019180601f84011215610085578251610b0c81610338565b93610b1a60405195866102e9565b818552838086019260051b8201019283116100855783809101915b838310610b46575050505082015290565b81908351610b538161036b565b8152019101908390610b35565b90602061049e9281815201906106cc565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c1b575050509360408381938161049e97980151908281860391015260ff81511684520151938201520190610602565b82516001600160a01b031688529685019691850191600101610be7565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610c8c57505050505050610c86925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d408b519183808451948a845289610d2e8c8851610ccc60e09182848b01526101208a0190610bab565b906001600160401b03610cf0888d015193603f19948c898782850301910152610bab565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b0151918984030190890152610602565b96015161010085015201511515910152565b990194019401918896949197959397610c66565b90359060de1981360301821215610085570190565b903590603e1981360301821215610085570190565b3561049e81610542565b903590601e198136030182121561008557018035906001600160401b0382116100855760200191813603831361008557565b3561049e8161055f565b9035603e1982360301811215610085570190565b9035601e19823603018112156100855701602081359101916001600160401b03821161008557813603831361008557565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e4c61049e9360ff610e3f82610423565b1684526020810190610dd8565b9190928160208201520191610e09565b919091610e698180610dc4565b604084526080840193813592610e7e8461034f565b6001600160401b03809416604083015260209283810135601e19823603018112156100855701958387359701948711610085578660051b36038513610085578690604060608501525260a08201936000965b808810610ef857505061049e9495508083610eec920190610dc4565b91818403910152610e2a565b909484806001928835610f0a8161036b565b848060a01b0316815201960197019690610ed0565b6020815281359060de1983360301821215610085576040610fff60208561049e950195838286015260c0610ff0610f6b610f598a80610dc4565b60e060608a0152610140890190610e5c565b610f8e610f7a868c018c610dc4565b91605f1992838b83030160808c0152610e5c565b90878b013560a08a01526001600160401b0360608c0135610fae8161034f565b16848a0152610fd3610fc260808d01610554565b6001600160e01b03191660e08b0152565b610fe060a08c018c610dd8565b918a8403016101008b0152610e09565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b16602083015261103681518092602086860191016105df565b81010360048101855201836102e9565b60406110528280610d54565b013561108661108161107c61107761106d61106d8780610d54565b6020810190610d69565b610b7d565b6114f0565b611161565b916001600160e01b03196110a5608061109f8480610d54565b01610d7e565b161561114657806110d06110c96110bf836110f695610d54565b60a0810190610d88565b369161044c565b906110dd60208201610dba565b611110575b608061109f826110f193610d54565b611006565b9080611106575061049e916112c8565b9061049e926112a0565b90506110f1608061109f60405161113c8161112e8760208301610f1f565b03601f1981018352826102e9565b93925050506110e2565b50611159916001600160a01b031661124b565b61049e610b88565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111a6575b156111a257611194906111b9565b9061119d575090565b905090565b5090565b50506001600160401b0381166001611186565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff160361120f575b83158015611204575b6111fd5750565b9250829150565b5060163d14156111f6565b600093509150816111ed565b3d15611246573d9061122c82610431565b9161123a60405193846102e9565b82523d6000602084013e565b606090565b814710611288576000918291829182916001600160a01b03165af161126e61121b565b501561127657565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b908247106112885760008161049e946020839451920190855af16112c261121b565b916112e1565b60008061049e9360208151910182855af16112c261121b565b901561131f578151156112f2575090565b803b156112fd575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561127657805190602001fd5b600090815b8383106113445750505050600190565b6001600160401b0360606113666113608660051b860186610d69565b80610d54565b01356113718161034f565b1680911015611386575b600190920191611334565b821561137b5750505050600090565b61142a6001600160401b03916113a96109fe565b50604051906bffffffffffffffffffffffff199060601b166020820152601481526113d3816102ae565b61112e604051916113e3836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a0830190610602565b611432610329565b6004815290602082015290565b90602080838303126100855782516001600160401b03938482116100855701926060848403126100855760405193611476856102ce565b80516114818161034f565b8552828101516001600160801b038116810361008557838601526040810151918211610085570182601f82011215610085578051906114bf82610431565b936114cd60405195866102e9565b82855283838301011161008557826114e893850191016105df565b604082015290565b600460ff6114ff835160ff1690565b160361157657602061151c9101516020808251830101910161143f565b600a6001600160401b0361153783516001600160401b031690565b16036115765760146001600160801b0361155b60208401516001600160801b031690565b16036115765760400160148151510361157657516014015190565b60405163c5f8961f60e01b8152600490fdfea264697066735822122045647878e0121e4af704a14e2dcf8ec035ef4777fd4e22454d6fc4629e4aef0d64736f6c63430008130033","sourceMap":"652:3595:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;652:3595:35;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;-1:-1:-1;;652:3595:35;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3595:35;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;652:3595:35;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3595:35;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;652:3595:35;;;;;;-1:-1:-1;;652:3595:35;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3595:35;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;652:3595:35;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;652:3595:35;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;652:3595:35;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;652:3595:35;;;;:::o;:::-;;;-1:-1:-1;;652:3595:35;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;652:3595:35;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1149:29;652:3595;1228:24;652:3595;;;:::i;:::-;;;;;;;;;;:::i;:::-;;1149:29;:::i;:::-;652:3595;;;:::i;:::-;;;;;;:::i;:::-;;;1107:73;;;652:3595;;;;:::i;:::-;;;;;;;;1228:24;;-1:-1:-1;;;1228:24:35;;;652:3595;1228:24;;;:::i;:::-;;:22;;:24;;;;;;;652:3595;1228:24;;;;;652:3595;;;;;;:::i;:::-;;;;;;;:::i;:::-;1107:73;1206:64;;652:3595;338:9:17;;:::i;:::-;652:3595:35;;;:::i;:::-;;;;1107:73;1067:398;;652:3595;;1067:398;;652:3595;1067:398;;;;193:9:17;1067:398:35;;;;193:9:17;1067:398:35;;;652:3595;1067:398;;;652:3595;;;:::i;:::-;;;;1107:73;1031:481;;193:9:17;652:3595:35;;;;;;;:::i;1228:24::-;652:3595;1228:24;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;652:3595::-;1853:24;652:3595;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;1853:24;;-1:-1:-1;;;1853:24:35;;;652:3595;1853:24;;;:::i;:::-;;:22;;:24;;;;;;;652:3595;1853:24;;;;;652:3595;1891:29;;;652:3595;1891:29;;:::i;:::-;652:3595;;:::i;:::-;;;;1831:91;;;652:3595;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;1853:24::-;652:3595;1853:24;;;;;1891:29;1853:24;;;;;;;;;;:::i;:::-;;;;;;;652:3595;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3595:35;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;-1:-1:-1;652:3595:35;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;338:9:17:-;652:3595:35;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;-1:-1:-1;338:9:17;;:::o;652:3595:35:-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;2384:131;652:3595;;;2486:21;;;;;;;652:3595;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3595:35;;;;;;;2486:21;;;;;;;;;;652:3595;;2486:21;;;;;;:::i;:::-;652:3595;2476:32;;2384:131;:::o;652:3595::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;652:3595:35;;;;;;;;-1:-1:-1;;652:3595:35;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;652:3595:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;2772:830::-;2873:22;:16;;;;:::i;:::-;:22;652:3595;2925:62;:50;:48;:30;:19;:16;;;;:::i;:::-;:19;;;;;:::i;:30::-;:48;:::i;:::-;:50;:::i;:::-;:62;:::i;:::-;652:3595;-1:-1:-1;;;;;;3002:23:35;;:16;652:3595;;3002:16;:::i;:::-;:23;;:::i;:::-;652:3595;3002:38;2998:145;;3175:16;652:3595;3175:23;:16;;3315:45;3175:16;;:::i;:::-;:23;;;;;:::i;:::-;652:3595;;;:::i;:::-;3213:16;;2925:19;3213:16;;;:::i;:::-;3209:76;;2772:830;3002:23;3328:16;;:23;:16;;:::i;:23::-;3315:45;:::i;:::-;3421:10;;3417:124;;2709:53:6;;;;:::i;3417:124:35:-;3803:57:6;;;;:::i;3209:76:35:-;652:3595;;3328:23;3002;3328:16;2873:22;652:3595;3254:20;;;;2925:19;3254:20;;;:::i;:::-;;652:3595;;3254:20;;;;;;:::i;:::-;3209:76;;;;;;;2998:145;-1:-1:-1;3094:5:35;;-1:-1:-1;;;;;652:3595:35;3094:5;:::i;:::-;338:9:17;;:::i;2356:528:0:-;-1:-1:-1;;4542:339:0;;;-1:-1:-1;;;4542:339:0;;;2356:528;2559:5;2555:45;;2762:17;;;:::i;:::-;2793:8;;;2817:9;;:::o;2789:89::-;2857:10;;;:::o;2555:45::-;2580:9;;:::o;4542:339::-;-1:-1:-1;;;;;;;4542:339:0;;;;;7171:2211;7309:1653;;;;;;;;-1:-1:-1;;;;;7309:1653:0;;;;;652:3595:35;7309:1653:0;652:3595:35;;;;;;7309:1653:0;;652:3595:35;7309:1653:0;;;;;;7171:2211;9289:8;;652:3595:35;;9289:34:0;;7171:2211;9285:91;;7171:2211;:::o;9285:91::-;9339:26;-1:-1:-1;9339:26:0;;-1:-1:-1;9339:26:0:o;9289:34::-;13622:37;7309:1653;13622:37;9301:22;;9289:34;;7309:1653;;;-1:-1:-1;7309:1653:0;-1:-1:-1;7309:1653:0;;;652:3595:35;;;;;;338:9:17;;;;:::i;:::-;652:3595:35;;;;;;;:::i;:::-;338:9:17;;652:3595:35;-1:-1:-1;652:3595:35;;;;:::o;:::-;;;:::o;1530:331:6:-;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;652:3595:35;1749:33:6;;;;:::i;:::-;;1796:8;1792:63;;1530:331::o;1792:63::-;652:3595:35;;-1:-1:-1;;;1827:17:6;;;;;1611:109;652:3595:35;;-1:-1:-1;;;1668:41:6;;1623:4;1668:41;;;652:3595:35;;;1668:41:6;4215:483;;4419:21;;:29;4415:108;;4574:31;;4622:69;4574:31;;;;;;;;;;;;;:::i;:::-;4622:69;;:::i;4215:483::-;2745:1;4215:483;4622:69;4215:483;4574:31;;;;;;;;;;;:::i;6737:692::-;;6952:471;;;652:3595:35;;6983:22:6;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;652:3595:35;;-1:-1:-1;;;7261:24:6;;-1:-1:-1;;;;;652:3595:35;;;7261:24:6;;;652:3595:35;;;7261:24:6;6952:471;-1:-1:-1;652:3595:35;;8828:21:6;:17;;9000:142;;;;;;3686:559:35;652:3595;3849:9;;3860:10;;;;;;4227:11;;;;652:3595;3686:559;:::o;3849:9::-;-1:-1:-1;;;;;3904:26:35;:20;652:3595;;;;;;;;:::i;:::-;3904:20;;:::i;:::-;:26;652:3595;;;;:::i;:::-;;3949:18;;;;3945:171;;3849:9;652:3595;4130:17;652:3595;;3849:9;;;3945:171;4041:6;4037:65;3945:171;4037:65;4071:12;;;;652:3595;4071:12;:::o;581:314:36:-;695:118;-1:-1:-1;;;;;581:314:36;652:3595:35;;:::i;:::-;;;;480:2:36;4542:339:0;480:2:36;;;;;779:22;;;480:2;779:22;;;;;;:::i;:::-;480:2;652:3595:35;;;;;;:::i;:::-;;193:9:17;;-1:-1:-1;;;;;779:22:36;719:84;;779:22;480:2;;652:3595:35;719:84:36;;652:3595:35;;;;;695:118:36;;;779:22;695:118;;;480:2;;652:3595:35;;480:2:36;;652:3595:35;480:2:36;;;;;;;;;;;;;;;;;:::i;695:118::-;652:3595:35;;:::i;:::-;;438:1:36;;837:51;779:22;837:51;;652:3595:35;581:314:36;:::o;652:3595:35:-;;;;;;;;;;;;-1:-1:-1;;;;;652:3595:35;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;480:2:36;;652:3595:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;1412:649:36:-;438:1;652:3595:35;;;;;;;;;;1520:32:36;1516:94;;1667:18;1656:50;1667:18;;;;652:3595:35;;;1656:50:36;;;;;;:::i;:::-;480:2;-1:-1:-1;;;;;652:3595:35;;;-1:-1:-1;;;;;652:3595:35;;;;;1721:32:36;1717:94;;1844:2;-1:-1:-1;;;;;652:3595:35;1667:18:36;1824:16;;652:3595:35;-1:-1:-1;;;;;480:2:36;;;652:3595:35;480:2:36;1824:22;1820:84;;1917:16;;1844:2;1917:16;;652:3595:35;1917:29:36;1913:91;;2037:16;2193:60;;;652:3595:35;:::o;1913:91:36:-;1917:16;652:3595:35;-1:-1:-1;;;1969:24:36;;438:1;;1969:24","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2160,"length":20},{"start":2423,"length":20}]}},"immutableReferences":{"library_deploy_address":[{"start":96,"length":32}]}},"methodIdentifiers":{"createFundMsg(SubnetID,address,FvmAddress,uint256,uint256)":"f230beb2","createReleaseMsg(SubnetID,address,FvmAddress,uint256,uint256)":"ba094234","execute(CrossMsg)":"b88dfdf6","isSorted(CrossMsg[])":"89841475","toHash(CrossMsg[])":"71686830"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createFundMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createReleaseMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"isSorted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/CrossMsgHelper.sol\":\"CrossMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createFundMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createReleaseMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"isSorted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/CrossMsgHelper.sol":"CrossMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/CrossMsgHelper.sol","id":9300,"exportedSymbols":{"Address":[1625],"CrossMsg":[16155],"CrossMsgHelper":[9299],"EMPTY_BYTES":[5547],"FilAddress":[298],"FvmAddress":[16179],"FvmAddressHelper":[9480],"IPCAddress":[16327],"METHOD_SEND":[5556],"StorableMsg":[16172],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"46:4202:35","nodes":[{"id":8970,"nodeType":"PragmaDirective","src":"46:23:35","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8973,"nodeType":"ImportDirective","src":"71:68:35","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":5557,"symbolAliases":[{"foreign":{"id":8971,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"79:11:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8972,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"92:11:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8976,"nodeType":"ImportDirective","src":"140:64:35","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":8974,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"148:11:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8975,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"161:8:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8979,"nodeType":"ImportDirective","src":"205:59:35","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":8977,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"213:8:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8978,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"223:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8981,"nodeType":"ImportDirective","src":"265:57:35","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":8980,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"273:14:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8983,"nodeType":"ImportDirective","src":"323:61:35","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":9481,"symbolAliases":[{"foreign":{"id":8982,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"331:16:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8985,"nodeType":"ImportDirective","src":"385:53:35","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":8984,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"393:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8987,"nodeType":"ImportDirective","src":"439:56:35","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":8986,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"447:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8989,"nodeType":"ImportDirective","src":"496:65:35","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":9300,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":8988,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"504:7:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9299,"nodeType":"ContractDefinition","src":"652:3595:35","nodes":[{"id":8994,"nodeType":"UsingForDirective","src":"681:34:35","nodes":[],"global":false,"libraryName":{"id":8991,"name":"SubnetIDHelper","nameLocations":["687:14:35"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"687:14:35"},"typeName":{"id":8993,"nodeType":"UserDefinedTypeName","pathNode":{"id":8992,"name":"SubnetID","nameLocations":["706:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"706:8:35"},"referencedDeclaration":16209,"src":"706:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":8997,"nodeType":"UsingForDirective","src":"720:29:35","nodes":[],"global":false,"libraryName":{"id":8995,"name":"FilAddress","nameLocations":["726:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"726:10:35"},"typeName":{"id":8996,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":9001,"nodeType":"UsingForDirective","src":"754:38:35","nodes":[],"global":false,"libraryName":{"id":8998,"name":"FvmAddressHelper","nameLocations":["760:16:35"],"nodeType":"IdentifierPath","referencedDeclaration":9480,"src":"760:16:35"},"typeName":{"id":9000,"nodeType":"UserDefinedTypeName","pathNode":{"id":8999,"name":"FvmAddress","nameLocations":["781:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"781:10:35"},"referencedDeclaration":16179,"src":"781:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}}},{"id":9044,"nodeType":"FunctionDefinition","src":"798:721:35","nodes":[],"body":{"id":9043,"nodeType":"Block","src":"1002:517:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":9022,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1129:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},{"arguments":[{"id":9025,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9006,"src":"1171:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9023,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"1149:16:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$9480_$","typeString":"type(library FvmAddressHelper)"}},"id":9024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1166:4:35","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":9352,"src":"1149:21:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$16179_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":9026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}],"id":9021,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"1107:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$16327_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1119:8:35","1137:10:35"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1107:73:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9029,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1228:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":9030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1235:15:35","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":14136,"src":"1228:22:35","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1228:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},{"id":9032,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9009,"src":"1266:2:35","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":9028,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"1206:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$16327_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1218:8:35","1254:10:35"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1206:64:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":9034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9011,"src":"1299:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":9035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9036,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"1364:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9037,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"1405:11:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9038,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9013,"src":"1443:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9020,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"1067:11:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$16172_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":9039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1101:4:35","1202:2:35","1292:5:35","1326:5:35","1356:6:35","1397:6:35","1438:3:35"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1067:398:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":9040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1492:5:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9019,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"1031:8:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$16155_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":9041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1058:7:35","1483:7:35"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1031:481:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":9018,"id":9042,"nodeType":"Return","src":"1012:500:35"}]},"functionSelector":"ba094234","implemented":true,"kind":"function","modifiers":[],"name":"createReleaseMsg","nameLocation":"807:16:35","parameters":{"id":9014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9004,"mutability":"mutable","name":"subnet","nameLocation":"851:6:35","nodeType":"VariableDeclaration","scope":9044,"src":"833:24:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":9003,"nodeType":"UserDefinedTypeName","pathNode":{"id":9002,"name":"SubnetID","nameLocations":["833:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"833:8:35"},"referencedDeclaration":16209,"src":"833:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":9006,"mutability":"mutable","name":"signer","nameLocation":"875:6:35","nodeType":"VariableDeclaration","scope":9044,"src":"867:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9005,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9009,"mutability":"mutable","name":"to","nameLocation":"911:2:35","nodeType":"VariableDeclaration","scope":9044,"src":"891:22:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9008,"nodeType":"UserDefinedTypeName","pathNode":{"id":9007,"name":"FvmAddress","nameLocations":["891:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"891:10:35"},"referencedDeclaration":16179,"src":"891:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":9011,"mutability":"mutable","name":"value","nameLocation":"931:5:35","nodeType":"VariableDeclaration","scope":9044,"src":"923:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9010,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9013,"mutability":"mutable","name":"fee","nameLocation":"954:3:35","nodeType":"VariableDeclaration","scope":9044,"src":"946:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9012,"name":"uint256","nodeType":"ElementaryTypeName","src":"946:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"823:140:35"},"returnParameters":{"id":9018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9044,"src":"985:15:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":9016,"nodeType":"UserDefinedTypeName","pathNode":{"id":9015,"name":"CrossMsg","nameLocations":["985:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"985:8:35"},"referencedDeclaration":16155,"src":"985:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"984:17:35"},"scope":9299,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":9087,"nodeType":"FunctionDefinition","src":"1525:718:35","nodes":[],"body":{"id":9086,"nodeType":"Block","src":"1726:517:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9065,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9047,"src":"1853:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":9066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1860:15:35","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":14136,"src":"1853:22:35","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":9067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1853:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":9070,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9049,"src":"1913:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9068,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"1891:16:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$9480_$","typeString":"type(library FvmAddressHelper)"}},"id":9069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1908:4:35","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":9352,"src":"1891:21:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$16179_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":9071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1891:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}],"id":9064,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"1831:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$16327_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":9072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1843:8:35","1879:10:35"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1831:91:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"id":9074,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9047,"src":"1970:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},{"id":9075,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9052,"src":"1990:2:35","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":9073,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"1948:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$16327_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":9076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1960:8:35","1978:10:35"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1948:46:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":9077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9054,"src":"2023:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":9078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2057:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9079,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"2088:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9080,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"2129:11:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9081,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9056,"src":"2167:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9063,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"1791:11:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$16172_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":9082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1825:4:35","1944:2:35","2016:5:35","2050:5:35","2080:6:35","2121:6:35","2162:3:35"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1791:398:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":9083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2216:5:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9062,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"1755:8:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$16155_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1782:7:35","2207:7:35"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1755:481:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":9061,"id":9085,"nodeType":"Return","src":"1736:500:35"}]},"functionSelector":"f230beb2","implemented":true,"kind":"function","modifiers":[],"name":"createFundMsg","nameLocation":"1534:13:35","parameters":{"id":9057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9047,"mutability":"mutable","name":"subnet","nameLocation":"1575:6:35","nodeType":"VariableDeclaration","scope":9087,"src":"1557:24:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":9046,"nodeType":"UserDefinedTypeName","pathNode":{"id":9045,"name":"SubnetID","nameLocations":["1557:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1557:8:35"},"referencedDeclaration":16209,"src":"1557:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":9049,"mutability":"mutable","name":"signer","nameLocation":"1599:6:35","nodeType":"VariableDeclaration","scope":9087,"src":"1591:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9048,"name":"address","nodeType":"ElementaryTypeName","src":"1591:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9052,"mutability":"mutable","name":"to","nameLocation":"1635:2:35","nodeType":"VariableDeclaration","scope":9087,"src":"1615:22:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9051,"nodeType":"UserDefinedTypeName","pathNode":{"id":9050,"name":"FvmAddress","nameLocations":["1615:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"1615:10:35"},"referencedDeclaration":16179,"src":"1615:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":9054,"mutability":"mutable","name":"value","nameLocation":"1655:5:35","nodeType":"VariableDeclaration","scope":9087,"src":"1647:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1647:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9056,"mutability":"mutable","name":"fee","nameLocation":"1678:3:35","nodeType":"VariableDeclaration","scope":9087,"src":"1670:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9055,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1547:140:35"},"returnParameters":{"id":9061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9087,"src":"1709:15:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":9059,"nodeType":"UserDefinedTypeName","pathNode":{"id":9058,"name":"CrossMsg","nameLocations":["1709:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1709:8:35"},"referencedDeclaration":16155,"src":"1709:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1708:17:35"},"scope":9299,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":9103,"nodeType":"FunctionDefinition","src":"2249:129:35","nodes":[],"body":{"id":9102,"nodeType":"Block","src":"2323:55:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9098,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9090,"src":"2361:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":9096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2350:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2354:6:35","memberName":"encode","nodeType":"MemberAccess","src":"2350:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9095,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2340:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9094,"id":9101,"nodeType":"Return","src":"2333:38:35"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2258:6:35","parameters":{"id":9091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9090,"mutability":"mutable","name":"crossMsg","nameLocation":"2281:8:35","nodeType":"VariableDeclaration","scope":9103,"src":"2265:24:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":9089,"nodeType":"UserDefinedTypeName","pathNode":{"id":9088,"name":"CrossMsg","nameLocations":["2265:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2265:8:35"},"referencedDeclaration":16155,"src":"2265:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2264:26:35"},"returnParameters":{"id":9094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9103,"src":"2314:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2314:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2313:9:35"},"scope":9299,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9120,"nodeType":"FunctionDefinition","src":"2384:131:35","nodes":[],"body":{"id":9119,"nodeType":"Block","src":"2459:56:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9115,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9107,"src":"2497:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":9113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2486:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2490:6:35","memberName":"encode","nodeType":"MemberAccess","src":"2486:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9112,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2476:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9111,"id":9118,"nodeType":"Return","src":"2469:39:35"}]},"functionSelector":"71686830","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2393:6:35","parameters":{"id":9108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9107,"mutability":"mutable","name":"crossMsgs","nameLocation":"2418:9:35","nodeType":"VariableDeclaration","scope":9120,"src":"2400:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":9105,"nodeType":"UserDefinedTypeName","pathNode":{"id":9104,"name":"CrossMsg","nameLocations":["2400:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2400:8:35"},"referencedDeclaration":16155,"src":"2400:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":9106,"nodeType":"ArrayTypeName","src":"2400:10:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"2399:29:35"},"returnParameters":{"id":9111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9120,"src":"2450:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2450:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2449:9:35"},"scope":9299,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":9151,"nodeType":"FunctionDefinition","src":"2521:245:35","nodes":[],"body":{"id":9150,"nodeType":"Block","src":"2593:173:35","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":9132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9128,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"2622:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":9129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2631:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2622:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":9130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2639:5:35","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":16165,"src":"2622:22:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2622:27:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":9133,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"2665:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":9134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2674:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2665:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":9135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2682:2:35","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"2665:19:35","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":9136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2685:8:35","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"2665:28:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":9137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2694:4:35","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2665:33:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2702:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2665:38:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2622:81:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":9147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":9141,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"2719:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":9142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2728:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2719:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":9143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2736:4:35","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":16158,"src":"2719:21:35","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":9144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2741:8:35","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"2719:30:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":9145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2750:4:35","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2719:35:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2758:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2719:40:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2622:137:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9127,"id":9149,"nodeType":"Return","src":"2603:156:35"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"2530:7:35","parameters":{"id":9124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"mutability":"mutable","name":"crossMsg","nameLocation":"2554:8:35","nodeType":"VariableDeclaration","scope":9151,"src":"2538:24:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":9122,"nodeType":"UserDefinedTypeName","pathNode":{"id":9121,"name":"CrossMsg","nameLocations":["2538:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2538:8:35"},"referencedDeclaration":16155,"src":"2538:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2537:26:35"},"returnParameters":{"id":9127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9151,"src":"2587:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9125,"name":"bool","nodeType":"ElementaryTypeName","src":"2587:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2586:6:35"},"scope":9299,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9242,"nodeType":"FunctionDefinition","src":"2772:830:35","nodes":[],"body":{"id":9241,"nodeType":"Block","src":"2847:755:35","nodes":[],"statements":[{"assignments":[9160],"declarations":[{"constant":false,"id":9160,"mutability":"mutable","name":"value","nameLocation":"2865:5:35","nodeType":"VariableDeclaration","scope":9241,"src":"2857:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9159,"name":"uint256","nodeType":"ElementaryTypeName","src":"2857:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9164,"initialValue":{"expression":{"expression":{"id":9161,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"2873:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2882:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2873:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":9163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2890:5:35","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"2873:22:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2857:38:35"},{"assignments":[9166],"declarations":[{"constant":false,"id":9166,"mutability":"mutable","name":"recipient","nameLocation":"2913:9:35","nodeType":"VariableDeclaration","scope":9241,"src":"2905:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9165,"name":"address","nodeType":"ElementaryTypeName","src":"2905:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9175,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":9167,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"2925:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2934:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2925:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2942:2:35","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"2925:19:35","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":9170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2945:10:35","memberName":"rawAddress","nodeType":"MemberAccess","referencedDeclaration":16326,"src":"2925:30:35","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}},"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2956:17:35","memberName":"extractEvmAddress","nodeType":"MemberAccess","referencedDeclaration":9470,"src":"2925:48:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FvmAddress_$16179_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_FvmAddress_$16179_memory_ptr_$","typeString":"function (struct FvmAddress memory) pure returns (address)"}},"id":9172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:50:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2976:9:35","memberName":"normalize","nodeType":"MemberAccess","referencedDeclaration":90,"src":"2925:60:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) view returns (address)"}},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:62:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2905:82:35"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9176,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"3002:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3011:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3002:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3019:6:35","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":16167,"src":"3002:23:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9179,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"3029:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3002:38:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9194,"nodeType":"IfStatement","src":"2998:145:35","trueBody":{"id":9193,"nodeType":"Block","src":"3042:101:35","statements":[{"expression":{"arguments":[{"arguments":[{"id":9186,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9166,"src":"3082:9:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3074:8:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":9184,"name":"address","nodeType":"ElementaryTypeName","src":"3074:8:35","stateMutability":"payable","typeDescriptions":{}}},"id":9187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3074:18:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9160,"src":"3094:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9181,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"3056:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1625_$","typeString":"type(library Address)"}},"id":9183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3064:9:35","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"3056:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (address payable,uint256)"}},"id":9189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3056:44:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9190,"nodeType":"ExpressionStatement","src":"3056:44:35"},{"expression":{"id":9191,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"3121:11:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9158,"id":9192,"nodeType":"Return","src":"3114:18:35"}]}},{"assignments":[9196],"declarations":[{"constant":false,"id":9196,"mutability":"mutable","name":"params","nameLocation":"3166:6:35","nodeType":"VariableDeclaration","scope":9241,"src":"3153:19:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9195,"name":"bytes","nodeType":"ElementaryTypeName","src":"3153:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9200,"initialValue":{"expression":{"expression":{"id":9197,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"3175:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3184:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3175:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3192:6:35","memberName":"params","nodeType":"MemberAccess","referencedDeclaration":16169,"src":"3175:23:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"3153:45:35"},{"condition":{"expression":{"id":9201,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"3213:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3222:7:35","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":16154,"src":"3213:16:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9211,"nodeType":"IfStatement","src":"3209:76:35","trueBody":{"id":9210,"nodeType":"Block","src":"3231:54:35","statements":[{"expression":{"id":9208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9203,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9196,"src":"3245:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9206,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"3265:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}],"expression":{"id":9204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3254:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:6:35","memberName":"encode","nodeType":"MemberAccess","src":"3254:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3254:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3245:29:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9209,"nodeType":"ExpressionStatement","src":"3245:29:35"}]}},{"assignments":[9213],"declarations":[{"constant":false,"id":9213,"mutability":"mutable","name":"data","nameLocation":"3308:4:35","nodeType":"VariableDeclaration","scope":9241,"src":"3295:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9212,"name":"bytes","nodeType":"ElementaryTypeName","src":"3295:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9222,"initialValue":{"arguments":[{"expression":{"expression":{"id":9217,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"3328:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3337:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3328:16:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":9219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3345:6:35","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":16167,"src":"3328:23:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9220,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9196,"src":"3353:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3315:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9214,"name":"bytes","nodeType":"ElementaryTypeName","src":"3315:5:35","typeDescriptions":{}}},"id":9216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3321:6:35","memberName":"concat","nodeType":"MemberAccess","src":"3315:12:35","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3315:45:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3295:65:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9160,"src":"3421:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3430:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3421:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9234,"nodeType":"IfStatement","src":"3417:124:35","trueBody":{"id":9233,"nodeType":"Block","src":"3433:108:35","statements":[{"expression":{"arguments":[{"id":9228,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9166,"src":"3493:9:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9229,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"3510:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9230,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9160,"src":"3523:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9226,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"3454:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1625_$","typeString":"type(library Address)"}},"id":9227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3462:21:35","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":1357,"src":"3454:29:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":9231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3485:6:35","3504:4:35","3516:5:35"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3454:76:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9158,"id":9232,"nodeType":"Return","src":"3447:83:35"}]}},{"expression":{"arguments":[{"id":9237,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9166,"src":"3579:9:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9238,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"3590:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9235,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"3558:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1625_$","typeString":"type(library Address)"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3566:12:35","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":1315,"src":"3558:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3558:37:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9158,"id":9240,"nodeType":"Return","src":"3551:44:35"}]},"functionSelector":"b88dfdf6","implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2781:7:35","parameters":{"id":9155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9154,"mutability":"mutable","name":"crossMsg","nameLocation":"2807:8:35","nodeType":"VariableDeclaration","scope":9242,"src":"2789:26:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":9153,"nodeType":"UserDefinedTypeName","pathNode":{"id":9152,"name":"CrossMsg","nameLocations":["2789:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2789:8:35"},"referencedDeclaration":16155,"src":"2789:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2788:28:35"},"returnParameters":{"id":9158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9242,"src":"2833:12:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9156,"name":"bytes","nodeType":"ElementaryTypeName","src":"2833:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2832:14:35"},"scope":9299,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":9298,"nodeType":"FunctionDefinition","src":"3686:559:35","nodes":[],"body":{"id":9297,"nodeType":"Block","src":"3764:481:35","nodes":[],"statements":[{"assignments":[9252],"declarations":[{"constant":false,"id":9252,"mutability":"mutable","name":"prevNonce","nameLocation":"3782:9:35","nodeType":"VariableDeclaration","scope":9297,"src":"3774:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9251,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9253,"nodeType":"VariableDeclarationStatement","src":"3774:17:35"},{"assignments":[9255],"declarations":[{"constant":false,"id":9255,"mutability":"mutable","name":"length","nameLocation":"3809:6:35","nodeType":"VariableDeclaration","scope":9297,"src":"3801:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9254,"name":"uint256","nodeType":"ElementaryTypeName","src":"3801:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9258,"initialValue":{"expression":{"id":9256,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9246,"src":"3818:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":9257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3828:6:35","memberName":"length","nodeType":"MemberAccess","src":"3818:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3801:33:35"},{"body":{"id":9293,"nodeType":"Block","src":"3874:343:35","statements":[{"assignments":[9266],"declarations":[{"constant":false,"id":9266,"mutability":"mutable","name":"nonce","nameLocation":"3896:5:35","nodeType":"VariableDeclaration","scope":9293,"src":"3888:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3888:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9272,"initialValue":{"expression":{"expression":{"baseExpression":{"id":9267,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9246,"src":"3904:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":9269,"indexExpression":{"id":9268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9260,"src":"3914:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3904:12:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":9270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3917:7:35","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3904:20:35","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":9271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3925:5:35","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":16165,"src":"3904:26:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3888:42:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9273,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9252,"src":"3949:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9274,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9266,"src":"3962:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3949:18:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9284,"nodeType":"IfStatement","src":"3945:171:35","trueBody":{"id":9283,"nodeType":"Block","src":"3969:147:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9260,"src":"4041:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4046:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4041:6:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9282,"nodeType":"IfStatement","src":"4037:65:35","trueBody":{"id":9281,"nodeType":"Block","src":"4049:53:35","statements":[{"expression":{"hexValue":"66616c7365","id":9279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4078:5:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":9250,"id":9280,"nodeType":"Return","src":"4071:12:35"}]}}]}},{"expression":{"id":9287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9285,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9252,"src":"4130:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9286,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9266,"src":"4142:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4130:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9288,"nodeType":"ExpressionStatement","src":"4130:17:35"},{"id":9292,"nodeType":"UncheckedBlock","src":"4161:46:35","statements":[{"expression":{"id":9290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4189:3:35","subExpression":{"id":9289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9260,"src":"4191:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9291,"nodeType":"ExpressionStatement","src":"4189:3:35"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9260,"src":"3860:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9263,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9255,"src":"3864:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3860:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9294,"initializationExpression":{"assignments":[9260],"declarations":[{"constant":false,"id":9260,"mutability":"mutable","name":"i","nameLocation":"3857:1:35","nodeType":"VariableDeclaration","scope":9294,"src":"3849:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3849:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9261,"nodeType":"VariableDeclarationStatement","src":"3849:9:35"},"nodeType":"ForStatement","src":"3844:373:35"},{"expression":{"hexValue":"74727565","id":9295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4234:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9250,"id":9296,"nodeType":"Return","src":"4227:11:35"}]},"functionSelector":"89841475","implemented":true,"kind":"function","modifiers":[],"name":"isSorted","nameLocation":"3695:8:35","parameters":{"id":9247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9246,"mutability":"mutable","name":"crossMsgs","nameLocation":"3724:9:35","nodeType":"VariableDeclaration","scope":9298,"src":"3704:29:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":9244,"nodeType":"UserDefinedTypeName","pathNode":{"id":9243,"name":"CrossMsg","nameLocations":["3704:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"3704:8:35"},"referencedDeclaration":16155,"src":"3704:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":9245,"nodeType":"ArrayTypeName","src":"3704:10:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"3703:31:35"},"returnParameters":{"id":9250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9298,"src":"3758:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9248,"name":"bool","nodeType":"ElementaryTypeName","src":"3758:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3757:6:35"},"scope":9299,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":8990,"nodeType":"StructuredDocumentation","src":"563:89:35","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[9299],"name":"CrossMsgHelper","nameLocation":"660:14:35","scope":9300,"usedErrors":[1248,1253,1256,9321]}],"license":"MIT OR Apache-2.0"},"id":35} \ No newline at end of file diff --git a/contracts/out/DiamondCutFacet.sol/DiamondCutFacet.json b/contracts/out/DiamondCutFacet.sol/DiamondCutFacet.json deleted file mode 100644 index ff09a9e99e..0000000000 --- a/contracts/out/DiamondCutFacet.sol/DiamondCutFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212200fd667eac3f23b0ef0eec73832a420bebc2b624a938deba693f700cfcafc6e5364736f6c63430008130033","sourceMap":"472:750:18:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212200fd667eac3f23b0ef0eec73832a420bebc2b624a938deba693f700cfcafc6e5364736f6c63430008130033","sourceMap":"472:750:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:30:37;472:750:18;-1:-1:-1;;;;;472:750:18;2649:10:37;:44;2645:92;;472:750:18;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:19:37;;;;;;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:18;;;;;;;;;;;;4023:9:37;472:750:18;3911:74:37;472:750:18;;;;;;:::i;:::-;3911:74:37;;;472:750:18;;4023:9:37;:::i;:::-;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:18;;;;;;;;;;;;;;;;;;;2917:18:37;472:750:18;3010:23:37;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:37;;;;:::i;:::-;;472:750:18;;;;;3142:29:37;3138:122;;472:750:18;3309:23:37;;;;:::i;:::-;;:30;472:750:18;;;;;;;3357:37:37;;;4150:27;;;4146:116;;472:750:18;-1:-1:-1;;;;;;;;;;;472:750:18;;4385:74:37;472:750:18;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:18;;;;4385:74:37;;:::i;:::-;472:750:18;;4526:21:37;472:750:18;4521:677:37;4549:22;;;;;;3353:466;;;;;472:750:18;3353:466:37;;472:750:18;2917:18:37;;4526:21;-1:-1:-1;;;;;;4607:33:37;;;;:::i;:::-;472:750:18;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;;;-1:-1:-1;;;;;472:750:18;4751:128:37;;472:750:18;;;:::i;:::-;;;;;;;;;;4939:107:37;;;472:750:18;;;-1:-1:-1;472:750:18;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:18;;;-1:-1:-1;;;;;472:750:18;;;;;;;;;;-1:-1:-1;;;472:750:18;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:37;;;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;4751:128:37;472:750:18;;-1:-1:-1;;;4811:53:37;;472:750:18;4811:53:37;;472:750:18;;;;;4811:53:37;4146:116;472:750:18;;-1:-1:-1;;;4200:51:37;;472:750:18;;;4200:51:37;;472:750:18;4200:51:37;;;:::i;:::-;;;;3353:466;472:750:18;3484:41:37;;472:750:18;;5372:27:37;;;5368:131;;5508:81;472:750:18;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:18;;;;5508:81:37;;:::i;:::-;472:750:18;;5652:21:37;472:750:18;5675:18:37;;;;;;3480:339;;;;472:750:18;3480:339:37;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:37;;;;:::i;:::-;472:750:18;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;-1:-1:-1;;;;;472:750:18;6011:4:37;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;472:750:18;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;-1:-1:-1;;;;;;472:750:18;;;;;;;5652:21:37;;6268:123;472:750:18;;;;6328:48:37;;;;;;472:750:18;6328:48:37;;472:750:18;6328:48:37;6111:144;472:750:18;;-1:-1:-1;;;6174:66:37;;472:750:18;6174:66:37;;472:750:18;;;;;6174:66:37;5980:118;472:750:18;;-1:-1:-1;;;6043:40:37;;472:750:18;6043:40:37;;472:750:18;;;;;6043:40:37;5368:131;472:750:18;;-1:-1:-1;;;5422:66:37;;472:750:18;;;5422:66:37;;472:750:18;5422:66:37;;;:::i;3480:339::-;3629:30;3619:40;;3629:30;;472:750:18;-1:-1:-1;;;;;;;;;;;472:750:18;6826:27:37;;6822:115;;472:750:18;;;6999:21:37;472:750:18;7022:18:37;;;;;;3615:204;;;;472:750:18;3615:204:37;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:37;;;;:::i;:::-;472:750:18;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;472:750:18;;;;;;;;;;;;;;;;7278:61:37;7274:153;;472:750:18;;-1:-1:-1;;;;;472:750:18;7597:4:37;7538:64;7534:149;;472:750:18;;;;;;;7747:15:37;472:750:18;;;;;;;;7780:68:37;7776:412;;6999:21;472:750:18;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;;-1:-1:-1;;472:750:18;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;;6999:21:37;;472:750:18;;;;;;;;;;;;7776:412:37;472:750:18;;7890:27:37;8033:140;7890:27;;:::i;:::-;472:750:18;;;;;;;;;7935:80:37;472:750:18;7935:65:37;472:750:18;;;;;;7935:65:37;:::i;:80::-;472:750:18;;-1:-1:-1;;;;;;472:750:18;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;-1:-1:-1;;;;472:750:18;;;;;;;-1:-1:-1;;;472:750:18;;;;;8033:140:37;7776:412;;;;7534:149;472:750:18;;-1:-1:-1;;;7629:39:37;;472:750:18;7629:39:37;;472:750:18;;;;;7629:39:37;7274:153;472:750:18;;-1:-1:-1;;;7366:46:37;;472:750:18;7366:46:37;;472:750:18;;;;;7366:46:37;6822:115;472:750:18;;;;6876:50:37;;;;;;472:750:18;6876:50:37;;472:750:18;6876:50:37;3615:204;472:750:18;;-1:-1:-1;;;3773:31:37;;472:750:18;;;;;3773:31:37;;;472:750:18;:::i;:::-;3773:31:37;472:750:18;;;;;;;;;;;;3138:122:37;472:750:18;;-1:-1:-1;;;3198:47:37;;472:750:18;3198:47:37;;472:750:18;;;;;3198:47:37;472:750:18;;;;;;;;;;;;;;;-1:-1:-1;;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:18;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:18;;;;;;;;;;;;;;;;;;;;;;2645:92:37;-1:-1:-1;;;2716:10:37;;472:750:18;;2716:10:37;472:750:18;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;472:750:18;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;472:750:18;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;472:750:18;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:18;;;;;;;-1:-1:-1;472:750:18;;;;;;;;;;;;:::o;8414:888:37:-;-1:-1:-1;;;;;472:750:18;;;8414:888:37;8506:19;;8502:56;;8523:1;472:750:18;;8567:70:37;472:750:18;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:18;;;;8567:70:37;;:::i;:::-;8737:29;;;472:750:18;8737:29:37;;;;;;472:750:18;;;;;;;;;;:::i;:::-;;;;;8523:1:37;472:750:18;;;;;8826:8:37;8822:474;;8414:888;;;:::o;8822:474::-;472:750:18;;8911:17:37;:12;;9034:144;;472:750:18;9034:144:37;;;8907:379;472:750:18;;;9223:48:37;;;;;;;;;;;472:750:18;;;;;;;;;;;:::i;:::-;;;;;8502:56:37;8541:7;;;:::o;9308:320::-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;472:750:18;;;-1:-1:-1;;;9566:45:37;;-1:-1:-1;;;;;472:750:18;;;9566:45:37;;;472:750:18;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on _init\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondCutFacet.sol\":\"DiamondCutFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on _init","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondCutFacet.sol":"DiamondCutFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondCutFacet.sol","id":5593,"exportedSymbols":{"DiamondCutFacet":[5592],"IDiamondCut":[8694],"LibDiamond":[10200]},"nodeType":"SourceUnit","src":"32:1191:18","nodes":[{"id":5558,"nodeType":"PragmaDirective","src":"32:23:18","nodes":[],"literals":["solidity","0.8",".19"]},{"id":5560,"nodeType":"ImportDirective","src":"362:58:18","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":5593,"sourceUnit":8695,"symbolAliases":[{"foreign":{"id":5559,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"370:11:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5562,"nodeType":"ImportDirective","src":"421:49:18","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":5593,"sourceUnit":10201,"symbolAliases":[{"foreign":{"id":5561,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"429:10:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5592,"nodeType":"ContractDefinition","src":"472:750:18","nodes":[{"id":5591,"nodeType":"FunctionDefinition","src":"961:259:18","nodes":[],"body":{"id":5590,"nodeType":"Block","src":"1073:147:18","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5577,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1083:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:22:18","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":9662,"src":"1083:33:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1083:35:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5581,"nodeType":"ExpressionStatement","src":"1083:35:18"},{"expression":{"arguments":[{"id":5585,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5569,"src":"1164:11:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"}},{"id":5586,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"1184:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5587,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5573,"src":"1202:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":5582,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1128:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:10:18","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":9780,"src":"1128:21:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1151:11:18","1177:5:18","1191:9:18"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1128:85:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5589,"nodeType":"ExpressionStatement","src":"1128:85:18"}]},"baseFunctions":[8693],"documentation":{"id":5565,"nodeType":"StructuredDocumentation","src":"518:438:18","text":"@notice Add/replace/remove any number of functions and optionally execute\n a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments\n _calldata is executed with delegatecall on _init"},"functionSelector":"1f931c1c","implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"970:10:18","overrides":{"id":5575,"nodeType":"OverrideSpecifier","overrides":[],"src":"1064:8:18"},"parameters":{"id":5574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5569,"mutability":"mutable","name":"_diamondCut","nameLocation":"1001:11:18","nodeType":"VariableDeclaration","scope":5591,"src":"981:31:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":5567,"nodeType":"UserDefinedTypeName","pathNode":{"id":5566,"name":"FacetCut","nameLocations":["981:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"981:8:18"},"referencedDeclaration":8664,"src":"981:8:18","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":5568,"nodeType":"ArrayTypeName","src":"981:10:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":5571,"mutability":"mutable","name":"_init","nameLocation":"1022:5:18","nodeType":"VariableDeclaration","scope":5591,"src":"1014:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5570,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5573,"mutability":"mutable","name":"_calldata","nameLocation":"1044:9:18","nodeType":"VariableDeclaration","scope":5591,"src":"1029:24:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5572,"name":"bytes","nodeType":"ElementaryTypeName","src":"1029:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"980:74:18"},"returnParameters":{"id":5576,"nodeType":"ParameterList","parameters":[],"src":"1073:0:18"},"scope":5592,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":5563,"name":"IDiamondCut","nameLocations":["500:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":8694,"src":"500:11:18"},"id":5564,"nodeType":"InheritanceSpecifier","src":"500:11:18"}],"canonicalName":"DiamondCutFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5592,8694,8675],"name":"DiamondCutFacet","nameLocation":"481:15:18","scope":5593,"usedErrors":[9493,9499,9504,9508,9512,9517,9523,9536,9540,9544,9548,9552,9556,9560]}],"license":"MIT"},"id":18} \ No newline at end of file diff --git a/contracts/out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json b/contracts/out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json deleted file mode 100644 index fe61fa4676..0000000000 --- a/contracts/out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"_facetFunctionSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a26469706673582212203b067c3b5852a5dad845a7d6bfb2f9dd3febe225c1cd780233645e9d4e4c5e3e64736f6c63430008130033","sourceMap":"652:6504:19:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a26469706673582212203b067c3b5852a5dad845a7d6bfb2f9dd3febe225c1cd780233645e9d4e4c5e3e64736f6c63430008130033","sourceMap":"652:6504:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;652:6504:19;;;:::i;:::-;;;;7111:22;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:19;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:6504:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:19;5192:28;;;:::i;:::-;5230:17;;5305:21;;5300:892;5328:29;;;;;;6305:67;;;652:6504;;;;6305:67;652:6504;;:::i;:::-;;;;5359:15;5408:27;;5473:57;:44;652:6504;5408:27;;;:::i;:::-;652:6504;;;;;;;;;;;5473:44;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:19;;;5473:57;5544:17;-1:-1:-1;;;;;652:6504:19;;5544:17;5693:22;;;;;;5668:232;5973:97;;;;6114:42;;6170:11;6114:42;;5359:15;6114:42;;;:::i;:::-;-1:-1:-1;;;;;652:6504:19;;;;;;6114:42;6170:11;:::i;:::-;5359:15;;:::i;:::-;5305:21;;;5973:97;6047:8;;5359:15;6047:8;5359:15;:::i;5717:12::-;5753:44;5770:27;;;;;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:19;;;5770:27;-1:-1:-1;;;;;652:6504:19;;;5753:44;;;5749:137;;5717:12;;;:::i;:::-;5673:18;;5749:137;5821:19;;;652:6504;5862:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:19;1362:26;;;:::i;:::-;1513:27;;;;:::i;:::-;1584:17;;1659:21;;1654:1292;1682:29;;;;;;2960:18;;2980:22;;;;;;3507:59;;;652:6504;;;;3507:59;652:6504;;:::i;2960:18::-;3043:29;3020:52;3043:29;;652:6504;3043:29;;;:::i;:::-;652:6504;;;;;3043:29;652:6504;;;;3020:52;2734:36;3114:19;;;;:::i;:::-;;:37;;3262:72;652:6504;2960:18;;1713:15;1762:27;;652:6504;1762:27;;;:::i;652:6504::-;1827:57;:44;;;:::i;:57::-;1898:17;-1:-1:-1;;;;;652:6504:19;;1898:17;2038:22;;;;;;2013:391;2498:97;;;;2673:18;2814:50;2924:11;2673:18;:47;1713:15;2673:18;;;;;:::i;:::-;;-1:-1:-1;;;;;652:6504:19;;;;;;2673:47;2814:50;2773:27;;;;:::i;:::-;2734:36;:18;:36;:18;;;;:::i;:::-;;:36;:66;2814:18;;;;:::i;:::-;;:36;;:50;:::i;:::-;-1:-1:-1;;;;;;652:6504:19;;;;;;2814:50;2878:32;;;;;:::i;:::-;652:6504;;;;2924:11;1713:15;;:::i;:::-;1659:21;;;2498:97;2572:8;;;1713:15;2572:8;1713:15;:::i;2062:12::-;2098:19;;;;:49;:32;:19;;;;:::i;:::-;;652:6504;-1:-1:-1;;;;;652:6504:19;;;2098:49;;2094:296;;2062:12;;;;;;:::i;:::-;2018:18;;2094:296;2272:31;2171:19;;;;;;2272:31;2171:19;:79;2272:31;2171:19;:79;2734:36;2171:19;2272:31;2171:19;2272:31;2171:19;;:::i;:::-;;:37;;:79;2209:29;;;;;:::i;2171:79::-;;;:::i;:::-;2272:31;:::i;:::-;;:::i;:::-;;;;:::i;:::-;652:6504;;;;;;2272:31;652:6504;2366:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;652:6504:19;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:19;;;;-1:-1:-1;;;;;652:6504:19;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:19;4059:20;-1:-1:-1;4115:27:19;;;;:::i;:::-;4200:21;;4223:29;;;;;;4698:78;;;652:6504;;;;4698:78;652:6504;;:::i;4254:15::-;4303:27;;;:::i;:::-;652:6504;;;;;;;;4368:44;;;;:::i;:::-;652:6504;;4443:23;;4439:142;;4254:15;;;;;:::i;:::-;4200:21;;4439:142;4486:48;4552:14;4486:48;;4254:15;4486:48;;;;:::i;:::-;-1:-1:-1;;;;;;652:6504:19;;;;;4552:14;:::i;:::-;4439:142;;;;652:6504;;;;;-1:-1:-1;;;;;6821:53:19;652:6504;;;:::i;6821:53::-;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:19;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;652:6504:19;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;652:6504:19;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:19;;;;;;;-1:-1:-1;652:6504:19;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;260:43:37;652:6504:19;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_facetFunctionSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"_facetFunctionSelectors\":\"The selectors associated with a facet address.\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet address that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facets and their selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondLoupeFacet.sol\":\"DiamondLoupeFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"_facetFunctionSelectors","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"_facetFunctionSelectors":"The selectors associated with a facet address."}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet address that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facets and their selectors."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondLoupeFacet.sol":"DiamondLoupeFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondLoupeFacet.sol","id":6030,"exportedSymbols":{"DiamondLoupeFacet":[6029],"IDiamondLoupe":[8735],"IERC165":[8746],"LibDiamond":[10200]},"nodeType":"SourceUnit","src":"32:7125:19","nodes":[{"id":5594,"nodeType":"PragmaDirective","src":"32:23:19","nodes":[],"literals":["solidity","0.8",".19"]},{"id":5596,"nodeType":"ImportDirective","src":"487:49:19","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":6030,"sourceUnit":10201,"symbolAliases":[{"foreign":{"id":5595,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"495:10:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5598,"nodeType":"ImportDirective","src":"537:62:19","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"../interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":6030,"sourceUnit":8736,"symbolAliases":[{"foreign":{"id":5597,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"545:13:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5600,"nodeType":"ImportDirective","src":"600:50:19","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":6030,"sourceUnit":8747,"symbolAliases":[{"foreign":{"id":5599,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"608:7:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6029,"nodeType":"ContractDefinition","src":"652:6504:19","nodes":[{"id":5795,"nodeType":"FunctionDefinition","src":"1079:2493:19","nodes":[],"body":{"id":5794,"nodeType":"Block","src":"1153:2419:19","nodes":[],"statements":[{"assignments":[5617],"declarations":[{"constant":false,"id":5617,"mutability":"mutable","name":"ds","nameLocation":"1197:2:19","nodeType":"VariableDeclaration","scope":5794,"src":"1163:36:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5616,"nodeType":"UserDefinedTypeName","pathNode":{"id":5615,"name":"LibDiamond.DiamondStorage","nameLocations":["1163:10:19","1174:14:19"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"1163:25:19"},"referencedDeclaration":9590,"src":"1163:25:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5621,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5618,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1202:10:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:14:19","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"1202:25:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1163:66:19"},{"assignments":[5623],"declarations":[{"constant":false,"id":5623,"mutability":"mutable","name":"selectorCount","nameLocation":"1247:13:19","nodeType":"VariableDeclaration","scope":5794,"src":"1239:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5627,"initialValue":{"expression":{"expression":{"id":5624,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5617,"src":"1263:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1266:9:19","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"1263:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1276:6:19","memberName":"length","nodeType":"MemberAccess","src":"1263:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:43:19"},{"expression":{"id":5635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5628,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"1352:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5633,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"1374:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1362:11:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamondLoupe.Facet memory[] memory)"},"typeName":{"baseType":{"id":5630,"nodeType":"UserDefinedTypeName","pathNode":{"id":5629,"name":"Facet","nameLocations":["1366:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":8702,"src":"1366:5:19"},"referencedDeclaration":8702,"src":"1366:5:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":5631,"nodeType":"ArrayTypeName","src":"1366:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}}},"id":5634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"src":"1352:36:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5636,"nodeType":"ExpressionStatement","src":"1352:36:19"},{"assignments":[5641],"declarations":[{"constant":false,"id":5641,"mutability":"mutable","name":"numFacetSelectors","nameLocation":"1493:17:19","nodeType":"VariableDeclaration","scope":5794,"src":"1477:33:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[]"},"typeName":{"baseType":{"id":5639,"name":"uint16","nodeType":"ElementaryTypeName","src":"1477:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":5640,"nodeType":"ArrayTypeName","src":"1477:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}},"visibility":"internal"}],"id":5647,"initialValue":{"arguments":[{"id":5645,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"1526:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1513:12:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint16_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint16[] memory)"},"typeName":{"baseType":{"id":5642,"name":"uint16","nodeType":"ElementaryTypeName","src":"1517:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":5643,"nodeType":"ArrayTypeName","src":"1517:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}}},"id":5646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1477:63:19"},{"assignments":[5649],"declarations":[{"constant":false,"id":5649,"mutability":"mutable","name":"numFacets","nameLocation":"1592:9:19","nodeType":"VariableDeclaration","scope":5794,"src":"1584:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5648,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5650,"nodeType":"VariableDeclarationStatement","src":"1584:17:19"},{"body":{"id":5762,"nodeType":"Block","src":"1730:1216:19","statements":[{"assignments":[5661],"declarations":[{"constant":false,"id":5661,"mutability":"mutable","name":"selector","nameLocation":"1751:8:19","nodeType":"VariableDeclaration","scope":5762,"src":"1744:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5660,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1744:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":5666,"initialValue":{"baseExpression":{"expression":{"id":5662,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5617,"src":"1762:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:19","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"1762:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5665,"indexExpression":{"id":5664,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"1775:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1762:27:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1744:45:19"},{"assignments":[5668],"declarations":[{"constant":false,"id":5668,"mutability":"mutable","name":"facetAddress_","nameLocation":"1811:13:19","nodeType":"VariableDeclaration","scope":5762,"src":"1803:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5667,"name":"address","nodeType":"ElementaryTypeName","src":"1803:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5674,"initialValue":{"expression":{"baseExpression":{"expression":{"id":5669,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5617,"src":"1827:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1830:31:19","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"1827:34:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":5672,"indexExpression":{"id":5671,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"1862:8:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:44:19","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":5673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1872:12:19","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"1827:57:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1803:81:19"},{"assignments":[5676],"declarations":[{"constant":false,"id":5676,"mutability":"mutable","name":"continueLoop","nameLocation":"1903:12:19","nodeType":"VariableDeclaration","scope":5762,"src":"1898:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5675,"name":"bool","nodeType":"ElementaryTypeName","src":"1898:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5677,"nodeType":"VariableDeclarationStatement","src":"1898:17:19"},{"body":{"id":5716,"nodeType":"Block","src":"2076:328:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":5687,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"2098:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5689,"indexExpression":{"id":5688,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5679,"src":"2106:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:19:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":5690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2118:12:19","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":8698,"src":"2098:32:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5691,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"2134:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2098:49:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5715,"nodeType":"IfStatement","src":"2094:296:19","trueBody":{"id":5714,"nodeType":"Block","src":"2149:241:19","statements":[{"expression":{"id":5702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":5693,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"2171:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5695,"indexExpression":{"id":5694,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5679,"src":"2179:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2171:19:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":5696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:17:19","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":8701,"src":"2171:37:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":5700,"indexExpression":{"baseExpression":{"id":5697,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"2209:17:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":5699,"indexExpression":{"id":5698,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5679,"src":"2227:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2209:29:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2171:68:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5701,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"2242:8:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2171:79:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5703,"nodeType":"ExpressionStatement","src":"2171:79:19"},{"expression":{"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2272:31:19","subExpression":{"baseExpression":{"id":5704,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"2274:17:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":5706,"indexExpression":{"id":5705,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5679,"src":"2292:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:29:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":5708,"nodeType":"ExpressionStatement","src":"2272:31:19"},{"expression":{"id":5711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5709,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"2325:12:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2340:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2325:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5712,"nodeType":"ExpressionStatement","src":"2325:19:19"},{"id":5713,"nodeType":"Break","src":"2366:5:19"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5681,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5679,"src":"2038:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5682,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2051:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2038:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5717,"initializationExpression":{"assignments":[5679],"declarations":[{"constant":false,"id":5679,"mutability":"mutable","name":"facetIndex","nameLocation":"2026:10:19","nodeType":"VariableDeclaration","scope":5717,"src":"2018:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5678,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5680,"nodeType":"VariableDeclarationStatement","src":"2018:18:19"},"loopExpression":{"expression":{"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2062:12:19","subExpression":{"id":5684,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5679,"src":"2064:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5686,"nodeType":"ExpressionStatement","src":"2062:12:19"},"nodeType":"ForStatement","src":"2013:391:19"},{"condition":{"id":5718,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"2502:12:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5725,"nodeType":"IfStatement","src":"2498:97:19","trueBody":{"id":5724,"nodeType":"Block","src":"2516:79:19","statements":[{"expression":{"id":5721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5719,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"2534:12:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2549:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2534:20:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5722,"nodeType":"ExpressionStatement","src":"2534:20:19"},{"id":5723,"nodeType":"Continue","src":"2572:8:19"}]}},{"expression":{"id":5731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5726,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"2673:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5728,"indexExpression":{"id":5727,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2681:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2673:18:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":5729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2692:12:19","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":8698,"src":"2673:31:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5730,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"2707:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2673:47:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5732,"nodeType":"ExpressionStatement","src":"2673:47:19"},{"expression":{"id":5742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5733,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"2734:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5735,"indexExpression":{"id":5734,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2742:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2734:18:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":5736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2753:17:19","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":8701,"src":"2734:36:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5740,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"2786:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2773:12:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":5737,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2777:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5738,"nodeType":"ArrayTypeName","src":"2777:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"2734:66:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":5743,"nodeType":"ExpressionStatement","src":"2734:66:19"},{"expression":{"id":5751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":5744,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"2814:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5746,"indexExpression":{"id":5745,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2822:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2814:18:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":5747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2833:17:19","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":8701,"src":"2814:36:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":5749,"indexExpression":{"hexValue":"30","id":5748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2851:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2814:39:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5750,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"2856:8:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2814:50:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5752,"nodeType":"ExpressionStatement","src":"2814:50:19"},{"expression":{"id":5757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5753,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"2878:17:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":5755,"indexExpression":{"id":5754,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2896:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:28:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":5756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2878:32:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":5758,"nodeType":"ExpressionStatement","src":"2878:32:19"},{"expression":{"id":5760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2924:11:19","subExpression":{"id":5759,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2926:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5761,"nodeType":"ExpressionStatement","src":"2924:11:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5654,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"1682:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5655,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"1698:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1682:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5763,"initializationExpression":{"assignments":[5652],"declarations":[{"constant":false,"id":5652,"mutability":"mutable","name":"selectorIndex","nameLocation":"1667:13:19","nodeType":"VariableDeclaration","scope":5763,"src":"1659:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5651,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5653,"nodeType":"VariableDeclarationStatement","src":"1659:21:19"},"loopExpression":{"expression":{"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1713:15:19","subExpression":{"id":5657,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"1715:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5659,"nodeType":"ExpressionStatement","src":"1713:15:19"},"nodeType":"ForStatement","src":"1654:1292:19"},{"body":{"id":5791,"nodeType":"Block","src":"3006:406:19","statements":[{"assignments":[5771],"declarations":[{"constant":false,"id":5771,"mutability":"mutable","name":"numSelectors","nameLocation":"3028:12:19","nodeType":"VariableDeclaration","scope":5791,"src":"3020:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5770,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5775,"initialValue":{"baseExpression":{"id":5772,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"3043:17:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":5774,"indexExpression":{"id":5773,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"3061:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3043:29:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3020:52:19"},{"assignments":[5780],"declarations":[{"constant":false,"id":5780,"mutability":"mutable","name":"selectors","nameLocation":"3102:9:19","nodeType":"VariableDeclaration","scope":5791,"src":"3086:25:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":5778,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3086:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5779,"nodeType":"ArrayTypeName","src":"3086:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":5785,"initialValue":{"expression":{"baseExpression":{"id":5781,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"3114:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":5783,"indexExpression":{"id":5782,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"3122:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3114:19:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":5784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3134:17:19","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":8701,"src":"3114:37:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3086:65:19"},{"AST":{"nodeType":"YulBlock","src":"3271:63:19","statements":[{"expression":{"arguments":[{"name":"selectors","nodeType":"YulIdentifier","src":"3296:9:19"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"3307:12:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3289:6:19"},"nodeType":"YulFunctionCall","src":"3289:31:19"},"nodeType":"YulExpressionStatement","src":"3289:31:19"}]},"evmVersion":"paris","externalReferences":[{"declaration":5771,"isOffset":false,"isSlot":false,"src":"3307:12:19","valueSize":1},{"declaration":5780,"isOffset":false,"isSlot":false,"src":"3296:9:19","valueSize":1}],"id":5786,"nodeType":"InlineAssembly","src":"3262:72:19"},{"id":5790,"nodeType":"UncheckedBlock","src":"3347:55:19","statements":[{"expression":{"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3375:12:19","subExpression":{"id":5787,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"3377:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5789,"nodeType":"ExpressionStatement","src":"3375:12:19"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5767,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"2980:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5768,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"2993:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5792,"initializationExpression":{"assignments":[5765],"declarations":[{"constant":false,"id":5765,"mutability":"mutable","name":"facetIndex","nameLocation":"2968:10:19","nodeType":"VariableDeclaration","scope":5792,"src":"2960:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5764,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5766,"nodeType":"VariableDeclarationStatement","src":"2960:18:19"},"nodeType":"ForStatement","src":"2955:457:19"},{"AST":{"nodeType":"YulBlock","src":"3516:50:19","statements":[{"expression":{"arguments":[{"name":"facets_","nodeType":"YulIdentifier","src":"3537:7:19"},{"name":"numFacets","nodeType":"YulIdentifier","src":"3546:9:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3530:6:19"},"nodeType":"YulFunctionCall","src":"3530:26:19"},"nodeType":"YulExpressionStatement","src":"3530:26:19"}]},"evmVersion":"paris","externalReferences":[{"declaration":5611,"isOffset":false,"isSlot":false,"src":"3537:7:19","valueSize":1},{"declaration":5649,"isOffset":false,"isSlot":false,"src":"3546:9:19","valueSize":1}],"id":5793,"nodeType":"InlineAssembly","src":"3507:59:19"}]},"baseFunctions":[8710],"documentation":{"id":5605,"nodeType":"StructuredDocumentation","src":"996:78:19","text":"@notice Gets all facets and their selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":true,"kind":"function","modifiers":[],"name":"facets","nameLocation":"1088:6:19","overrides":{"id":5607,"nodeType":"OverrideSpecifier","overrides":[],"src":"1111:8:19"},"parameters":{"id":5606,"nodeType":"ParameterList","parameters":[],"src":"1094:2:19"},"returnParameters":{"id":5612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5611,"mutability":"mutable","name":"facets_","nameLocation":"1144:7:19","nodeType":"VariableDeclaration","scope":5795,"src":"1129:22:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":5609,"nodeType":"UserDefinedTypeName","pathNode":{"id":5608,"name":"Facet","nameLocations":["1129:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":8702,"src":"1129:5:19"},"referencedDeclaration":8702,"src":"1129:5:19","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":5610,"nodeType":"ArrayTypeName","src":"1129:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"1128:24:19"},"scope":6029,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":5873,"nodeType":"FunctionDefinition","src":"3785:997:19","nodes":[],"body":{"id":5872,"nodeType":"Block","src":"3920:862:19","nodes":[],"statements":[{"assignments":[5809],"declarations":[{"constant":false,"id":5809,"mutability":"mutable","name":"ds","nameLocation":"3964:2:19","nodeType":"VariableDeclaration","scope":5872,"src":"3930:36:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5808,"nodeType":"UserDefinedTypeName","pathNode":{"id":5807,"name":"LibDiamond.DiamondStorage","nameLocations":["3930:10:19","3941:14:19"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"3930:25:19"},"referencedDeclaration":9590,"src":"3930:25:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5813,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5810,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"3969:10:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3980:14:19","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"3969:25:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":5812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3930:66:19"},{"assignments":[5815],"declarations":[{"constant":false,"id":5815,"mutability":"mutable","name":"selectorCount","nameLocation":"4014:13:19","nodeType":"VariableDeclaration","scope":5872,"src":"4006:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5814,"name":"uint256","nodeType":"ElementaryTypeName","src":"4006:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5819,"initialValue":{"expression":{"expression":{"id":5816,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"4030:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4033:9:19","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"4030:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:6:19","memberName":"length","nodeType":"MemberAccess","src":"4030:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4006:43:19"},{"assignments":[5821],"declarations":[{"constant":false,"id":5821,"mutability":"mutable","name":"numSelectors","nameLocation":"4067:12:19","nodeType":"VariableDeclaration","scope":5872,"src":"4059:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5820,"name":"uint256","nodeType":"ElementaryTypeName","src":"4059:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5822,"nodeType":"VariableDeclarationStatement","src":"4059:20:19"},{"expression":{"id":5829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5823,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5803,"src":"4089:23:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5827,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"4128:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4115:12:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":5824,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4119:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5825,"nodeType":"ArrayTypeName","src":"4119:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":5828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4089:53:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":5830,"nodeType":"ExpressionStatement","src":"4089:53:19"},{"body":{"id":5869,"nodeType":"Block","src":"4271:320:19","statements":[{"assignments":[5841],"declarations":[{"constant":false,"id":5841,"mutability":"mutable","name":"selector","nameLocation":"4292:8:19","nodeType":"VariableDeclaration","scope":5869,"src":"4285:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5840,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4285:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":5846,"initialValue":{"baseExpression":{"expression":{"id":5842,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"4303:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4306:9:19","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"4303:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5845,"indexExpression":{"id":5844,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5832,"src":"4316:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4303:27:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4285:45:19"},{"assignments":[5848],"declarations":[{"constant":false,"id":5848,"mutability":"mutable","name":"facetAddress_","nameLocation":"4352:13:19","nodeType":"VariableDeclaration","scope":5869,"src":"4344:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5847,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5854,"initialValue":{"expression":{"baseExpression":{"expression":{"id":5849,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"4368:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:31:19","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"4368:34:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":5852,"indexExpression":{"id":5851,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5841,"src":"4403:8:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4368:44:19","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":5853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4413:12:19","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"4368:57:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4344:81:19"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5855,"name":"_facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5798,"src":"4443:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5856,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5848,"src":"4453:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5868,"nodeType":"IfStatement","src":"4439:142:19","trueBody":{"id":5867,"nodeType":"Block","src":"4468:113:19","statements":[{"expression":{"id":5862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5858,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5803,"src":"4486:23:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":5860,"indexExpression":{"id":5859,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"4510:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4486:37:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5861,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5841,"src":"4526:8:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4486:48:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5863,"nodeType":"ExpressionStatement","src":"4486:48:19"},{"expression":{"id":5865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4552:14:19","subExpression":{"id":5864,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"4554:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5866,"nodeType":"ExpressionStatement","src":"4552:14:19"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5834,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5832,"src":"4223:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5835,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"4239:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4223:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5870,"initializationExpression":{"assignments":[5832],"declarations":[{"constant":false,"id":5832,"mutability":"mutable","name":"selectorIndex","nameLocation":"4208:13:19","nodeType":"VariableDeclaration","scope":5870,"src":"4200:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5831,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5833,"nodeType":"VariableDeclarationStatement","src":"4200:21:19"},"loopExpression":{"expression":{"id":5838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4254:15:19","subExpression":{"id":5837,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5832,"src":"4256:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5839,"nodeType":"ExpressionStatement","src":"4254:15:19"},"nodeType":"ForStatement","src":"4195:396:19"},{"AST":{"nodeType":"YulBlock","src":"4707:69:19","statements":[{"expression":{"arguments":[{"name":"_facetFunctionSelectors","nodeType":"YulIdentifier","src":"4728:23:19"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"4753:12:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4721:6:19"},"nodeType":"YulFunctionCall","src":"4721:45:19"},"nodeType":"YulExpressionStatement","src":"4721:45:19"}]},"evmVersion":"paris","externalReferences":[{"declaration":5803,"isOffset":false,"isSlot":false,"src":"4728:23:19","valueSize":1},{"declaration":5821,"isOffset":false,"isSlot":false,"src":"4753:12:19","valueSize":1}],"id":5871,"nodeType":"InlineAssembly","src":"4698:78:19"}]},"baseFunctions":[8719],"documentation":{"id":5796,"nodeType":"StructuredDocumentation","src":"3578:202:19","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return _facetFunctionSelectors The selectors associated with a facet address."},"functionSelector":"adfca15e","implemented":true,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"3794:22:19","overrides":{"id":5800,"nodeType":"OverrideSpecifier","overrides":[],"src":"3861:8:19"},"parameters":{"id":5799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5798,"mutability":"mutable","name":"_facet","nameLocation":"3834:6:19","nodeType":"VariableDeclaration","scope":5873,"src":"3826:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5797,"name":"address","nodeType":"ElementaryTypeName","src":"3826:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3816:30:19"},"returnParameters":{"id":5804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5803,"mutability":"mutable","name":"_facetFunctionSelectors","nameLocation":"3895:23:19","nodeType":"VariableDeclaration","scope":5873,"src":"3879:39:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":5801,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3879:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5802,"nodeType":"ArrayTypeName","src":"3879:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3878:41:19"},"scope":6029,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":5978,"nodeType":"FunctionDefinition","src":"4883:1495:19","nodes":[],"body":{"id":5977,"nodeType":"Block","src":"4975:1403:19","nodes":[],"statements":[{"assignments":[5885],"declarations":[{"constant":false,"id":5885,"mutability":"mutable","name":"ds","nameLocation":"5019:2:19","nodeType":"VariableDeclaration","scope":5977,"src":"4985:36:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5884,"nodeType":"UserDefinedTypeName","pathNode":{"id":5883,"name":"LibDiamond.DiamondStorage","nameLocations":["4985:10:19","4996:14:19"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"4985:25:19"},"referencedDeclaration":9590,"src":"4985:25:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5889,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5886,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"5024:10:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5035:14:19","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"5024:25:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4985:66:19"},{"assignments":[5891],"declarations":[{"constant":false,"id":5891,"mutability":"mutable","name":"selectorCount","nameLocation":"5069:13:19","nodeType":"VariableDeclaration","scope":5977,"src":"5061:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5890,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5895,"initialValue":{"expression":{"expression":{"id":5892,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5885,"src":"5085:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5088:9:19","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"5085:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5098:6:19","memberName":"length","nodeType":"MemberAccess","src":"5085:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5061:43:19"},{"expression":{"id":5902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5896,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5879,"src":"5174:15:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5900,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"5206:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5192:13:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":5897,"name":"address","nodeType":"ElementaryTypeName","src":"5196:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5898,"nodeType":"ArrayTypeName","src":"5196:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":5901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5192:28:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5174:46:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5903,"nodeType":"ExpressionStatement","src":"5174:46:19"},{"assignments":[5905],"declarations":[{"constant":false,"id":5905,"mutability":"mutable","name":"numFacets","nameLocation":"5238:9:19","nodeType":"VariableDeclaration","scope":5977,"src":"5230:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5904,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5906,"nodeType":"VariableDeclarationStatement","src":"5230:17:19"},{"body":{"id":5974,"nodeType":"Block","src":"5376:816:19","statements":[{"assignments":[5917],"declarations":[{"constant":false,"id":5917,"mutability":"mutable","name":"selector","nameLocation":"5397:8:19","nodeType":"VariableDeclaration","scope":5974,"src":"5390:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5916,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5390:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":5922,"initialValue":{"baseExpression":{"expression":{"id":5918,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5885,"src":"5408:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5411:9:19","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"5408:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5921,"indexExpression":{"id":5920,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"5421:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5408:27:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5390:45:19"},{"assignments":[5924],"declarations":[{"constant":false,"id":5924,"mutability":"mutable","name":"facetAddress_","nameLocation":"5457:13:19","nodeType":"VariableDeclaration","scope":5974,"src":"5449:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5923,"name":"address","nodeType":"ElementaryTypeName","src":"5449:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5930,"initialValue":{"expression":{"baseExpression":{"expression":{"id":5925,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5885,"src":"5473:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5476:31:19","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"5473:34:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":5928,"indexExpression":{"id":5927,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"5508:8:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:44:19","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":5929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5518:12:19","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"5473:57:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5449:81:19"},{"assignments":[5932],"declarations":[{"constant":false,"id":5932,"mutability":"mutable","name":"continueLoop","nameLocation":"5549:12:19","nodeType":"VariableDeclaration","scope":5974,"src":"5544:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5931,"name":"bool","nodeType":"ElementaryTypeName","src":"5544:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5933,"nodeType":"VariableDeclarationStatement","src":"5544:17:19"},{"body":{"id":5955,"nodeType":"Block","src":"5731:169:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5943,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"5753:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":5944,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5879,"src":"5770:15:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5946,"indexExpression":{"id":5945,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"5786:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5770:27:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5753:44:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5954,"nodeType":"IfStatement","src":"5749:137:19","trueBody":{"id":5953,"nodeType":"Block","src":"5799:87:19","statements":[{"expression":{"id":5950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5948,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5932,"src":"5821:12:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5836:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5821:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5951,"nodeType":"ExpressionStatement","src":"5821:19:19"},{"id":5952,"nodeType":"Break","src":"5862:5:19"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5937,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"5693:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5938,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"5706:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5693:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5956,"initializationExpression":{"assignments":[5935],"declarations":[{"constant":false,"id":5935,"mutability":"mutable","name":"facetIndex","nameLocation":"5681:10:19","nodeType":"VariableDeclaration","scope":5956,"src":"5673:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5934,"name":"uint256","nodeType":"ElementaryTypeName","src":"5673:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5936,"nodeType":"VariableDeclarationStatement","src":"5673:18:19"},"loopExpression":{"expression":{"id":5941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5717:12:19","subExpression":{"id":5940,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"5719:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5942,"nodeType":"ExpressionStatement","src":"5717:12:19"},"nodeType":"ForStatement","src":"5668:232:19"},{"condition":{"id":5957,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5932,"src":"5977:12:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5964,"nodeType":"IfStatement","src":"5973:97:19","trueBody":{"id":5963,"nodeType":"Block","src":"5991:79:19","statements":[{"expression":{"id":5960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5958,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5932,"src":"6009:12:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6024:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6009:20:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5961,"nodeType":"ExpressionStatement","src":"6009:20:19"},{"id":5962,"nodeType":"Continue","src":"6047:8:19"}]}},{"expression":{"id":5969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5965,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5879,"src":"6114:15:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5967,"indexExpression":{"id":5966,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"6130:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6114:26:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5968,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"6143:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6114:42:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5970,"nodeType":"ExpressionStatement","src":"6114:42:19"},{"expression":{"id":5972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6170:11:19","subExpression":{"id":5971,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"6172:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5973,"nodeType":"ExpressionStatement","src":"6170:11:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5910,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"5328:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5911,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"5344:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5328:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5975,"initializationExpression":{"assignments":[5908],"declarations":[{"constant":false,"id":5908,"mutability":"mutable","name":"selectorIndex","nameLocation":"5313:13:19","nodeType":"VariableDeclaration","scope":5975,"src":"5305:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5907,"name":"uint256","nodeType":"ElementaryTypeName","src":"5305:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5909,"nodeType":"VariableDeclarationStatement","src":"5305:21:19"},"loopExpression":{"expression":{"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5359:15:19","subExpression":{"id":5913,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"5361:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5915,"nodeType":"ExpressionStatement","src":"5359:15:19"},"nodeType":"ForStatement","src":"5300:892:19"},{"AST":{"nodeType":"YulBlock","src":"6314:58:19","statements":[{"expression":{"arguments":[{"name":"facetAddresses_","nodeType":"YulIdentifier","src":"6335:15:19"},{"name":"numFacets","nodeType":"YulIdentifier","src":"6352:9:19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6328:6:19"},"nodeType":"YulFunctionCall","src":"6328:34:19"},"nodeType":"YulExpressionStatement","src":"6328:34:19"}]},"evmVersion":"paris","externalReferences":[{"declaration":5879,"isOffset":false,"isSlot":false,"src":"6335:15:19","valueSize":1},{"declaration":5905,"isOffset":false,"isSlot":false,"src":"6352:9:19","valueSize":1}],"id":5976,"nodeType":"InlineAssembly","src":"6305:67:19"}]},"baseFunctions":[8726],"documentation":{"id":5874,"nodeType":"StructuredDocumentation","src":"4788:90:19","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":true,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"4892:14:19","overrides":{"id":5876,"nodeType":"OverrideSpecifier","overrides":[],"src":"4923:8:19"},"parameters":{"id":5875,"nodeType":"ParameterList","parameters":[],"src":"4906:2:19"},"returnParameters":{"id":5880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5879,"mutability":"mutable","name":"facetAddresses_","nameLocation":"4958:15:19","nodeType":"VariableDeclaration","scope":5978,"src":"4941:32:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5877,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5878,"nodeType":"ArrayTypeName","src":"4941:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4940:34:19"},"scope":6029,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6005,"nodeType":"FunctionDefinition","src":"6616:278:19","nodes":[],"body":{"id":6004,"nodeType":"Block","src":"6719:175:19","nodes":[],"statements":[{"assignments":[5991],"declarations":[{"constant":false,"id":5991,"mutability":"mutable","name":"ds","nameLocation":"6763:2:19","nodeType":"VariableDeclaration","scope":6004,"src":"6729:36:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5990,"nodeType":"UserDefinedTypeName","pathNode":{"id":5989,"name":"LibDiamond.DiamondStorage","nameLocations":["6729:10:19","6740:14:19"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"6729:25:19"},"referencedDeclaration":9590,"src":"6729:25:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5995,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5992,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"6768:10:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6779:14:19","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"6768:25:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":5994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6729:66:19"},{"expression":{"id":6002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5996,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"6805:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":5997,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5991,"src":"6821:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6824:31:19","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"6821:34:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":6000,"indexExpression":{"id":5999,"name":"_functionSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5981,"src":"6856:17:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:53:19","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":6001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:12:19","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"6821:66:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6805:82:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6003,"nodeType":"ExpressionStatement","src":"6805:82:19"}]},"baseFunctions":[8734],"documentation":{"id":5979,"nodeType":"StructuredDocumentation","src":"6384:227:19","text":"@notice Gets the facet address that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":true,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"6625:12:19","overrides":{"id":5983,"nodeType":"OverrideSpecifier","overrides":[],"src":"6678:8:19"},"parameters":{"id":5982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5981,"mutability":"mutable","name":"_functionSelector","nameLocation":"6645:17:19","nodeType":"VariableDeclaration","scope":6005,"src":"6638:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5980,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6638:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6637:26:19"},"returnParameters":{"id":5986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5985,"mutability":"mutable","name":"facetAddress_","nameLocation":"6704:13:19","nodeType":"VariableDeclaration","scope":6005,"src":"6696:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5984,"name":"address","nodeType":"ElementaryTypeName","src":"6696:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6695:23:19"},"scope":6029,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6028,"nodeType":"FunctionDefinition","src":"6932:222:19","nodes":[],"body":{"id":6027,"nodeType":"Block","src":"7018:136:19","nodes":[],"statements":[{"assignments":[6017],"declarations":[{"constant":false,"id":6017,"mutability":"mutable","name":"ds","nameLocation":"7062:2:19","nodeType":"VariableDeclaration","scope":6027,"src":"7028:36:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":6016,"nodeType":"UserDefinedTypeName","pathNode":{"id":6015,"name":"LibDiamond.DiamondStorage","nameLocations":["7028:10:19","7039:14:19"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"7028:25:19"},"referencedDeclaration":9590,"src":"7028:25:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":6021,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6018,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"7067:10:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":6019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7078:14:19","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"7067:25:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7028:66:19"},{"expression":{"baseExpression":{"expression":{"id":6022,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7111:2:19","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":6023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7114:19:19","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"7111:22:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":6025,"indexExpression":{"id":6024,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"7134:12:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:36:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6012,"id":6026,"nodeType":"Return","src":"7104:43:19"}]},"baseFunctions":[8745],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6941:17:19","overrides":{"id":6009,"nodeType":"OverrideSpecifier","overrides":[],"src":"6994:8:19"},"parameters":{"id":6008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6007,"mutability":"mutable","name":"_interfaceId","nameLocation":"6966:12:19","nodeType":"VariableDeclaration","scope":6028,"src":"6959:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6006,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6959:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6958:21:19"},"returnParameters":{"id":6012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6028,"src":"7012:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6010,"name":"bool","nodeType":"ElementaryTypeName","src":"7012:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7011:6:19"},"scope":6029,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":5601,"name":"IDiamondLoupe","nameLocations":["682:13:19"],"nodeType":"IdentifierPath","referencedDeclaration":8735,"src":"682:13:19"},"id":5602,"nodeType":"InheritanceSpecifier","src":"682:13:19"},{"baseName":{"id":5603,"name":"IERC165","nameLocations":["697:7:19"],"nodeType":"IdentifierPath","referencedDeclaration":8746,"src":"697:7:19"},"id":5604,"nodeType":"InheritanceSpecifier","src":"697:7:19"}],"canonicalName":"DiamondLoupeFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6029,8746,8735],"name":"DiamondLoupeFacet","nameLocation":"661:17:19","scope":6030,"usedErrors":[]}],"license":"MIT"},"id":19} \ No newline at end of file diff --git a/contracts/out/ECDSA.sol/ECDSA.json b/contracts/out/ECDSA.sol/ECDSA.json deleted file mode 100644 index 55dd0fd3c9..0000000000 --- a/contracts/out/ECDSA.sol/ECDSA.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ef4f46fb7fbf8f2fdb866401cae813b153516a00d1b5961505ad94ec4f10c3a364736f6c63430008130033","sourceMap":"370:9444:9:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ef4f46fb7fbf8f2fdb866401cae813b153516a00d1b5961505ad94ec4f10c3a364736f6c63430008130033","sourceMap":"370:9444:9:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":"ECDSA"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","id":2313,"exportedSymbols":{"ECDSA":[2312],"Math":[3884],"SignedMath":[3989],"Strings":[1900]},"nodeType":"SourceUnit","src":"112:9703:9","nodes":[{"id":1902,"nodeType":"PragmaDirective","src":"112:24:9","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":1903,"nodeType":"ImportDirective","src":"138:24:9","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"../Strings.sol","nameLocation":"-1:-1:-1","scope":2313,"sourceUnit":1901,"symbolAliases":[],"unitAlias":""},{"id":2312,"nodeType":"ContractDefinition","src":"370:9444:9","nodes":[{"id":1909,"nodeType":"EnumDefinition","src":"390:126:9","nodes":[],"canonicalName":"ECDSA.RecoverError","members":[{"id":1905,"name":"NoError","nameLocation":"418:7:9","nodeType":"EnumValue","src":"418:7:9"},{"id":1906,"name":"InvalidSignature","nameLocation":"435:16:9","nodeType":"EnumValue","src":"435:16:9"},{"id":1907,"name":"InvalidSignatureLength","nameLocation":"461:22:9","nodeType":"EnumValue","src":"461:22:9"},{"id":1908,"name":"InvalidSignatureS","nameLocation":"493:17:9","nodeType":"EnumValue","src":"493:17:9"}],"name":"RecoverError","nameLocation":"395:12:9"},{"id":1912,"nodeType":"ErrorDefinition","src":"590:30:9","nodes":[],"documentation":{"id":1910,"nodeType":"StructuredDocumentation","src":"522:63:9","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","name":"ECDSAInvalidSignature","nameLocation":"596:21:9","parameters":{"id":1911,"nodeType":"ParameterList","parameters":[],"src":"617:2:9"}},{"id":1917,"nodeType":"ErrorDefinition","src":"691:50:9","nodes":[],"documentation":{"id":1913,"nodeType":"StructuredDocumentation","src":"626:60:9","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","name":"ECDSAInvalidSignatureLength","nameLocation":"697:27:9","parameters":{"id":1916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1915,"mutability":"mutable","name":"length","nameLocation":"733:6:9","nodeType":"VariableDeclaration","scope":1917,"src":"725:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1914,"name":"uint256","nodeType":"ElementaryTypeName","src":"725:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"724:16:9"}},{"id":1922,"nodeType":"ErrorDefinition","src":"837:40:9","nodes":[],"documentation":{"id":1918,"nodeType":"StructuredDocumentation","src":"747:85:9","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","name":"ECDSAInvalidSignatureS","nameLocation":"843:22:9","parameters":{"id":1921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1920,"mutability":"mutable","name":"s","nameLocation":"874:1:9","nodeType":"VariableDeclaration","scope":1922,"src":"866:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"866:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"865:11:9"}},{"id":1970,"nodeType":"FunctionDefinition","src":"883:532:9","nodes":[],"body":{"id":1969,"nodeType":"Block","src":"955:460:9","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1930,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"969:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1931,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"978:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"991:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1905,"src":"978:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"src":"969:29:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"id":1939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1936,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"1065:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1937,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"1074:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1087:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":1906,"src":"1074:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"src":"1065:38:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"id":1947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1944,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"1170:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1945,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"1179:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1192:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":1907,"src":"1179:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"src":"1170:44:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1956,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"1304:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1957,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"1313:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1326:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":1908,"src":"1313:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"src":"1304:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1965,"nodeType":"IfStatement","src":"1300:109:9","trueBody":{"id":1964,"nodeType":"Block","src":"1345:64:9","statements":[{"errorCall":{"arguments":[{"id":1961,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1389:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1960,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1922,"src":"1366:22:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":1962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1963,"nodeType":"RevertStatement","src":"1359:39:9"}]}},"id":1966,"nodeType":"IfStatement","src":"1166:243:9","trueBody":{"id":1955,"nodeType":"Block","src":"1216:78:9","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":1951,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1273:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:9","typeDescriptions":{}}},"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1948,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1917,"src":"1237:27:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1954,"nodeType":"RevertStatement","src":"1230:53:9"}]}},"id":1967,"nodeType":"IfStatement","src":"1061:348:9","trueBody":{"id":1943,"nodeType":"Block","src":"1105:55:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1940,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1912,"src":"1126:21:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1126:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1942,"nodeType":"RevertStatement","src":"1119:30:9"}]}},"id":1968,"nodeType":"IfStatement","src":"965:444:9","trueBody":{"id":1935,"nodeType":"Block","src":"1000:55:9","statements":[{"functionReturnParameters":1929,"id":1934,"nodeType":"Return","src":"1014:7:9"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"892:11:9","parameters":{"id":1928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1925,"mutability":"mutable","name":"error","nameLocation":"917:5:9","nodeType":"VariableDeclaration","scope":1970,"src":"904:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1924,"nodeType":"UserDefinedTypeName","pathNode":{"id":1923,"name":"RecoverError","nameLocations":["904:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"904:12:9"},"referencedDeclaration":1909,"src":"904:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1927,"mutability":"mutable","name":"errorArg","nameLocation":"932:8:9","nodeType":"VariableDeclaration","scope":1970,"src":"924:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"924:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"903:38:9"},"returnParameters":{"id":1929,"nodeType":"ParameterList","parameters":[],"src":"955:0:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":2023,"nodeType":"FunctionDefinition","src":"2483:766:9","nodes":[],"body":{"id":2022,"nodeType":"Block","src":"2596:653:9","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1985,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"2610:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2620:6:9","memberName":"length","nodeType":"MemberAccess","src":"2610:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":1987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2630:2:9","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2610:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2020,"nodeType":"Block","src":"3135:108:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3165:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3157:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2007,"name":"address","nodeType":"ElementaryTypeName","src":"3157:7:9","typeDescriptions":{}}},"id":2010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3157:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2011,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3169:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3182:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":1907,"src":"3169:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":2015,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"3214:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3224:6:9","memberName":"length","nodeType":"MemberAccess","src":"3214:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3206:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3206:7:9","typeDescriptions":{}}},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3206:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3156:76:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1984,"id":2019,"nodeType":"Return","src":"3149:83:9"}]},"id":2021,"nodeType":"IfStatement","src":"2606:637:9","trueBody":{"id":2006,"nodeType":"Block","src":"2634:495:9","statements":[{"assignments":[1990],"declarations":[{"constant":false,"id":1990,"mutability":"mutable","name":"r","nameLocation":"2656:1:9","nodeType":"VariableDeclaration","scope":2006,"src":"2648:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2648:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1991,"nodeType":"VariableDeclarationStatement","src":"2648:9:9"},{"assignments":[1993],"declarations":[{"constant":false,"id":1993,"mutability":"mutable","name":"s","nameLocation":"2679:1:9","nodeType":"VariableDeclaration","scope":2006,"src":"2671:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2671:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1994,"nodeType":"VariableDeclarationStatement","src":"2671:9:9"},{"assignments":[1996],"declarations":[{"constant":false,"id":1996,"mutability":"mutable","name":"v","nameLocation":"2700:1:9","nodeType":"VariableDeclaration","scope":2006,"src":"2694:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1995,"name":"uint8","nodeType":"ElementaryTypeName","src":"2694:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1997,"nodeType":"VariableDeclarationStatement","src":"2694:7:9"},{"AST":{"nodeType":"YulBlock","src":"2902:171:9","statements":[{"nodeType":"YulAssignment","src":"2920:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2935:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2946:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2931:3:9"},"nodeType":"YulFunctionCall","src":"2931:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2925:5:9"},"nodeType":"YulFunctionCall","src":"2925:27:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2920:1:9"}]},{"nodeType":"YulAssignment","src":"2969:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2984:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:9","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2980:3:9"},"nodeType":"YulFunctionCall","src":"2980:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2974:5:9"},"nodeType":"YulFunctionCall","src":"2974:27:9"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2969:1:9"}]},{"nodeType":"YulAssignment","src":"3018:41:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3028:1:9","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"3041:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3052:4:9","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:9"},"nodeType":"YulFunctionCall","src":"3037:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3031:5:9"},"nodeType":"YulFunctionCall","src":"3031:27:9"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"3023:4:9"},"nodeType":"YulFunctionCall","src":"3023:36:9"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"3018:1:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1990,"isOffset":false,"isSlot":false,"src":"2920:1:9","valueSize":1},{"declaration":1993,"isOffset":false,"isSlot":false,"src":"2969:1:9","valueSize":1},{"declaration":1975,"isOffset":false,"isSlot":false,"src":"2935:9:9","valueSize":1},{"declaration":1975,"isOffset":false,"isSlot":false,"src":"2984:9:9","valueSize":1},{"declaration":1975,"isOffset":false,"isSlot":false,"src":"3041:9:9","valueSize":1},{"declaration":1996,"isOffset":false,"isSlot":false,"src":"3018:1:9","valueSize":1}],"id":1998,"nodeType":"InlineAssembly","src":"2893:180:9"},{"expression":{"arguments":[{"id":2000,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"3104:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2001,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1996,"src":"3110:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2002,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"3113:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2003,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1993,"src":"3116:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1999,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2023,2103,2211],"referencedDeclaration":2211,"src":"3093:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3093:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1984,"id":2005,"nodeType":"Return","src":"3086:32:9"}]}}]},"documentation":{"id":1971,"nodeType":"StructuredDocumentation","src":"1421:1057:9","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2492:10:9","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1973,"mutability":"mutable","name":"hash","nameLocation":"2511:4:9","nodeType":"VariableDeclaration","scope":2023,"src":"2503:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2503:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1975,"mutability":"mutable","name":"signature","nameLocation":"2530:9:9","nodeType":"VariableDeclaration","scope":2023,"src":"2517:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1974,"name":"bytes","nodeType":"ElementaryTypeName","src":"2517:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2502:38:9"},"returnParameters":{"id":1984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2023,"src":"2564:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1977,"name":"address","nodeType":"ElementaryTypeName","src":"2564:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2023,"src":"2573:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1980,"nodeType":"UserDefinedTypeName","pathNode":{"id":1979,"name":"RecoverError","nameLocations":["2573:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"2573:12:9"},"referencedDeclaration":1909,"src":"2573:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2023,"src":"2587:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2587:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2563:32:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2053,"nodeType":"FunctionDefinition","src":"4039:255:9","nodes":[],"body":{"id":2052,"nodeType":"Block","src":"4126:168:9","nodes":[],"statements":[{"assignments":[2034,2037,2039],"declarations":[{"constant":false,"id":2034,"mutability":"mutable","name":"recovered","nameLocation":"4145:9:9","nodeType":"VariableDeclaration","scope":2052,"src":"4137:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2033,"name":"address","nodeType":"ElementaryTypeName","src":"4137:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2037,"mutability":"mutable","name":"error","nameLocation":"4169:5:9","nodeType":"VariableDeclaration","scope":2052,"src":"4156:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2036,"nodeType":"UserDefinedTypeName","pathNode":{"id":2035,"name":"RecoverError","nameLocations":["4156:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"4156:12:9"},"referencedDeclaration":1909,"src":"4156:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2039,"mutability":"mutable","name":"errorArg","nameLocation":"4184:8:9","nodeType":"VariableDeclaration","scope":2052,"src":"4176:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2044,"initialValue":{"arguments":[{"id":2041,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"4207:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2042,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2028,"src":"4213:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2040,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2023,2103,2211],"referencedDeclaration":2023,"src":"4196:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4196:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4136:87:9"},{"expression":{"arguments":[{"id":2046,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2037,"src":"4245:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"id":2047,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2039,"src":"4252:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2045,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"4233:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1909_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4233:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2049,"nodeType":"ExpressionStatement","src":"4233:28:9"},{"expression":{"id":2050,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2034,"src":"4278:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2032,"id":2051,"nodeType":"Return","src":"4271:16:9"}]},"documentation":{"id":2024,"nodeType":"StructuredDocumentation","src":"3255:779:9","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4048:7:9","parameters":{"id":2029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2026,"mutability":"mutable","name":"hash","nameLocation":"4064:4:9","nodeType":"VariableDeclaration","scope":2053,"src":"4056:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4056:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2028,"mutability":"mutable","name":"signature","nameLocation":"4083:9:9","nodeType":"VariableDeclaration","scope":2053,"src":"4070:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2027,"name":"bytes","nodeType":"ElementaryTypeName","src":"4070:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4055:38:9"},"returnParameters":{"id":2032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2053,"src":"4117:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"4117:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4116:9:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2103,"nodeType":"FunctionDefinition","src":"4548:454:9","nodes":[],"body":{"id":2102,"nodeType":"Block","src":"4660:342:9","nodes":[],"statements":[{"id":2101,"nodeType":"UncheckedBlock","src":"4670:326:9","statements":[{"assignments":[2071],"declarations":[{"constant":false,"id":2071,"mutability":"mutable","name":"s","nameLocation":"4702:1:9","nodeType":"VariableDeclaration","scope":2101,"src":"4694:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4694:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2078,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2072,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"4706:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4719:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":2074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4711:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4711:7:9","typeDescriptions":{}}},"id":2076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4711:75:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4706:80:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4694:92:9"},{"assignments":[2080],"declarations":[{"constant":false,"id":2080,"mutability":"mutable","name":"v","nameLocation":"4903:1:9","nodeType":"VariableDeclaration","scope":2101,"src":"4897:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2079,"name":"uint8","nodeType":"ElementaryTypeName","src":"4897:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2093,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2085,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"4922:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4914:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2083,"name":"uint256","nodeType":"ElementaryTypeName","src":"4914:7:9","typeDescriptions":{}}},"id":2086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":2087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4929:3:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4914:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2089,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4913:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":2090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4936:2:9","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4913:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4907:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2081,"name":"uint8","nodeType":"ElementaryTypeName","src":"4907:5:9","typeDescriptions":{}}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4907:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4897:42:9"},{"expression":{"arguments":[{"id":2095,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"4971:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2096,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"4977:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2097,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"4980:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2098,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"4983:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2094,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2023,2103,2211],"referencedDeclaration":2211,"src":"4960:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2069,"id":2100,"nodeType":"Return","src":"4953:32:9"}]}]},"documentation":{"id":2054,"nodeType":"StructuredDocumentation","src":"4300:243:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4557:10:9","parameters":{"id":2061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2056,"mutability":"mutable","name":"hash","nameLocation":"4576:4:9","nodeType":"VariableDeclaration","scope":2103,"src":"4568:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4568:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2058,"mutability":"mutable","name":"r","nameLocation":"4590:1:9","nodeType":"VariableDeclaration","scope":2103,"src":"4582:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4582:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2060,"mutability":"mutable","name":"vs","nameLocation":"4601:2:9","nodeType":"VariableDeclaration","scope":2103,"src":"4593:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4593:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4567:37:9"},"returnParameters":{"id":2069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2103,"src":"4628:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2062,"name":"address","nodeType":"ElementaryTypeName","src":"4628:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2103,"src":"4637:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2065,"nodeType":"UserDefinedTypeName","pathNode":{"id":2064,"name":"RecoverError","nameLocations":["4637:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"4637:12:9"},"referencedDeclaration":1909,"src":"4637:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2103,"src":"4651:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4651:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4627:32:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2136,"nodeType":"FunctionDefinition","src":"5167:250:9","nodes":[],"body":{"id":2135,"nodeType":"Block","src":"5253:164:9","nodes":[],"statements":[{"assignments":[2116,2119,2121],"declarations":[{"constant":false,"id":2116,"mutability":"mutable","name":"recovered","nameLocation":"5272:9:9","nodeType":"VariableDeclaration","scope":2135,"src":"5264:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2115,"name":"address","nodeType":"ElementaryTypeName","src":"5264:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2119,"mutability":"mutable","name":"error","nameLocation":"5296:5:9","nodeType":"VariableDeclaration","scope":2135,"src":"5283:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2118,"nodeType":"UserDefinedTypeName","pathNode":{"id":2117,"name":"RecoverError","nameLocations":["5283:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"5283:12:9"},"referencedDeclaration":1909,"src":"5283:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2121,"mutability":"mutable","name":"errorArg","nameLocation":"5311:8:9","nodeType":"VariableDeclaration","scope":2135,"src":"5303:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5303:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2127,"initialValue":{"arguments":[{"id":2123,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2106,"src":"5334:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2124,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2108,"src":"5340:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2125,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"5343:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2122,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2023,2103,2211],"referencedDeclaration":2103,"src":"5323:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5323:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"5263:83:9"},{"expression":{"arguments":[{"id":2129,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2119,"src":"5368:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"id":2130,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"5375:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2128,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"5356:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1909_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2132,"nodeType":"ExpressionStatement","src":"5356:28:9"},{"expression":{"id":2133,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"5401:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2114,"id":2134,"nodeType":"Return","src":"5394:16:9"}]},"documentation":{"id":2104,"nodeType":"StructuredDocumentation","src":"5008:154:9","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"5176:7:9","parameters":{"id":2111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2106,"mutability":"mutable","name":"hash","nameLocation":"5192:4:9","nodeType":"VariableDeclaration","scope":2136,"src":"5184:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5184:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2108,"mutability":"mutable","name":"r","nameLocation":"5206:1:9","nodeType":"VariableDeclaration","scope":2136,"src":"5198:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5198:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2110,"mutability":"mutable","name":"vs","nameLocation":"5217:2:9","nodeType":"VariableDeclaration","scope":2136,"src":"5209:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5209:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5183:37:9"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2136,"src":"5244:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2112,"name":"address","nodeType":"ElementaryTypeName","src":"5244:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5243:9:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2211,"nodeType":"FunctionDefinition","src":"5591:1530:9","nodes":[],"body":{"id":2210,"nodeType":"Block","src":"5749:1372:9","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2157,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"6645:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6637:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2155,"name":"uint256","nodeType":"ElementaryTypeName","src":"6637:7:9","typeDescriptions":{}}},"id":2158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":2159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6650:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6637:79:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2171,"nodeType":"IfStatement","src":"6633:164:9","trueBody":{"id":2170,"nodeType":"Block","src":"6718:79:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6748:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6740:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2161,"name":"address","nodeType":"ElementaryTypeName","src":"6740:7:9","typeDescriptions":{}}},"id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6740:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2165,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"6752:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6765:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":1908,"src":"6752:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"id":2167,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"6784:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6739:47:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2154,"id":2169,"nodeType":"Return","src":"6732:54:9"}]}},{"assignments":[2173],"declarations":[{"constant":false,"id":2173,"mutability":"mutable","name":"signer","nameLocation":"6899:6:9","nodeType":"VariableDeclaration","scope":2210,"src":"6891:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2172,"name":"address","nodeType":"ElementaryTypeName","src":"6891:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2180,"initialValue":{"arguments":[{"id":2175,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"6918:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2176,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"6924:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2177,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"6927:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2178,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"6930:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2174,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6908:9:9","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6908:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6891:41:9"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2181,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2173,"src":"6946:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6964:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6956:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2182,"name":"address","nodeType":"ElementaryTypeName","src":"6956:7:9","typeDescriptions":{}}},"id":2185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6956:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6946:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2200,"nodeType":"IfStatement","src":"6942:113:9","trueBody":{"id":2199,"nodeType":"Block","src":"6968:87:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6998:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6990:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2187,"name":"address","nodeType":"ElementaryTypeName","src":"6990:7:9","typeDescriptions":{}}},"id":2190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6990:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2191,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"7002:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7015:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":1906,"src":"7002:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":2195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7033:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7033:7:9","typeDescriptions":{}}},"id":2196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7033:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6989:55:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2154,"id":2198,"nodeType":"Return","src":"6982:62:9"}]}},{"expression":{"components":[{"id":2201,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2173,"src":"7073:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2202,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"7081:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7094:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1905,"src":"7081:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":2206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7103:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7103:7:9","typeDescriptions":{}}},"id":2207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7103:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7072:42:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2154,"id":2209,"nodeType":"Return","src":"7065:49:9"}]},"documentation":{"id":2137,"nodeType":"StructuredDocumentation","src":"5423:163:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5600:10:9","parameters":{"id":2146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2139,"mutability":"mutable","name":"hash","nameLocation":"5628:4:9","nodeType":"VariableDeclaration","scope":2211,"src":"5620:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5620:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2141,"mutability":"mutable","name":"v","nameLocation":"5648:1:9","nodeType":"VariableDeclaration","scope":2211,"src":"5642:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2140,"name":"uint8","nodeType":"ElementaryTypeName","src":"5642:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2143,"mutability":"mutable","name":"r","nameLocation":"5667:1:9","nodeType":"VariableDeclaration","scope":2211,"src":"5659:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5659:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2145,"mutability":"mutable","name":"s","nameLocation":"5686:1:9","nodeType":"VariableDeclaration","scope":2211,"src":"5678:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5678:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5610:83:9"},"returnParameters":{"id":2154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2211,"src":"5717:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2147,"name":"address","nodeType":"ElementaryTypeName","src":"5717:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2211,"src":"5726:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2150,"nodeType":"UserDefinedTypeName","pathNode":{"id":2149,"name":"RecoverError","nameLocations":["5726:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"5726:12:9"},"referencedDeclaration":1909,"src":"5726:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2211,"src":"5740:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5740:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5716:32:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2247,"nodeType":"FunctionDefinition","src":"7254:260:9","nodes":[],"body":{"id":2246,"nodeType":"Block","src":"7348:166:9","nodes":[],"statements":[{"assignments":[2226,2229,2231],"declarations":[{"constant":false,"id":2226,"mutability":"mutable","name":"recovered","nameLocation":"7367:9:9","nodeType":"VariableDeclaration","scope":2246,"src":"7359:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2225,"name":"address","nodeType":"ElementaryTypeName","src":"7359:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2229,"mutability":"mutable","name":"error","nameLocation":"7391:5:9","nodeType":"VariableDeclaration","scope":2246,"src":"7378:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2228,"nodeType":"UserDefinedTypeName","pathNode":{"id":2227,"name":"RecoverError","nameLocations":["7378:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"7378:12:9"},"referencedDeclaration":1909,"src":"7378:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2231,"mutability":"mutable","name":"errorArg","nameLocation":"7406:8:9","nodeType":"VariableDeclaration","scope":2246,"src":"7398:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7398:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2238,"initialValue":{"arguments":[{"id":2233,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"7429:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2234,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"7435:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2235,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"7438:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2236,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"7441:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2232,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2023,2103,2211],"referencedDeclaration":2211,"src":"7418:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7418:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7358:85:9"},{"expression":{"arguments":[{"id":2240,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"7465:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},{"id":2241,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"7472:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2239,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"7453:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1909_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7453:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2243,"nodeType":"ExpressionStatement","src":"7453:28:9"},{"expression":{"id":2244,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2226,"src":"7498:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2224,"id":2245,"nodeType":"Return","src":"7491:16:9"}]},"documentation":{"id":2212,"nodeType":"StructuredDocumentation","src":"7127:122:9","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"7263:7:9","parameters":{"id":2221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2214,"mutability":"mutable","name":"hash","nameLocation":"7279:4:9","nodeType":"VariableDeclaration","scope":2247,"src":"7271:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7271:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2216,"mutability":"mutable","name":"v","nameLocation":"7291:1:9","nodeType":"VariableDeclaration","scope":2247,"src":"7285:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2215,"name":"uint8","nodeType":"ElementaryTypeName","src":"7285:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2218,"mutability":"mutable","name":"r","nameLocation":"7302:1:9","nodeType":"VariableDeclaration","scope":2247,"src":"7294:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7294:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2220,"mutability":"mutable","name":"s","nameLocation":"7313:1:9","nodeType":"VariableDeclaration","scope":2247,"src":"7305:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7305:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7270:45:9"},"returnParameters":{"id":2224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2247,"src":"7339:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2222,"name":"address","nodeType":"ElementaryTypeName","src":"7339:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7338:9:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2257,"nodeType":"FunctionDefinition","src":"7804:396:9","nodes":[],"body":{"id":2256,"nodeType":"Block","src":"7890:310:9","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8046:148:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8067:4:9","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"8073:34:9","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8060:6:9"},"nodeType":"YulFunctionCall","src":"8060:48:9"},"nodeType":"YulExpressionStatement","src":"8060:48:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8128:4:9","type":"","value":"0x1c"},{"name":"hash","nodeType":"YulIdentifier","src":"8134:4:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8121:6:9"},"nodeType":"YulFunctionCall","src":"8121:18:9"},"nodeType":"YulExpressionStatement","src":"8121:18:9"},{"nodeType":"YulAssignment","src":"8152:32:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8173:4:9","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"8179:4:9","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8163:9:9"},"nodeType":"YulFunctionCall","src":"8163:21:9"},"variableNames":[{"name":"message","nodeType":"YulIdentifier","src":"8152:7:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2250,"isOffset":false,"isSlot":false,"src":"8134:4:9","valueSize":1},{"declaration":2253,"isOffset":false,"isSlot":false,"src":"8152:7:9","valueSize":1}],"id":2255,"nodeType":"InlineAssembly","src":"8037:157:9"}]},"documentation":{"id":2248,"nodeType":"StructuredDocumentation","src":"7520:279:9","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7813:22:9","parameters":{"id":2251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2250,"mutability":"mutable","name":"hash","nameLocation":"7844:4:9","nodeType":"VariableDeclaration","scope":2257,"src":"7836:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7836:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7835:14:9"},"returnParameters":{"id":2254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2253,"mutability":"mutable","name":"message","nameLocation":"7881:7:9","nodeType":"VariableDeclaration","scope":2257,"src":"7873:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7873:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7872:17:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2279,"nodeType":"FunctionDefinition","src":"8485:196:9","nodes":[],"body":{"id":2278,"nodeType":"Block","src":"8565:116:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":2268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8609:32:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":2271,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2260,"src":"8660:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8662:6:9","memberName":"length","nodeType":"MemberAccess","src":"8660:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2269,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"8643:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$1900_$","typeString":"type(library Strings)"}},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8651:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1713,"src":"8643:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2274,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2260,"src":"8671:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2266,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8592:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8596:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"8592:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8592:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2265,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8582:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8582:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2264,"id":2277,"nodeType":"Return","src":"8575:99:9"}]},"documentation":{"id":2258,"nodeType":"StructuredDocumentation","src":"8206:274:9","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"8494:22:9","parameters":{"id":2261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2260,"mutability":"mutable","name":"s","nameLocation":"8530:1:9","nodeType":"VariableDeclaration","scope":2279,"src":"8517:14:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2259,"name":"bytes","nodeType":"ElementaryTypeName","src":"8517:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8516:16:9"},"returnParameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2279,"src":"8556:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8556:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8555:9:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2291,"nodeType":"FunctionDefinition","src":"9020:397:9","nodes":[],"body":{"id":2290,"nodeType":"Block","src":"9127:290:9","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9189:222:9","statements":[{"nodeType":"YulVariableDeclaration","src":"9203:22:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9220:4:9","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9214:5:9"},"nodeType":"YulFunctionCall","src":"9214:11:9"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"9207:3:9","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9245:3:9"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"9250:10:9","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9238:6:9"},"nodeType":"YulFunctionCall","src":"9238:23:9"},"nodeType":"YulExpressionStatement","src":"9238:23:9"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9285:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"9290:4:9","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9281:3:9"},"nodeType":"YulFunctionCall","src":"9281:14:9"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"9297:15:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9274:6:9"},"nodeType":"YulFunctionCall","src":"9274:39:9"},"nodeType":"YulExpressionStatement","src":"9274:39:9"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9337:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"9342:4:9","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9333:3:9"},"nodeType":"YulFunctionCall","src":"9333:14:9"},{"name":"structHash","nodeType":"YulIdentifier","src":"9349:10:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9326:6:9"},"nodeType":"YulFunctionCall","src":"9326:34:9"},"nodeType":"YulExpressionStatement","src":"9326:34:9"},{"nodeType":"YulAssignment","src":"9373:28:9","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9391:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"9396:4:9","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9381:9:9"},"nodeType":"YulFunctionCall","src":"9381:20:9"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"9373:4:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2287,"isOffset":false,"isSlot":false,"src":"9373:4:9","valueSize":1},{"declaration":2282,"isOffset":false,"isSlot":false,"src":"9297:15:9","valueSize":1},{"declaration":2284,"isOffset":false,"isSlot":false,"src":"9349:10:9","valueSize":1}],"id":2289,"nodeType":"InlineAssembly","src":"9180:231:9"}]},"documentation":{"id":2280,"nodeType":"StructuredDocumentation","src":"8687:328:9","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"9029:15:9","parameters":{"id":2285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2282,"mutability":"mutable","name":"domainSeparator","nameLocation":"9053:15:9","nodeType":"VariableDeclaration","scope":2291,"src":"9045:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9045:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2284,"mutability":"mutable","name":"structHash","nameLocation":"9078:10:9","nodeType":"VariableDeclaration","scope":2291,"src":"9070:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9070:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9044:45:9"},"returnParameters":{"id":2288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2287,"mutability":"mutable","name":"data","nameLocation":"9121:4:9","nodeType":"VariableDeclaration","scope":2291,"src":"9113:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9113:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9112:14:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2311,"nodeType":"FunctionDefinition","src":"9621:191:9","nodes":[],"body":{"id":2310,"nodeType":"Block","src":"9732:80:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":2304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9776:10:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":2305,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2294,"src":"9788:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2306,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"9799:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9759:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9763:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9759:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9759:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2301,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9749:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9749:56:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2300,"id":2309,"nodeType":"Return","src":"9742:63:9"}]},"documentation":{"id":2292,"nodeType":"StructuredDocumentation","src":"9423:193:9","text":" @dev Returns an Ethereum Signed Data with intended validator, created from a\n `validator` and `data` according to the version 0 of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"9630:31:9","parameters":{"id":2297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2294,"mutability":"mutable","name":"validator","nameLocation":"9670:9:9","nodeType":"VariableDeclaration","scope":2311,"src":"9662:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2293,"name":"address","nodeType":"ElementaryTypeName","src":"9662:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2296,"mutability":"mutable","name":"data","nameLocation":"9694:4:9","nodeType":"VariableDeclaration","scope":2311,"src":"9681:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2295,"name":"bytes","nodeType":"ElementaryTypeName","src":"9681:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9661:38:9"},"returnParameters":{"id":2300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2311,"src":"9723:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9723:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9722:9:9"},"scope":2312,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":1904,"nodeType":"StructuredDocumentation","src":"164:205:9","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"linearizedBaseContracts":[2312],"name":"ECDSA","nameLocation":"378:5:9","scope":2313,"usedErrors":[1912,1917,1922]}],"license":"MIT"},"id":9} \ No newline at end of file diff --git a/contracts/out/ERC20.sol/ERC20.json b/contracts/out/ERC20.sol/ERC20.json deleted file mode 100644 index 81246d1d61..0000000000 --- a/contracts/out/ERC20.sol/ERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","id":1138,"exportedSymbols":{"Context":[1647],"ERC20":[1137],"IERC1155Errors":[567],"IERC20":[1215],"IERC20Errors":[472],"IERC20Metadata":[1240],"IERC721Errors":[520]},"nodeType":"SourceUnit","src":"105:11692:3","nodes":[{"id":569,"nodeType":"PragmaDirective","src":"105:24:3","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":570,"nodeType":"ImportDirective","src":"131:22:3","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":1138,"sourceUnit":1216,"symbolAliases":[],"unitAlias":""},{"id":571,"nodeType":"ImportDirective","src":"154:41:3","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":1138,"sourceUnit":1241,"symbolAliases":[],"unitAlias":""},{"id":572,"nodeType":"ImportDirective","src":"196:33:3","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":1138,"sourceUnit":1648,"symbolAliases":[],"unitAlias":""},{"id":573,"nodeType":"ImportDirective","src":"230:45:3","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","nameLocation":"-1:-1:-1","scope":1138,"sourceUnit":568,"symbolAliases":[],"unitAlias":""},{"id":1137,"nodeType":"ContractDefinition","src":"1521:10275:3","nodes":[{"id":586,"nodeType":"VariableDeclaration","src":"1600:45:3","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1636:9:3","scope":1137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":585,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":583,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1600:27:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":584,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":592,"nodeType":"VariableDeclaration","src":"1652:67:3","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1708:11:3","scope":1137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":591,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":587,"name":"address","nodeType":"ElementaryTypeName","src":"1660:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1652:47:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":590,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":588,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1671:27:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":589,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":594,"nodeType":"VariableDeclaration","src":"1726:28:3","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1742:12:3","scope":1137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":596,"nodeType":"VariableDeclaration","src":"1761:20:3","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1776:5:3","scope":1137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":595,"name":"string","nodeType":"ElementaryTypeName","src":"1761:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":598,"nodeType":"VariableDeclaration","src":"1787:22:3","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1802:7:3","scope":1137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":597,"name":"string","nodeType":"ElementaryTypeName","src":"1787:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":607,"nodeType":"ErrorDefinition","src":"1892:105:3","nodes":[],"documentation":{"id":599,"nodeType":"StructuredDocumentation","src":"1816:71:3","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"a60f030c","name":"ERC20FailedDecreaseAllowance","nameLocation":"1898:28:3","parameters":{"id":606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":601,"mutability":"mutable","name":"spender","nameLocation":"1935:7:3","nodeType":"VariableDeclaration","scope":607,"src":"1927:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":600,"name":"address","nodeType":"ElementaryTypeName","src":"1927:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"currentAllowance","nameLocation":"1952:16:3","nodeType":"VariableDeclaration","scope":607,"src":"1944:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"1944:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":605,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1978:17:3","nodeType":"VariableDeclaration","scope":607,"src":"1970:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1970:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:70:3"}},{"id":624,"nodeType":"FunctionDefinition","src":"2179:113:3","nodes":[],"body":{"id":623,"nodeType":"Block","src":"2235:57:3","nodes":[],"statements":[{"expression":{"id":617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":615,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":596,"src":"2245:5:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":616,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"2253:5:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2245:13:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":618,"nodeType":"ExpressionStatement","src":"2245:13:3"},{"expression":{"id":621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":619,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":598,"src":"2268:7:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":620,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"2278:7:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2268:17:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":622,"nodeType":"ExpressionStatement","src":"2268:17:3"}]},"documentation":{"id":608,"nodeType":"StructuredDocumentation","src":"2003:171:3","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":610,"mutability":"mutable","name":"name_","nameLocation":"2205:5:3","nodeType":"VariableDeclaration","scope":624,"src":"2191:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":609,"name":"string","nodeType":"ElementaryTypeName","src":"2191:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":612,"mutability":"mutable","name":"symbol_","nameLocation":"2226:7:3","nodeType":"VariableDeclaration","scope":624,"src":"2212:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":611,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2190:44:3"},"returnParameters":{"id":614,"nodeType":"ParameterList","parameters":[],"src":"2235:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":633,"nodeType":"FunctionDefinition","src":"2357:89:3","nodes":[],"body":{"id":632,"nodeType":"Block","src":"2417:29:3","nodes":[],"statements":[{"expression":{"id":630,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":596,"src":"2434:5:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":629,"id":631,"nodeType":"Return","src":"2427:12:3"}]},"baseFunctions":[1227],"documentation":{"id":625,"nodeType":"StructuredDocumentation","src":"2298:54:3","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2366:4:3","parameters":{"id":626,"nodeType":"ParameterList","parameters":[],"src":"2370:2:3"},"returnParameters":{"id":629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":633,"src":"2402:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":627,"name":"string","nodeType":"ElementaryTypeName","src":"2402:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2401:15:3"},"scope":1137,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":642,"nodeType":"FunctionDefinition","src":"2559:93:3","nodes":[],"body":{"id":641,"nodeType":"Block","src":"2621:31:3","nodes":[],"statements":[{"expression":{"id":639,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":598,"src":"2638:7:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":638,"id":640,"nodeType":"Return","src":"2631:14:3"}]},"baseFunctions":[1233],"documentation":{"id":634,"nodeType":"StructuredDocumentation","src":"2452:102:3","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2568:6:3","parameters":{"id":635,"nodeType":"ParameterList","parameters":[],"src":"2574:2:3"},"returnParameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":642,"src":"2606:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":636,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:3"},"scope":1137,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":651,"nodeType":"FunctionDefinition","src":"3285:82:3","nodes":[],"body":{"id":650,"nodeType":"Block","src":"3341:26:3","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3358:2:3","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":647,"id":649,"nodeType":"Return","src":"3351:9:3"}]},"baseFunctions":[1239],"documentation":{"id":643,"nodeType":"StructuredDocumentation","src":"2658:622:3","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3294:8:3","parameters":{"id":644,"nodeType":"ParameterList","parameters":[],"src":"3302:2:3"},"returnParameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":651,"src":"3334:5:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":645,"name":"uint8","nodeType":"ElementaryTypeName","src":"3334:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3333:7:3"},"scope":1137,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":660,"nodeType":"FunctionDefinition","src":"3427:97:3","nodes":[],"body":{"id":659,"nodeType":"Block","src":"3488:36:3","nodes":[],"statements":[{"expression":{"id":657,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"3505:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":656,"id":658,"nodeType":"Return","src":"3498:19:3"}]},"baseFunctions":[1164],"documentation":{"id":652,"nodeType":"StructuredDocumentation","src":"3373:49:3","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3436:11:3","parameters":{"id":653,"nodeType":"ParameterList","parameters":[],"src":"3447:2:3"},"returnParameters":{"id":656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":660,"src":"3479:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":654,"name":"uint256","nodeType":"ElementaryTypeName","src":"3479:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3478:9:3"},"scope":1137,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":673,"nodeType":"FunctionDefinition","src":"3582:116:3","nodes":[],"body":{"id":672,"nodeType":"Block","src":"3656:42:3","nodes":[],"statements":[{"expression":{"baseExpression":{"id":668,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"3673:9:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":670,"indexExpression":{"id":669,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":663,"src":"3683:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3673:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":667,"id":671,"nodeType":"Return","src":"3666:25:3"}]},"baseFunctions":[1172],"documentation":{"id":661,"nodeType":"StructuredDocumentation","src":"3530:47:3","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3591:9:3","parameters":{"id":664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":663,"mutability":"mutable","name":"account","nameLocation":"3609:7:3","nodeType":"VariableDeclaration","scope":673,"src":"3601:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":662,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:17:3"},"returnParameters":{"id":667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":673,"src":"3647:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3646:9:3"},"scope":1137,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":697,"nodeType":"FunctionDefinition","src":"3894:180:3","nodes":[],"body":{"id":696,"nodeType":"Block","src":"3970:104:3","nodes":[],"statements":[{"assignments":[684],"declarations":[{"constant":false,"id":684,"mutability":"mutable","name":"owner","nameLocation":"3988:5:3","nodeType":"VariableDeclaration","scope":696,"src":"3980:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":683,"name":"address","nodeType":"ElementaryTypeName","src":"3980:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":687,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":685,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"3996:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3996:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3980:28:3"},{"expression":{"arguments":[{"id":689,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":684,"src":"4028:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":690,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":676,"src":"4035:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":691,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":678,"src":"4039:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":688,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"4018:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4018:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":693,"nodeType":"ExpressionStatement","src":"4018:28:3"},{"expression":{"hexValue":"74727565","id":694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4063:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":682,"id":695,"nodeType":"Return","src":"4056:11:3"}]},"baseFunctions":[1182],"documentation":{"id":674,"nodeType":"StructuredDocumentation","src":"3704:185:3","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3903:8:3","parameters":{"id":679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":676,"mutability":"mutable","name":"to","nameLocation":"3920:2:3","nodeType":"VariableDeclaration","scope":697,"src":"3912:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":675,"name":"address","nodeType":"ElementaryTypeName","src":"3912:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":678,"mutability":"mutable","name":"amount","nameLocation":"3932:6:3","nodeType":"VariableDeclaration","scope":697,"src":"3924:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":677,"name":"uint256","nodeType":"ElementaryTypeName","src":"3924:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3911:28:3"},"returnParameters":{"id":682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":697,"src":"3964:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":680,"name":"bool","nodeType":"ElementaryTypeName","src":"3964:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3963:6:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":714,"nodeType":"FunctionDefinition","src":"4132:140:3","nodes":[],"body":{"id":713,"nodeType":"Block","src":"4221:51:3","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":707,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":592,"src":"4238:11:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":709,"indexExpression":{"id":708,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":700,"src":"4250:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4238:18:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":711,"indexExpression":{"id":710,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":702,"src":"4257:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4238:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":706,"id":712,"nodeType":"Return","src":"4231:34:3"}]},"baseFunctions":[1192],"documentation":{"id":698,"nodeType":"StructuredDocumentation","src":"4080:47:3","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"4141:9:3","parameters":{"id":703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":700,"mutability":"mutable","name":"owner","nameLocation":"4159:5:3","nodeType":"VariableDeclaration","scope":714,"src":"4151:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":699,"name":"address","nodeType":"ElementaryTypeName","src":"4151:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":702,"mutability":"mutable","name":"spender","nameLocation":"4174:7:3","nodeType":"VariableDeclaration","scope":714,"src":"4166:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":701,"name":"address","nodeType":"ElementaryTypeName","src":"4166:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4150:32:3"},"returnParameters":{"id":706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":714,"src":"4212:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":704,"name":"uint256","nodeType":"ElementaryTypeName","src":"4212:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4211:9:3"},"scope":1137,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":738,"nodeType":"FunctionDefinition","src":"4580:188:3","nodes":[],"body":{"id":737,"nodeType":"Block","src":"4660:108:3","nodes":[],"statements":[{"assignments":[725],"declarations":[{"constant":false,"id":725,"mutability":"mutable","name":"owner","nameLocation":"4678:5:3","nodeType":"VariableDeclaration","scope":737,"src":"4670:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":724,"name":"address","nodeType":"ElementaryTypeName","src":"4670:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":728,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":726,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"4686:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4686:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4670:28:3"},{"expression":{"arguments":[{"id":730,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"4717:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":731,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"4724:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":732,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"4733:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":729,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"4708:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":734,"nodeType":"ExpressionStatement","src":"4708:32:3"},{"expression":{"hexValue":"74727565","id":735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4757:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":723,"id":736,"nodeType":"Return","src":"4750:11:3"}]},"baseFunctions":[1202],"documentation":{"id":715,"nodeType":"StructuredDocumentation","src":"4278:297:3","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4589:7:3","parameters":{"id":720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":717,"mutability":"mutable","name":"spender","nameLocation":"4605:7:3","nodeType":"VariableDeclaration","scope":738,"src":"4597:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":716,"name":"address","nodeType":"ElementaryTypeName","src":"4597:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":719,"mutability":"mutable","name":"amount","nameLocation":"4622:6:3","nodeType":"VariableDeclaration","scope":738,"src":"4614:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":718,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4596:33:3"},"returnParameters":{"id":723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":738,"src":"4654:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":721,"name":"bool","nodeType":"ElementaryTypeName","src":"4654:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4653:6:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":770,"nodeType":"FunctionDefinition","src":"5330:247:3","nodes":[],"body":{"id":769,"nodeType":"Block","src":"5424:153:3","nodes":[],"statements":[{"assignments":[751],"declarations":[{"constant":false,"id":751,"mutability":"mutable","name":"spender","nameLocation":"5442:7:3","nodeType":"VariableDeclaration","scope":769,"src":"5434:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":750,"name":"address","nodeType":"ElementaryTypeName","src":"5434:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":752,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"5452:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5452:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5434:30:3"},{"expression":{"arguments":[{"id":756,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"5490:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":757,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":751,"src":"5496:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":758,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"5505:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":755,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1136,"src":"5474:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5474:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":760,"nodeType":"ExpressionStatement","src":"5474:38:3"},{"expression":{"arguments":[{"id":762,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"5532:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":763,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"5538:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":764,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"5542:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":761,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"5522:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5522:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":766,"nodeType":"ExpressionStatement","src":"5522:27:3"},{"expression":{"hexValue":"74727565","id":767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5566:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":749,"id":768,"nodeType":"Return","src":"5559:11:3"}]},"baseFunctions":[1214],"documentation":{"id":739,"nodeType":"StructuredDocumentation","src":"4774:551:3","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5339:12:3","parameters":{"id":746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":741,"mutability":"mutable","name":"from","nameLocation":"5360:4:3","nodeType":"VariableDeclaration","scope":770,"src":"5352:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":740,"name":"address","nodeType":"ElementaryTypeName","src":"5352:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":743,"mutability":"mutable","name":"to","nameLocation":"5374:2:3","nodeType":"VariableDeclaration","scope":770,"src":"5366:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":742,"name":"address","nodeType":"ElementaryTypeName","src":"5366:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":745,"mutability":"mutable","name":"amount","nameLocation":"5386:6:3","nodeType":"VariableDeclaration","scope":770,"src":"5378:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":744,"name":"uint256","nodeType":"ElementaryTypeName","src":"5378:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5351:42:3"},"returnParameters":{"id":749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":770,"src":"5418:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":747,"name":"bool","nodeType":"ElementaryTypeName","src":"5418:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5417:6:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":799,"nodeType":"FunctionDefinition","src":"5972:234:3","nodes":[],"body":{"id":798,"nodeType":"Block","src":"6066:140:3","nodes":[],"statements":[{"assignments":[781],"declarations":[{"constant":false,"id":781,"mutability":"mutable","name":"owner","nameLocation":"6084:5:3","nodeType":"VariableDeclaration","scope":798,"src":"6076:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":780,"name":"address","nodeType":"ElementaryTypeName","src":"6076:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":784,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":782,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"6092:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6092:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6076:28:3"},{"expression":{"arguments":[{"id":786,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"6123:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":787,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"6130:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":789,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"6149:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":790,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"6156:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":788,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"6139:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6139:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":792,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"6167:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6139:38:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":785,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"6114:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6114:64:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":795,"nodeType":"ExpressionStatement","src":"6114:64:3"},{"expression":{"hexValue":"74727565","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6195:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":779,"id":797,"nodeType":"Return","src":"6188:11:3"}]},"documentation":{"id":771,"nodeType":"StructuredDocumentation","src":"5583:384:3","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5981:17:3","parameters":{"id":776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":773,"mutability":"mutable","name":"spender","nameLocation":"6007:7:3","nodeType":"VariableDeclaration","scope":799,"src":"5999:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":772,"name":"address","nodeType":"ElementaryTypeName","src":"5999:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":775,"mutability":"mutable","name":"addedValue","nameLocation":"6024:10:3","nodeType":"VariableDeclaration","scope":799,"src":"6016:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":774,"name":"uint256","nodeType":"ElementaryTypeName","src":"6016:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5998:37:3"},"returnParameters":{"id":779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":799,"src":"6060:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":777,"name":"bool","nodeType":"ElementaryTypeName","src":"6060:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6059:6:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":844,"nodeType":"FunctionDefinition","src":"6695:493:3","nodes":[],"body":{"id":843,"nodeType":"Block","src":"6796:392:3","nodes":[],"statements":[{"assignments":[810],"declarations":[{"constant":false,"id":810,"mutability":"mutable","name":"owner","nameLocation":"6814:5:3","nodeType":"VariableDeclaration","scope":843,"src":"6806:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":809,"name":"address","nodeType":"ElementaryTypeName","src":"6806:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":813,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":811,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"6822:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6822:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6806:28:3"},{"assignments":[815],"declarations":[{"constant":false,"id":815,"mutability":"mutable","name":"currentAllowance","nameLocation":"6852:16:3","nodeType":"VariableDeclaration","scope":843,"src":"6844:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":814,"name":"uint256","nodeType":"ElementaryTypeName","src":"6844:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":820,"initialValue":{"arguments":[{"id":817,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":810,"src":"6881:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":818,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"6888:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":816,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"6871:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6871:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6844:52:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":821,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"6910:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":822,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"6929:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6910:36:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":831,"nodeType":"IfStatement","src":"6906:148:3","trueBody":{"id":830,"nodeType":"Block","src":"6948:106:3","statements":[{"errorCall":{"arguments":[{"id":825,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"6998:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":826,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"7007:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":827,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"7025:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":824,"name":"ERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"6969:28:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:74:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"RevertStatement","src":"6962:81:3"}]}},{"id":840,"nodeType":"UncheckedBlock","src":"7063:97:3","statements":[{"expression":{"arguments":[{"id":833,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":810,"src":"7096:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":834,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"7103:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":835,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"7112:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":836,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"7131:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7112:36:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":832,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"7087:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7087:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":839,"nodeType":"ExpressionStatement","src":"7087:62:3"}]},{"expression":{"hexValue":"74727565","id":841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7177:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":808,"id":842,"nodeType":"Return","src":"7170:11:3"}]},"documentation":{"id":800,"nodeType":"StructuredDocumentation","src":"6212:478:3","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `requestedDecrease`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6704:17:3","parameters":{"id":805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":802,"mutability":"mutable","name":"spender","nameLocation":"6730:7:3","nodeType":"VariableDeclaration","scope":844,"src":"6722:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":801,"name":"address","nodeType":"ElementaryTypeName","src":"6722:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":804,"mutability":"mutable","name":"requestedDecrease","nameLocation":"6747:17:3","nodeType":"VariableDeclaration","scope":844,"src":"6739:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":803,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6721:44:3"},"returnParameters":{"id":808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":844,"src":"6790:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":806,"name":"bool","nodeType":"ElementaryTypeName","src":"6790:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6789:6:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":891,"nodeType":"FunctionDefinition","src":"7553:302:3","nodes":[],"body":{"id":890,"nodeType":"Block","src":"7623:232:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":854,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"7637:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7653:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7645:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":855,"name":"address","nodeType":"ElementaryTypeName","src":"7645:7:3","typeDescriptions":{}}},"id":858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7645:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7637:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":868,"nodeType":"IfStatement","src":"7633:86:3","trueBody":{"id":867,"nodeType":"Block","src":"7657:62:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7705:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7697:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":861,"name":"address","nodeType":"ElementaryTypeName","src":"7697:7:3","typeDescriptions":{}}},"id":864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":860,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"7678:18:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7678:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":866,"nodeType":"RevertStatement","src":"7671:37:3"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":869,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"7732:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7746:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7738:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":870,"name":"address","nodeType":"ElementaryTypeName","src":"7738:7:3","typeDescriptions":{}}},"id":873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7738:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7732:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":883,"nodeType":"IfStatement","src":"7728:86:3","trueBody":{"id":882,"nodeType":"Block","src":"7750:64:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7800:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7792:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":876,"name":"address","nodeType":"ElementaryTypeName","src":"7792:7:3","typeDescriptions":{}}},"id":879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7792:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":875,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"7771:20:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7771:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":881,"nodeType":"RevertStatement","src":"7764:39:3"}]}},{"expression":{"arguments":[{"id":885,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"7831:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":886,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"7837:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":887,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":851,"src":"7841:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":884,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"7823:7:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7823:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":889,"nodeType":"ExpressionStatement","src":"7823:25:3"}]},"documentation":{"id":845,"nodeType":"StructuredDocumentation","src":"7194:354:3","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7562:9:3","parameters":{"id":852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":847,"mutability":"mutable","name":"from","nameLocation":"7580:4:3","nodeType":"VariableDeclaration","scope":891,"src":"7572:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":846,"name":"address","nodeType":"ElementaryTypeName","src":"7572:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"to","nameLocation":"7594:2:3","nodeType":"VariableDeclaration","scope":891,"src":"7586:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":848,"name":"address","nodeType":"ElementaryTypeName","src":"7586:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":851,"mutability":"mutable","name":"amount","nameLocation":"7606:6:3","nodeType":"VariableDeclaration","scope":891,"src":"7598:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":850,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7571:42:3"},"returnParameters":{"id":853,"nodeType":"ParameterList","parameters":[],"src":"7623:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":968,"nodeType":"FunctionDefinition","src":"8155:1017:3","nodes":[],"body":{"id":967,"nodeType":"Block","src":"8231:941:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":901,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"8245:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8261:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8253:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":902,"name":"address","nodeType":"ElementaryTypeName","src":"8253:7:3","typeDescriptions":{}}},"id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8253:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8245:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":938,"nodeType":"Block","src":"8318:366:3","statements":[{"assignments":[913],"declarations":[{"constant":false,"id":913,"mutability":"mutable","name":"fromBalance","nameLocation":"8340:11:3","nodeType":"VariableDeclaration","scope":938,"src":"8332:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":912,"name":"uint256","nodeType":"ElementaryTypeName","src":"8332:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":917,"initialValue":{"baseExpression":{"id":914,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"8354:9:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":916,"indexExpression":{"id":915,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"8364:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8354:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8332:37:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":918,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":913,"src":"8387:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":919,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8401:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8387:20:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":928,"nodeType":"IfStatement","src":"8383:117:3","trueBody":{"id":927,"nodeType":"Block","src":"8409:91:3","statements":[{"errorCall":{"arguments":[{"id":922,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"8459:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":923,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":913,"src":"8465:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":924,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8478:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":921,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"8434:24:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":926,"nodeType":"RevertStatement","src":"8427:58:3"}]}},{"id":937,"nodeType":"UncheckedBlock","src":"8513:161:3","statements":[{"expression":{"id":935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":929,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"8621:9:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":931,"indexExpression":{"id":930,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"8631:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8621:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":932,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":913,"src":"8639:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":933,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8653:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8639:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8621:38:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":936,"nodeType":"ExpressionStatement","src":"8621:38:3"}]}]},"id":939,"nodeType":"IfStatement","src":"8241:443:3","trueBody":{"id":911,"nodeType":"Block","src":"8265:47:3","statements":[{"expression":{"id":909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":907,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"8279:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8295:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8279:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":910,"nodeType":"ExpressionStatement","src":"8279:22:3"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":940,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":896,"src":"8698:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8712:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8704:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":941,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:3","typeDescriptions":{}}},"id":944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8704:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8698:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":959,"nodeType":"Block","src":"8916:208:3","statements":[{"id":958,"nodeType":"UncheckedBlock","src":"8930:184:3","statements":[{"expression":{"id":956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":952,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"9076:9:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":954,"indexExpression":{"id":953,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":896,"src":"9086:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9076:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":955,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"9093:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9076:23:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":957,"nodeType":"ExpressionStatement","src":"9076:23:3"}]}]},"id":960,"nodeType":"IfStatement","src":"8694:430:3","trueBody":{"id":951,"nodeType":"Block","src":"8716:194:3","statements":[{"id":950,"nodeType":"UncheckedBlock","src":"8730:170:3","statements":[{"expression":{"id":948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":946,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"8863:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":947,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8879:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8863:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":949,"nodeType":"ExpressionStatement","src":"8863:22:3"}]}]}},{"eventCall":{"arguments":[{"id":962,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"9148:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":963,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":896,"src":"9154:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":964,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"9158:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":961,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"9139:8:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":966,"nodeType":"EmitStatement","src":"9134:31:3"}]},"documentation":{"id":892,"nodeType":"StructuredDocumentation","src":"7861:289:3","text":" @dev Transfers `amount` of tokens from `from` to `to`, or alternatively mints (or burns) if `from` (or `to`) is\n the zero address. All customizations to transfers, mints, and burns should be done by overriding this function.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8164:7:3","parameters":{"id":899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":894,"mutability":"mutable","name":"from","nameLocation":"8180:4:3","nodeType":"VariableDeclaration","scope":968,"src":"8172:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":893,"name":"address","nodeType":"ElementaryTypeName","src":"8172:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":896,"mutability":"mutable","name":"to","nameLocation":"8194:2:3","nodeType":"VariableDeclaration","scope":968,"src":"8186:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":895,"name":"address","nodeType":"ElementaryTypeName","src":"8186:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":898,"mutability":"mutable","name":"amount","nameLocation":"8206:6:3","nodeType":"VariableDeclaration","scope":968,"src":"8198:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":897,"name":"uint256","nodeType":"ElementaryTypeName","src":"8198:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8171:42:3"},"returnParameters":{"id":900,"nodeType":"ParameterList","parameters":[],"src":"8231:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":1001,"nodeType":"FunctionDefinition","src":"9504:210:3","nodes":[],"body":{"id":1000,"nodeType":"Block","src":"9561:153:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":976,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"9575:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9594:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9586:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":977,"name":"address","nodeType":"ElementaryTypeName","src":"9586:7:3","typeDescriptions":{}}},"id":980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9586:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9575:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":990,"nodeType":"IfStatement","src":"9571:91:3","trueBody":{"id":989,"nodeType":"Block","src":"9598:64:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9648:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9640:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":983,"name":"address","nodeType":"ElementaryTypeName","src":"9640:7:3","typeDescriptions":{}}},"id":986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":982,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"9619:20:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9619:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":988,"nodeType":"RevertStatement","src":"9612:39:3"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9687:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9679:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":992,"name":"address","nodeType":"ElementaryTypeName","src":"9679:7:3","typeDescriptions":{}}},"id":995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9679:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":996,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"9691:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":997,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"9700:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":991,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"9671:7:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9671:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":999,"nodeType":"ExpressionStatement","src":"9671:36:3"}]},"documentation":{"id":969,"nodeType":"StructuredDocumentation","src":"9178:321:3","text":" @dev Creates `amount` tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9513:5:3","parameters":{"id":974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":971,"mutability":"mutable","name":"account","nameLocation":"9527:7:3","nodeType":"VariableDeclaration","scope":1001,"src":"9519:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":970,"name":"address","nodeType":"ElementaryTypeName","src":"9519:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":973,"mutability":"mutable","name":"amount","nameLocation":"9544:6:3","nodeType":"VariableDeclaration","scope":1001,"src":"9536:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":972,"name":"uint256","nodeType":"ElementaryTypeName","src":"9536:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9518:33:3"},"returnParameters":{"id":975,"nodeType":"ParameterList","parameters":[],"src":"9561:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1034,"nodeType":"FunctionDefinition","src":"10028:208:3","nodes":[],"body":{"id":1033,"nodeType":"Block","src":"10085:151:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1009,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1004,"src":"10099:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10110:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1010,"name":"address","nodeType":"ElementaryTypeName","src":"10110:7:3","typeDescriptions":{}}},"id":1013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10110:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10099:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1023,"nodeType":"IfStatement","src":"10095:89:3","trueBody":{"id":1022,"nodeType":"Block","src":"10122:62:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10170:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10162:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1016,"name":"address","nodeType":"ElementaryTypeName","src":"10162:7:3","typeDescriptions":{}}},"id":1019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10162:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1015,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"10143:18:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10143:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1021,"nodeType":"RevertStatement","src":"10136:37:3"}]}},{"expression":{"arguments":[{"id":1025,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1004,"src":"10201:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10210:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1026,"name":"address","nodeType":"ElementaryTypeName","src":"10210:7:3","typeDescriptions":{}}},"id":1029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1030,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1006,"src":"10222:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1024,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10193:7:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10193:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"10193:36:3"}]},"documentation":{"id":1002,"nodeType":"StructuredDocumentation","src":"9720:303:3","text":" @dev Destroys `amount` tokens from `account`, by transferring it to address(0).\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10037:5:3","parameters":{"id":1007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1004,"mutability":"mutable","name":"account","nameLocation":"10051:7:3","nodeType":"VariableDeclaration","scope":1034,"src":"10043:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1003,"name":"address","nodeType":"ElementaryTypeName","src":"10043:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1006,"mutability":"mutable","name":"amount","nameLocation":"10068:6:3","nodeType":"VariableDeclaration","scope":1034,"src":"10060:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1005,"name":"uint256","nodeType":"ElementaryTypeName","src":"10060:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10042:33:3"},"returnParameters":{"id":1008,"nodeType":"ParameterList","parameters":[],"src":"10085:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1089,"nodeType":"FunctionDefinition","src":"10659:380:3","nodes":[],"body":{"id":1088,"nodeType":"Block","src":"10742:297:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1044,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1037,"src":"10756:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10765:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1045,"name":"address","nodeType":"ElementaryTypeName","src":"10765:7:3","typeDescriptions":{}}},"id":1048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10765:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10756:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1058,"nodeType":"IfStatement","src":"10752:89:3","trueBody":{"id":1057,"nodeType":"Block","src":"10777:64:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10827:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10819:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1051,"name":"address","nodeType":"ElementaryTypeName","src":"10819:7:3","typeDescriptions":{}}},"id":1054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10819:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1050,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"10798:20:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10798:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1056,"nodeType":"RevertStatement","src":"10791:39:3"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1059,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"10854:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10873:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10865:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"10865:7:3","typeDescriptions":{}}},"id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10865:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10854:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1073,"nodeType":"IfStatement","src":"10850:90:3","trueBody":{"id":1072,"nodeType":"Block","src":"10877:63:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10926:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10918:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1066,"name":"address","nodeType":"ElementaryTypeName","src":"10918:7:3","typeDescriptions":{}}},"id":1069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10918:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1065,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"10898:19:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10898:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1071,"nodeType":"RevertStatement","src":"10891:38:3"}]}},{"expression":{"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1074,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":592,"src":"10949:11:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1077,"indexExpression":{"id":1075,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1037,"src":"10961:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10949:18:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1078,"indexExpression":{"id":1076,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"10968:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10949:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1079,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1041,"src":"10979:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10949:36:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1081,"nodeType":"ExpressionStatement","src":"10949:36:3"},{"eventCall":{"arguments":[{"id":1083,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1037,"src":"11009:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1084,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"11016:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1085,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1041,"src":"11025:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1082,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"11000:8:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1087,"nodeType":"EmitStatement","src":"10995:37:3"}]},"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"10242:412:3","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10668:8:3","parameters":{"id":1042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1037,"mutability":"mutable","name":"owner","nameLocation":"10685:5:3","nodeType":"VariableDeclaration","scope":1089,"src":"10677:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1036,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1039,"mutability":"mutable","name":"spender","nameLocation":"10700:7:3","nodeType":"VariableDeclaration","scope":1089,"src":"10692:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1038,"name":"address","nodeType":"ElementaryTypeName","src":"10692:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1041,"mutability":"mutable","name":"amount","nameLocation":"10717:6:3","nodeType":"VariableDeclaration","scope":1089,"src":"10709:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1040,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10676:48:3"},"returnParameters":{"id":1043,"nodeType":"ParameterList","parameters":[],"src":"10742:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":1136,"nodeType":"FunctionDefinition","src":"11320:474:3","nodes":[],"body":{"id":1135,"nodeType":"Block","src":"11410:384:3","nodes":[],"statements":[{"assignments":[1100],"declarations":[{"constant":false,"id":1100,"mutability":"mutable","name":"currentAllowance","nameLocation":"11428:16:3","nodeType":"VariableDeclaration","scope":1135,"src":"11420:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1099,"name":"uint256","nodeType":"ElementaryTypeName","src":"11420:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1105,"initialValue":{"arguments":[{"id":1102,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"11457:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1103,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"11464:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1101,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"11447:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11447:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11420:52:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1106,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"11486:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11511:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1108,"name":"uint256","nodeType":"ElementaryTypeName","src":"11511:7:3","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1107,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11506:4:3","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11506:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11520:3:3","memberName":"max","nodeType":"MemberAccess","src":"11506:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11486:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1134,"nodeType":"IfStatement","src":"11482:306:3","trueBody":{"id":1133,"nodeType":"Block","src":"11525:263:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1113,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"11543:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1114,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"11562:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11543:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1123,"nodeType":"IfStatement","src":"11539:132:3","trueBody":{"id":1122,"nodeType":"Block","src":"11570:101:3","statements":[{"errorCall":{"arguments":[{"id":1117,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"11622:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1118,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"11631:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1119,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"11649:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1116,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"11595:26:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11595:61:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1121,"nodeType":"RevertStatement","src":"11588:68:3"}]}},{"id":1132,"nodeType":"UncheckedBlock","src":"11684:94:3","statements":[{"expression":{"arguments":[{"id":1125,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"11721:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1126,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"11728:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1127,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"11737:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1128,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"11756:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11737:25:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1124,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"11712:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11712:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1131,"nodeType":"ExpressionStatement","src":"11712:51:3"}]}]}}]},"documentation":{"id":1090,"nodeType":"StructuredDocumentation","src":"11045:270:3","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11329:15:3","parameters":{"id":1097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1092,"mutability":"mutable","name":"owner","nameLocation":"11353:5:3","nodeType":"VariableDeclaration","scope":1136,"src":"11345:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1091,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1094,"mutability":"mutable","name":"spender","nameLocation":"11368:7:3","nodeType":"VariableDeclaration","scope":1136,"src":"11360:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1093,"name":"address","nodeType":"ElementaryTypeName","src":"11360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1096,"mutability":"mutable","name":"amount","nameLocation":"11385:6:3","nodeType":"VariableDeclaration","scope":1136,"src":"11377:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"11377:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11344:48:3"},"returnParameters":{"id":1098,"nodeType":"ParameterList","parameters":[],"src":"11410:0:3"},"scope":1137,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":575,"name":"Context","nameLocations":["1548:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":1647,"src":"1548:7:3"},"id":576,"nodeType":"InheritanceSpecifier","src":"1548:7:3"},{"baseName":{"id":577,"name":"IERC20","nameLocations":["1557:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":1215,"src":"1557:6:3"},"id":578,"nodeType":"InheritanceSpecifier","src":"1557:6:3"},{"baseName":{"id":579,"name":"IERC20Metadata","nameLocations":["1565:14:3"],"nodeType":"IdentifierPath","referencedDeclaration":1240,"src":"1565:14:3"},"id":580,"nodeType":"InheritanceSpecifier","src":"1565:14:3"},{"baseName":{"id":581,"name":"IERC20Errors","nameLocations":["1581:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":472,"src":"1581:12:3"},"id":582,"nodeType":"InheritanceSpecifier","src":"1581:12:3"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":574,"nodeType":"StructuredDocumentation","src":"277:1243:3","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[1137,472,1240,1215,1647],"name":"ERC20","nameLocation":"1539:5:3","scope":1138,"usedErrors":[442,447,452,461,466,471,607]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/contracts/out/ERC20Helper.sol/DummyERC20.json b/contracts/out/ERC20Helper.sol/DummyERC20.json deleted file mode 100644 index 69fa4e21f1..0000000000 --- a/contracts/out/ERC20Helper.sol/DummyERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60406080815234620003ea5762000e4e803803806200001e81620003ef565b9283398101606082820312620003ea5781516001600160401b039290838111620003ea57826200005091830162000415565b60209283830151858111620003ea5786916200006e91850162000415565b920151938151818111620002ea576003908154906001948583811c93168015620003df575b88841014620003c9578190601f9384811162000373575b5088908483116001146200030c5760009262000300575b505060001982851b1c191690851b1782555b8451928311620002ea5760049485548581811c91168015620002df575b88821014620002ca578281116200027f575b5086918411600114620002145793839491849260009562000208575b50501b92600019911b1c19161781555b60058054336001600160a01b031982168117909255855191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360006006553315620001f4575060025490838201809211620001df57506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a3516109c69081620004888239f35b601190634e487b7160e01b6000525260246000fd5b600060249263ec442f0560e01b8352820152fd5b0151935038806200011e565b9190601f198416928660005284886000209460005b8a898383106200026757505050106200024c575b50505050811b0181556200012e565b01519060f884600019921b161c19169055388080806200023d565b86860151895590970196948501948893500162000229565b86600052876000208380870160051c8201928a8810620002c0575b0160051c019086905b828110620002b357505062000102565b60008155018690620002a3565b925081926200029a565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000f0565b634e487b7160e01b600052604160045260246000fd5b015190503880620000c1565b90879350601f19831691866000528a6000209260005b8c8282106200035c575050841162000343575b505050811b018255620000d3565b015160001983871b60f8161c1916905538808062000335565b8385015186558b9790950194938401930162000322565b90915084600052886000208480850160051c8201928b8610620003bf575b918991869594930160051c01915b828110620003af575050620000aa565b600081558594508991016200039f565b9250819262000391565b634e487b7160e01b600052602260045260246000fd5b92607f169262000093565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002ea57604052565b919080601f84011215620003ea5782516001600160401b038111620002ea576020906200044b601f8201601f19168301620003ef565b92818452828287010111620003ea5760005b8181106200047357508260009394955001015290565b85810183015184820184015282016200045d56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212209f2d0f0fb32201d8951f754ba0d7f4be6415f74cdbdebcc4ef040c0121610cad64736f6c63430008130033","sourceMap":"179:387:58:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2245:13:3;179:387:58;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;-1:-1:-1;179:387:58;;;;-1:-1:-1;;;;179:387:58;;;;;;;;;;;;;;;;;;;;2268:17:3;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;2868:6:1;179:387:58;;380:10;-1:-1:-1;;;;;;179:387:58;;;;;;;;;;380:10;-1:-1:-1;;;;;179:387:58;2916:40:1;-1:-1:-1;;2916:40:1;-1:-1:-1;254:1:58;179:387;380:10;9575:21:3;9571:91;;179:387:58;8279:22:3;179:387:58;;;;;;;;;;;-1:-1:-1;179:387:58;9139:26:3;179:387:58;8279:22:3;179:387:58;380:10;179:387;;;;;;;;;;;;;;;;;;;380:10;9139:26:3;;179:387:58;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;-1:-1:-1;179:387:58;9571:91:3;-1:-1:-1;179:387:58;9619:32:3;;;;;;;;179:387:58;9619:32:3;179:387:58;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;-1:-1:-1;179:387:58;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;-1:-1:-1;179:387:58;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;-1:-1:-1;179:387:58;;;;;;;;;;;;-1:-1:-1;179:387:58;;2268:17:3;179:387:58;;-1:-1:-1;179:387:58;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;-1:-1:-1;179:387:58;;-1:-1:-1;179:387:58;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;-1:-1:-1;179:387:58;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;-1:-1:-1;;179:387:58;;;-1:-1:-1;;;;;179:387:58;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:58;;;;;;;;;;-1:-1:-1;;179:387:58;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212209f2d0f0fb32201d8951f754ba0d7f4be6415f74cdbdebcc4ef040c0121610cad64736f6c63430008130033","sourceMap":"179:387:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:58;;;;;;:::i;:::-;1364:62:1;;;:::i;:::-;-1:-1:-1;;;;;179:387:58;;;;2491:22:1;;2487:91;;179:387:58;;2868:6:1;179:387:58;;;;;;;;2868:6:1;179:387:58;;2916:40:1;;;;179:387:58;;2487:91:1;179:387:58;-1:-1:-1;;;2536:31:1;;;;;179:387:58;;;;;2536:31:1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:3;179:387:58;;:::i;:::-;;;720:10:7;;4039:6:3;:::i;:::-;179:387:58;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:7;;179:387:58;;;;;;;;;;;;;;;;;;;;;6910:36:3;;;;6906:148;;179:387:58;;7112:36:3;179:387:58;;;;720:10:7;;7112:36:3;:::i;6906:148::-;179:387:58;;-1:-1:-1;;;6969:74:3;;-1:-1:-1;;;;;179:387:58;;;6969:74:3;;;179:387:58;;;;;;;;;;;;;;;6969:74:3;;;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:58;;;;;-1:-1:-1;;179:387:58;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;179:387:58;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:58;;;;;-1:-1:-1;;179:387:58;;;;;;;;-1:-1:-1;179:387:58;;;;;;-1:-1:-1;;;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:6:1;179:387:58;;;-1:-1:-1;;;;;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;223:32;179:387;;;;;;;;;;;;;;;;;;;;1364:62:1;;:::i;:::-;2868:6;179:387:58;;-1:-1:-1;;;;;;179:387:58;;;;;;;-1:-1:-1;;;;;179:387:58;2916:40:1;179:387:58;;2916:40:1;179:387:58;;;;;;;;;;-1:-1:-1;;179:387:58;;;;;;;;-1:-1:-1;;;;;179:387:58;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1364:62:1;;;:::i;:::-;-1:-1:-1;;;;;179:387:58;;9575:21:3;;9571:91;;179:387:58;;;9139:26:3;179:387:58;8279:22:3;179:387:58;;8279:22:3;179:387:58;8279:22:3;:::i;:::-;;179:387:58;;;;;;;;;;;;;;;;;;;;9139:26:3;179:387:58;;9571:91:3;179:387:58;;;;9619:32:3;;;;;;;;179:387:58;9619:32:3;179:387:58;;;;;;;;;;;;;;6139:38:3;179:387:58;;6139:38:3;179:387:58;;:::i;:::-;720:10:7;179:387:58;;;;;;;;-1:-1:-1;;;;;179:387:58;;;;;;;;;;;;;;6139:38:3;:::i;:::-;720:10:7;;6139:38:3;:::i;179:387:58:-;;;;;;;;;;;;;;;;;3358:2:3;179:387:58;;;;;;;;;;;-1:-1:-1;;179:387:58;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;720:10:7;179:387:58;;;;;;11506:17:3;;;11486:37;;11482:306;;179:387:58;;5542:6:3;;;;;;:::i;11482:306::-;11543:25;;;11539:132;;179:387:58;;;;11737:25:3;5542:6;179:387:58;;;;720:10:7;11737:25:3;;:::i;:::-;11482:306;;;;;11539:132;179:387:58;;-1:-1:-1;;;11595:61:3;;720:10:7;11595:61:3;;;179:387:58;;;;;;;;;;;;;;;;;;;;6969:74:3;;;179:387:58;;;;;;;;;;;;;;;;3505:12:3;179:387:58;;;;;;;;;;;;;;;;;;;;;;;4733:6:3;179:387:58;;:::i;:::-;;;720:10:7;;4733:6:3;:::i;179:387:58:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:58;;;;;-1:-1:-1;;179:387:58;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:58;;;;;-1:-1:-1;;179:387:58;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:58;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;179:387:58;;;;;;:::o;1660:162:1:-;1574:6;179:387:58;-1:-1:-1;;;;;179:387:58;720:10:7;1719:23:1;1715:101;;1660:162::o;1715:101::-;179:387:58;;-1:-1:-1;;;1765:40:1;;720:10:7;1765:40:1;;;179:387:58;;;1765:40:1;179:387:58;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7553:302:3;;-1:-1:-1;;;;;179:387:58;;;;7637:18:3;;7633:86;;179:387:58;7732:16:3;;;7728:86;;8241:443;179:387:58;;;;;;;;;;;8387:20:3;;;;8383:117;;179:387:58;;;;;9139:26:3;179:387:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:3;7553:302::o;8383:117::-;179:387:58;;-1:-1:-1;;;8434:51:3;;-1:-1:-1;;;;;179:387:58;;;;8434:51:3;;;179:387:58;;;;;;;;;;;;;;;;6969:74:3;7728:86;179:387:58;;-1:-1:-1;;;7771:32:3;;7653:1;7771:32;;;179:387:58;;;7771:32:3;7633:86;179:387:58;;-1:-1:-1;;;7678:30:3;;7653:1;7678:30;;;179:387:58;;;7678:30:3;10659:380;-1:-1:-1;;;;;179:387:58;;;;10756:19:3;;10752:89;;179:387:58;10854:21:3;;;10850:90;;179:387:58;11000:32:3;179:387:58;;10773:1:3;179:387:58;;;;;10773:1:3;179:387:58;;10773:1:3;179:387:58;;;;;10773:1:3;179:387:58;;;;;;;11000:32:3;10659:380::o;10850:90::-;179:387:58;;-1:-1:-1;;;10898:31:3;;10773:1;10898:31;;;179:387:58;;;10898:31:3;10752:89;179:387:58;;-1:-1:-1;;;10798:32:3;;10773:1;10798:32;;;179:387:58;;;10798:32:3","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","currentSupply()":"771282f6","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/ERC20Helper.sol\":\"DummyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/ERC20Helper.sol\":{\"keccak256\":\"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625\",\"dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/ERC20Helper.sol":"DummyERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/ERC20Helper.sol":{"keccak256":"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939","urls":["bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625","dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/ERC20Helper.sol","id":18213,"exportedSymbols":{"Context":[1647],"DummyERC20":[18212],"ERC20":[1137],"IERC1155Errors":[567],"IERC20":[1215],"IERC20Errors":[472],"IERC20Metadata":[1240],"IERC721Errors":[520],"Ownable":[430]},"nodeType":"SourceUnit","src":"46:521:58","nodes":[{"id":18163,"nodeType":"PragmaDirective","src":"46:23:58","nodes":[],"literals":["solidity","0.8",".19"]},{"id":18164,"nodeType":"ImportDirective","src":"71:54:58","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":18213,"sourceUnit":1138,"symbolAliases":[],"unitAlias":""},{"id":18165,"nodeType":"ImportDirective","src":"126:51:58","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"openzeppelin-contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":18213,"sourceUnit":431,"symbolAliases":[],"unitAlias":""},{"id":18212,"nodeType":"ContractDefinition","src":"179:387:58","nodes":[{"id":18172,"nodeType":"VariableDeclaration","src":"223:32:58","nodes":[],"constant":false,"functionSelector":"771282f6","mutability":"mutable","name":"currentSupply","nameLocation":"238:13:58","scope":18212,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18170,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":18171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":18196,"nodeType":"FunctionDefinition","src":"262:199:58","nodes":[],"body":{"id":18195,"nodeType":"Block","src":"414:47:58","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":18190,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":350,"src":"430:5:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:7:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18192,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18178,"src":"439:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18189,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"424:5:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18194,"nodeType":"ExpressionStatement","src":"424:30:58"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":18181,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"380:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"384:6:58","memberName":"sender","nodeType":"MemberAccess","src":"380:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":18183,"kind":"baseConstructorSpecifier","modifierName":{"id":18180,"name":"Ownable","nameLocations":["372:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":430,"src":"372:7:58"},"nodeType":"ModifierInvocation","src":"372:19:58"},{"arguments":[{"id":18185,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18174,"src":"398:5:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18186,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"405:7:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":18187,"kind":"baseConstructorSpecifier","modifierName":{"id":18184,"name":"ERC20","nameLocations":["392:5:58"],"nodeType":"IdentifierPath","referencedDeclaration":1137,"src":"392:5:58"},"nodeType":"ModifierInvocation","src":"392:21:58"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":18179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18174,"mutability":"mutable","name":"_name","nameLocation":"297:5:58","nodeType":"VariableDeclaration","scope":18196,"src":"283:19:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18173,"name":"string","nodeType":"ElementaryTypeName","src":"283:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18176,"mutability":"mutable","name":"_symbol","nameLocation":"326:7:58","nodeType":"VariableDeclaration","scope":18196,"src":"312:21:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18175,"name":"string","nodeType":"ElementaryTypeName","src":"312:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18178,"mutability":"mutable","name":"_initialSupply","nameLocation":"351:14:58","nodeType":"VariableDeclaration","scope":18196,"src":"343:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18177,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:98:58"},"returnParameters":{"id":18188,"nodeType":"ParameterList","parameters":[],"src":"414:0:58"},"scope":18212,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":18211,"nodeType":"FunctionDefinition","src":"467:97:58","nodes":[],"body":{"id":18210,"nodeType":"Block","src":"528:36:58","nodes":[],"statements":[{"expression":{"arguments":[{"id":18206,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18198,"src":"544:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18207,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"549:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18205,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"538:5:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"538:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18209,"nodeType":"ExpressionStatement","src":"538:19:58"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":18203,"kind":"modifierInvocation","modifierName":{"id":18202,"name":"onlyOwner","nameLocations":["518:9:58"],"nodeType":"IdentifierPath","referencedDeclaration":341,"src":"518:9:58"},"nodeType":"ModifierInvocation","src":"518:9:58"}],"name":"mint","nameLocation":"476:4:58","parameters":{"id":18201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18198,"mutability":"mutable","name":"_to","nameLocation":"489:3:58","nodeType":"VariableDeclaration","scope":18211,"src":"481:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18197,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18200,"mutability":"mutable","name":"_amount","nameLocation":"502:7:58","nodeType":"VariableDeclaration","scope":18211,"src":"494:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18199,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:30:58"},"returnParameters":{"id":18204,"nodeType":"ParameterList","parameters":[],"src":"528:0:58"},"scope":18212,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":18166,"name":"ERC20","nameLocations":["202:5:58"],"nodeType":"IdentifierPath","referencedDeclaration":1137,"src":"202:5:58"},"id":18167,"nodeType":"InheritanceSpecifier","src":"202:5:58"},{"baseName":{"id":18168,"name":"Ownable","nameLocations":["209:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":430,"src":"209:7:58"},"id":18169,"nodeType":"InheritanceSpecifier","src":"209:7:58"}],"canonicalName":"DummyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18212,430,1137,472,1240,1215,1647],"name":"DummyERC20","nameLocation":"188:10:58","scope":18213,"usedErrors":[311,316,442,447,452,461,466,471,607]}],"license":"MIT OR Apache-2.0"},"id":58} \ No newline at end of file diff --git a/contracts/out/EnumerableSet.sol/EnumerableSet.json b/contracts/out/EnumerableSet.sol/EnumerableSet.json deleted file mode 100644 index 548a9bc945..0000000000 --- a/contracts/out/EnumerableSet.sol/EnumerableSet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c955860e23228fa61c537425ef073a4c801fbd91159082ce57f7d844893cb28e64736f6c63430008130033","sourceMap":"1330:11630:13:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220c955860e23228fa61c537425ef073a4c801fbd91159082ce57f7d844893cb28e64736f6c63430008130033","sourceMap":"1330:11630:13:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ```solidity contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":"EnumerableSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","id":4603,"exportedSymbols":{"EnumerableSet":[4602]},"nodeType":"SourceUnit","src":"205:12756:13","nodes":[{"id":3991,"nodeType":"PragmaDirective","src":"205:24:13","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":4602,"nodeType":"ContractDefinition","src":"1330:11630:13","nodes":[{"id":4000,"nodeType":"StructDefinition","src":"1798:247:13","nodes":[],"canonicalName":"EnumerableSet.Set","members":[{"constant":false,"id":3995,"mutability":"mutable","name":"_values","nameLocation":"1862:7:13","nodeType":"VariableDeclaration","scope":4000,"src":"1852:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1852:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3994,"nodeType":"ArrayTypeName","src":"1852:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3999,"mutability":"mutable","name":"_indexes","nameLocation":"2030:8:13","nodeType":"VariableDeclaration","scope":4000,"src":"2002:36:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":3998,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2010:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2002:27:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3997,"name":"uint256","nodeType":"ElementaryTypeName","src":"2021:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1805:3:13","scope":4602,"visibility":"public"},{"id":4042,"nodeType":"FunctionDefinition","src":"2215:404:13","nodes":[],"body":{"id":4041,"nodeType":"Block","src":"2284:335:13","nodes":[],"statements":[{"condition":{"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2298:22:13","subExpression":{"arguments":[{"id":4012,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"2309:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":4013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"2314:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4011,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4145,"src":"2299:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":4014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:21:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4039,"nodeType":"Block","src":"2576:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":4037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2597:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4010,"id":4038,"nodeType":"Return","src":"2590:12:13"}]},"id":4040,"nodeType":"IfStatement","src":"2294:319:13","trueBody":{"id":4036,"nodeType":"Block","src":"2322:248:13","statements":[{"expression":{"arguments":[{"id":4021,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"2353:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":4016,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"2336:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2340:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"2336:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2348:4:13","memberName":"push","nodeType":"MemberAccess","src":"2336:16:13","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2336:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4023,"nodeType":"ExpressionStatement","src":"2336:23:13"},{"expression":{"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4024,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"2494:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2498:8:13","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":3999,"src":"2494:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4028,"indexExpression":{"id":4026,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"2507:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2494:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":4029,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"2516:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"2516:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2528:6:13","memberName":"length","nodeType":"MemberAccess","src":"2516:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:40:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4033,"nodeType":"ExpressionStatement","src":"2494:40:13"},{"expression":{"hexValue":"74727565","id":4034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2555:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4010,"id":4035,"nodeType":"Return","src":"2548:11:13"}]}}]},"documentation":{"id":4001,"nodeType":"StructuredDocumentation","src":"2051:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2224:4:13","parameters":{"id":4007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4004,"mutability":"mutable","name":"set","nameLocation":"2241:3:13","nodeType":"VariableDeclaration","scope":4042,"src":"2229:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4003,"nodeType":"UserDefinedTypeName","pathNode":{"id":4002,"name":"Set","nameLocations":["2229:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"2229:3:13"},"referencedDeclaration":4000,"src":"2229:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":4006,"mutability":"mutable","name":"value","nameLocation":"2254:5:13","nodeType":"VariableDeclaration","scope":4042,"src":"2246:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2246:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2228:32:13"},"returnParameters":{"id":4010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4042,"src":"2278:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4008,"name":"bool","nodeType":"ElementaryTypeName","src":"2278:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2277:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":4126,"nodeType":"FunctionDefinition","src":"2787:1388:13","nodes":[],"body":{"id":4125,"nodeType":"Block","src":"2859:1316:13","nodes":[],"statements":[{"assignments":[4054],"declarations":[{"constant":false,"id":4054,"mutability":"mutable","name":"valueIndex","nameLocation":"2977:10:13","nodeType":"VariableDeclaration","scope":4125,"src":"2969:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4053,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4059,"initialValue":{"baseExpression":{"expression":{"id":4055,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"2990:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2994:8:13","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":3999,"src":"2990:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4058,"indexExpression":{"id":4057,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"3003:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2990:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2969:40:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4060,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"3024:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3024:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4123,"nodeType":"Block","src":"4132:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":4121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4052,"id":4122,"nodeType":"Return","src":"4146:12:13"}]},"id":4124,"nodeType":"IfStatement","src":"3020:1149:13","trueBody":{"id":4120,"nodeType":"Block","src":"3041:1085:13","statements":[{"assignments":[4064],"declarations":[{"constant":false,"id":4064,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3401:13:13","nodeType":"VariableDeclaration","scope":4120,"src":"3393:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3393:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4068,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4065,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"3417:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3430:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3417:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3393:38:13"},{"assignments":[4070],"declarations":[{"constant":false,"id":4070,"mutability":"mutable","name":"lastIndex","nameLocation":"3453:9:13","nodeType":"VariableDeclaration","scope":4120,"src":"3445:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4069,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4076,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4071,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"3465:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3469:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"3465:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3477:6:13","memberName":"length","nodeType":"MemberAccess","src":"3465:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3486:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3465:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3445:42:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4077,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"3506:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4078,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"3519:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3506:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4104,"nodeType":"IfStatement","src":"3502:398:13","trueBody":{"id":4103,"nodeType":"Block","src":"3534:366:13","statements":[{"assignments":[4081],"declarations":[{"constant":false,"id":4081,"mutability":"mutable","name":"lastValue","nameLocation":"3560:9:13","nodeType":"VariableDeclaration","scope":4103,"src":"3552:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3552:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4086,"initialValue":{"baseExpression":{"expression":{"id":4082,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"3572:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3576:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"3572:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4085,"indexExpression":{"id":4084,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"3584:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3572:22:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3552:42:13"},{"expression":{"id":4093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4087,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"3694:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3698:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"3694:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4091,"indexExpression":{"id":4089,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"3706:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3694:26:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4092,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"3723:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3694:38:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4094,"nodeType":"ExpressionStatement","src":"3694:38:13"},{"expression":{"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4095,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"3806:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3810:8:13","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":3999,"src":"3806:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4099,"indexExpression":{"id":4097,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"3819:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3806:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4100,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"3832:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3806:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4102,"nodeType":"ExpressionStatement","src":"3806:36:13"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":4105,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"3978:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3982:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"3978:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3990:3:13","memberName":"pop","nodeType":"MemberAccess","src":"3978:15:13","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":4110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4111,"nodeType":"ExpressionStatement","src":"3978:17:13"},{"expression":{"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4063:26:13","subExpression":{"baseExpression":{"expression":{"id":4112,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4046,"src":"4070:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4074:8:13","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":3999,"src":"4070:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4115,"indexExpression":{"id":4114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"4083:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4070:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4117,"nodeType":"ExpressionStatement","src":"4063:26:13"},{"expression":{"hexValue":"74727565","id":4118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4111:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4052,"id":4119,"nodeType":"Return","src":"4104:11:13"}]}}]},"documentation":{"id":4043,"nodeType":"StructuredDocumentation","src":"2625:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2796:7:13","parameters":{"id":4049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4046,"mutability":"mutable","name":"set","nameLocation":"2816:3:13","nodeType":"VariableDeclaration","scope":4126,"src":"2804:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4045,"nodeType":"UserDefinedTypeName","pathNode":{"id":4044,"name":"Set","nameLocations":["2804:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"2804:3:13"},"referencedDeclaration":4000,"src":"2804:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":4048,"mutability":"mutable","name":"value","nameLocation":"2829:5:13","nodeType":"VariableDeclaration","scope":4126,"src":"2821:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2821:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2803:32:13"},"returnParameters":{"id":4052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4126,"src":"2853:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4050,"name":"bool","nodeType":"ElementaryTypeName","src":"2853:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2852:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":4145,"nodeType":"FunctionDefinition","src":"4256:127:13","nodes":[],"body":{"id":4144,"nodeType":"Block","src":"4335:48:13","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4137,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"4352:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4356:8:13","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":3999,"src":"4352:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4140,"indexExpression":{"id":4139,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4132,"src":"4365:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4352:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4375:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4352:24:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4136,"id":4143,"nodeType":"Return","src":"4345:31:13"}]},"documentation":{"id":4127,"nodeType":"StructuredDocumentation","src":"4181:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4265:9:13","parameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4130,"mutability":"mutable","name":"set","nameLocation":"4287:3:13","nodeType":"VariableDeclaration","scope":4145,"src":"4275:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4129,"nodeType":"UserDefinedTypeName","pathNode":{"id":4128,"name":"Set","nameLocations":["4275:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"4275:3:13"},"referencedDeclaration":4000,"src":"4275:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":4132,"mutability":"mutable","name":"value","nameLocation":"4300:5:13","nodeType":"VariableDeclaration","scope":4145,"src":"4292:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4292:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4274:32:13"},"returnParameters":{"id":4136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4145,"src":"4329:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4134,"name":"bool","nodeType":"ElementaryTypeName","src":"4329:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4328:6:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":4159,"nodeType":"FunctionDefinition","src":"4464:107:13","nodes":[],"body":{"id":4158,"nodeType":"Block","src":"4529:42:13","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":4154,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4149,"src":"4546:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4550:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"4546:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4558:6:13","memberName":"length","nodeType":"MemberAccess","src":"4546:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4153,"id":4157,"nodeType":"Return","src":"4539:25:13"}]},"documentation":{"id":4146,"nodeType":"StructuredDocumentation","src":"4389:70:13","text":" @dev Returns the number of values on the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4473:7:13","parameters":{"id":4150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4149,"mutability":"mutable","name":"set","nameLocation":"4493:3:13","nodeType":"VariableDeclaration","scope":4159,"src":"4481:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4148,"nodeType":"UserDefinedTypeName","pathNode":{"id":4147,"name":"Set","nameLocations":["4481:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"4481:3:13"},"referencedDeclaration":4000,"src":"4481:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4480:17:13"},"returnParameters":{"id":4153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4159,"src":"4520:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4151,"name":"uint256","nodeType":"ElementaryTypeName","src":"4520:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4519:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":4176,"nodeType":"FunctionDefinition","src":"4913:118:13","nodes":[],"body":{"id":4175,"nodeType":"Block","src":"4989:42:13","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":4170,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4163,"src":"5006:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5010:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"5006:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4173,"indexExpression":{"id":4172,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"5018:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5006:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4169,"id":4174,"nodeType":"Return","src":"4999:25:13"}]},"documentation":{"id":4160,"nodeType":"StructuredDocumentation","src":"4577:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4922:3:13","parameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4163,"mutability":"mutable","name":"set","nameLocation":"4938:3:13","nodeType":"VariableDeclaration","scope":4176,"src":"4926:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4162,"nodeType":"UserDefinedTypeName","pathNode":{"id":4161,"name":"Set","nameLocations":["4926:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"4926:3:13"},"referencedDeclaration":4000,"src":"4926:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":4165,"mutability":"mutable","name":"index","nameLocation":"4951:5:13","nodeType":"VariableDeclaration","scope":4176,"src":"4943:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4164,"name":"uint256","nodeType":"ElementaryTypeName","src":"4943:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4925:32:13"},"returnParameters":{"id":4169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4176,"src":"4980:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4980:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4979:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":4190,"nodeType":"FunctionDefinition","src":"5571:109:13","nodes":[],"body":{"id":4189,"nodeType":"Block","src":"5645:35:13","nodes":[],"statements":[{"expression":{"expression":{"id":4186,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4180,"src":"5662:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":4187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5666:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3995,"src":"5662:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":4185,"id":4188,"nodeType":"Return","src":"5655:18:13"}]},"documentation":{"id":4177,"nodeType":"StructuredDocumentation","src":"5037:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5580:7:13","parameters":{"id":4181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4180,"mutability":"mutable","name":"set","nameLocation":"5600:3:13","nodeType":"VariableDeclaration","scope":4190,"src":"5588:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4179,"nodeType":"UserDefinedTypeName","pathNode":{"id":4178,"name":"Set","nameLocations":["5588:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"5588:3:13"},"referencedDeclaration":4000,"src":"5588:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5587:17:13"},"returnParameters":{"id":4185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4190,"src":"5627:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5627:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4183,"nodeType":"ArrayTypeName","src":"5627:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5626:18:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":4194,"nodeType":"StructDefinition","src":"5705:45:13","nodes":[],"canonicalName":"EnumerableSet.Bytes32Set","members":[{"constant":false,"id":4193,"mutability":"mutable","name":"_inner","nameLocation":"5737:6:13","nodeType":"VariableDeclaration","scope":4194,"src":"5733:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4192,"nodeType":"UserDefinedTypeName","pathNode":{"id":4191,"name":"Set","nameLocations":["5733:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"5733:3:13"},"referencedDeclaration":4000,"src":"5733:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5712:10:13","scope":4602,"visibility":"public"},{"id":4212,"nodeType":"FunctionDefinition","src":"5920:123:13","nodes":[],"body":{"id":4211,"nodeType":"Block","src":"5996:47:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4206,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"6018:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":4207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6022:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4193,"src":"6018:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":4208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4200,"src":"6030:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4205,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4042,"src":"6013:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4204,"id":4210,"nodeType":"Return","src":"6006:30:13"}]},"documentation":{"id":4195,"nodeType":"StructuredDocumentation","src":"5756:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5929:3:13","parameters":{"id":4201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4198,"mutability":"mutable","name":"set","nameLocation":"5952:3:13","nodeType":"VariableDeclaration","scope":4212,"src":"5933:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":4197,"nodeType":"UserDefinedTypeName","pathNode":{"id":4196,"name":"Bytes32Set","nameLocations":["5933:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4194,"src":"5933:10:13"},"referencedDeclaration":4194,"src":"5933:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4200,"mutability":"mutable","name":"value","nameLocation":"5965:5:13","nodeType":"VariableDeclaration","scope":4212,"src":"5957:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5957:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5932:39:13"},"returnParameters":{"id":4204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4212,"src":"5990:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4202,"name":"bool","nodeType":"ElementaryTypeName","src":"5990:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5989:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4230,"nodeType":"FunctionDefinition","src":"6211:129:13","nodes":[],"body":{"id":4229,"nodeType":"Block","src":"6290:50:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4224,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4216,"src":"6315:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":4225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6319:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4193,"src":"6315:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":4226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4218,"src":"6327:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4223,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"6307:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":4227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4222,"id":4228,"nodeType":"Return","src":"6300:33:13"}]},"documentation":{"id":4213,"nodeType":"StructuredDocumentation","src":"6049:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6220:6:13","parameters":{"id":4219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4216,"mutability":"mutable","name":"set","nameLocation":"6246:3:13","nodeType":"VariableDeclaration","scope":4230,"src":"6227:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":4215,"nodeType":"UserDefinedTypeName","pathNode":{"id":4214,"name":"Bytes32Set","nameLocations":["6227:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4194,"src":"6227:10:13"},"referencedDeclaration":4194,"src":"6227:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4218,"mutability":"mutable","name":"value","nameLocation":"6259:5:13","nodeType":"VariableDeclaration","scope":4230,"src":"6251:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6251:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6226:39:13"},"returnParameters":{"id":4222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4230,"src":"6284:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4220,"name":"bool","nodeType":"ElementaryTypeName","src":"6284:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6283:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4248,"nodeType":"FunctionDefinition","src":"6421:138:13","nodes":[],"body":{"id":4247,"nodeType":"Block","src":"6507:52:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4242,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"6534:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":4243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6538:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4193,"src":"6534:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":4244,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"6546:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4241,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4145,"src":"6524:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6524:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4240,"id":4246,"nodeType":"Return","src":"6517:35:13"}]},"documentation":{"id":4231,"nodeType":"StructuredDocumentation","src":"6346:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6430:8:13","parameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4234,"mutability":"mutable","name":"set","nameLocation":"6458:3:13","nodeType":"VariableDeclaration","scope":4248,"src":"6439:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":4233,"nodeType":"UserDefinedTypeName","pathNode":{"id":4232,"name":"Bytes32Set","nameLocations":["6439:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4194,"src":"6439:10:13"},"referencedDeclaration":4194,"src":"6439:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"value","nameLocation":"6471:5:13","nodeType":"VariableDeclaration","scope":4248,"src":"6463:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6463:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6438:39:13"},"returnParameters":{"id":4240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4248,"src":"6501:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4238,"name":"bool","nodeType":"ElementaryTypeName","src":"6501:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6500:6:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4263,"nodeType":"FunctionDefinition","src":"6640:115:13","nodes":[],"body":{"id":4262,"nodeType":"Block","src":"6712:43:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4258,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4252,"src":"6737:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":4259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6741:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4193,"src":"6737:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":4257,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4159,"src":"6729:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6729:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4256,"id":4261,"nodeType":"Return","src":"6722:26:13"}]},"documentation":{"id":4249,"nodeType":"StructuredDocumentation","src":"6565:70:13","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6649:6:13","parameters":{"id":4253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4252,"mutability":"mutable","name":"set","nameLocation":"6675:3:13","nodeType":"VariableDeclaration","scope":4263,"src":"6656:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":4251,"nodeType":"UserDefinedTypeName","pathNode":{"id":4250,"name":"Bytes32Set","nameLocations":["6656:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4194,"src":"6656:10:13"},"referencedDeclaration":4194,"src":"6656:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6655:24:13"},"returnParameters":{"id":4256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4255,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4263,"src":"6703:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4254,"name":"uint256","nodeType":"ElementaryTypeName","src":"6703:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6702:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4281,"nodeType":"FunctionDefinition","src":"7097:129:13","nodes":[],"body":{"id":4280,"nodeType":"Block","src":"7180:46:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4275,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"7201:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":4276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7205:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4193,"src":"7201:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":4277,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"7213:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4274,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"7197:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":4278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4273,"id":4279,"nodeType":"Return","src":"7190:29:13"}]},"documentation":{"id":4264,"nodeType":"StructuredDocumentation","src":"6761:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7106:2:13","parameters":{"id":4270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4267,"mutability":"mutable","name":"set","nameLocation":"7128:3:13","nodeType":"VariableDeclaration","scope":4281,"src":"7109:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":4266,"nodeType":"UserDefinedTypeName","pathNode":{"id":4265,"name":"Bytes32Set","nameLocations":["7109:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4194,"src":"7109:10:13"},"referencedDeclaration":4194,"src":"7109:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4269,"mutability":"mutable","name":"index","nameLocation":"7141:5:13","nodeType":"VariableDeclaration","scope":4281,"src":"7133:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4268,"name":"uint256","nodeType":"ElementaryTypeName","src":"7133:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7108:39:13"},"returnParameters":{"id":4273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4281,"src":"7171:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7171:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7170:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4311,"nodeType":"FunctionDefinition","src":"7766:300:13","nodes":[],"body":{"id":4310,"nodeType":"Block","src":"7847:219:13","nodes":[],"statements":[{"assignments":[4295],"declarations":[{"constant":false,"id":4295,"mutability":"mutable","name":"store","nameLocation":"7874:5:13","nodeType":"VariableDeclaration","scope":4310,"src":"7857:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7857:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4294,"nodeType":"ArrayTypeName","src":"7857:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4300,"initialValue":{"arguments":[{"expression":{"id":4297,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"7890:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":4298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7894:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4193,"src":"7890:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":4296,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4190,"src":"7882:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7857:44:13"},{"assignments":[4305],"declarations":[{"constant":false,"id":4305,"mutability":"mutable","name":"result","nameLocation":"7928:6:13","nodeType":"VariableDeclaration","scope":4310,"src":"7911:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7911:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4304,"nodeType":"ArrayTypeName","src":"7911:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4306,"nodeType":"VariableDeclarationStatement","src":"7911:23:13"},{"AST":{"nodeType":"YulBlock","src":"7997:39:13","statements":[{"nodeType":"YulAssignment","src":"8011:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"8021:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8011:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4305,"isOffset":false,"isSlot":false,"src":"8011:6:13","valueSize":1},{"declaration":4295,"isOffset":false,"isSlot":false,"src":"8021:5:13","valueSize":1}],"id":4307,"nodeType":"InlineAssembly","src":"7988:48:13"},{"expression":{"id":4308,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4305,"src":"8053:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":4290,"id":4309,"nodeType":"Return","src":"8046:13:13"}]},"documentation":{"id":4282,"nodeType":"StructuredDocumentation","src":"7232:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7775:6:13","parameters":{"id":4286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4285,"mutability":"mutable","name":"set","nameLocation":"7801:3:13","nodeType":"VariableDeclaration","scope":4311,"src":"7782:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":4284,"nodeType":"UserDefinedTypeName","pathNode":{"id":4283,"name":"Bytes32Set","nameLocations":["7782:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4194,"src":"7782:10:13"},"referencedDeclaration":4194,"src":"7782:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4194_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7781:24:13"},"returnParameters":{"id":4290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4311,"src":"7829:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7829:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4288,"nodeType":"ArrayTypeName","src":"7829:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7828:18:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4315,"nodeType":"StructDefinition","src":"8091:45:13","nodes":[],"canonicalName":"EnumerableSet.AddressSet","members":[{"constant":false,"id":4314,"mutability":"mutable","name":"_inner","nameLocation":"8123:6:13","nodeType":"VariableDeclaration","scope":4315,"src":"8119:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4313,"nodeType":"UserDefinedTypeName","pathNode":{"id":4312,"name":"Set","nameLocations":["8119:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"8119:3:13"},"referencedDeclaration":4000,"src":"8119:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8098:10:13","scope":4602,"visibility":"public"},{"id":4342,"nodeType":"FunctionDefinition","src":"8306:150:13","nodes":[],"body":{"id":4341,"nodeType":"Block","src":"8382:74:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4327,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4319,"src":"8404:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":4328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8408:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4314,"src":"8404:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4335,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4321,"src":"8440:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8432:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4333,"name":"uint160","nodeType":"ElementaryTypeName","src":"8432:7:13","typeDescriptions":{}}},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8432:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8424:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4331,"name":"uint256","nodeType":"ElementaryTypeName","src":"8424:7:13","typeDescriptions":{}}},"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8424:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8416:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8416:7:13","typeDescriptions":{}}},"id":4338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8416:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4326,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4042,"src":"8399:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:50:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4325,"id":4340,"nodeType":"Return","src":"8392:57:13"}]},"documentation":{"id":4316,"nodeType":"StructuredDocumentation","src":"8142:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8315:3:13","parameters":{"id":4322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4319,"mutability":"mutable","name":"set","nameLocation":"8338:3:13","nodeType":"VariableDeclaration","scope":4342,"src":"8319:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4318,"nodeType":"UserDefinedTypeName","pathNode":{"id":4317,"name":"AddressSet","nameLocations":["8319:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"8319:10:13"},"referencedDeclaration":4315,"src":"8319:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4321,"mutability":"mutable","name":"value","nameLocation":"8351:5:13","nodeType":"VariableDeclaration","scope":4342,"src":"8343:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4320,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8318:39:13"},"returnParameters":{"id":4325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4342,"src":"8376:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4323,"name":"bool","nodeType":"ElementaryTypeName","src":"8376:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8375:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4369,"nodeType":"FunctionDefinition","src":"8624:156:13","nodes":[],"body":{"id":4368,"nodeType":"Block","src":"8703:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4354,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"8728:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":4355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4314,"src":"8728:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4348,"src":"8764:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4360,"name":"uint160","nodeType":"ElementaryTypeName","src":"8756:7:13","typeDescriptions":{}}},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8756:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8748:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4358,"name":"uint256","nodeType":"ElementaryTypeName","src":"8748:7:13","typeDescriptions":{}}},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8748:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8740:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8740:7:13","typeDescriptions":{}}},"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8740:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4353,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"8720:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":4366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8720:53:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4352,"id":4367,"nodeType":"Return","src":"8713:60:13"}]},"documentation":{"id":4343,"nodeType":"StructuredDocumentation","src":"8462:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8633:6:13","parameters":{"id":4349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4346,"mutability":"mutable","name":"set","nameLocation":"8659:3:13","nodeType":"VariableDeclaration","scope":4369,"src":"8640:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4345,"nodeType":"UserDefinedTypeName","pathNode":{"id":4344,"name":"AddressSet","nameLocations":["8640:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"8640:10:13"},"referencedDeclaration":4315,"src":"8640:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4348,"mutability":"mutable","name":"value","nameLocation":"8672:5:13","nodeType":"VariableDeclaration","scope":4369,"src":"8664:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4347,"name":"address","nodeType":"ElementaryTypeName","src":"8664:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8639:39:13"},"returnParameters":{"id":4352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4369,"src":"8697:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4350,"name":"bool","nodeType":"ElementaryTypeName","src":"8697:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8696:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4396,"nodeType":"FunctionDefinition","src":"8861:165:13","nodes":[],"body":{"id":4395,"nodeType":"Block","src":"8947:79:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4381,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4373,"src":"8974:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":4382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8978:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4314,"src":"8974:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4389,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"9010:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9002:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4387,"name":"uint160","nodeType":"ElementaryTypeName","src":"9002:7:13","typeDescriptions":{}}},"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9002:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8994:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4385,"name":"uint256","nodeType":"ElementaryTypeName","src":"8994:7:13","typeDescriptions":{}}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8994:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8986:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8986:7:13","typeDescriptions":{}}},"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8986:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4380,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4145,"src":"8964:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8964:55:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4379,"id":4394,"nodeType":"Return","src":"8957:62:13"}]},"documentation":{"id":4370,"nodeType":"StructuredDocumentation","src":"8786:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8870:8:13","parameters":{"id":4376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4373,"mutability":"mutable","name":"set","nameLocation":"8898:3:13","nodeType":"VariableDeclaration","scope":4396,"src":"8879:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4372,"nodeType":"UserDefinedTypeName","pathNode":{"id":4371,"name":"AddressSet","nameLocations":["8879:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"8879:10:13"},"referencedDeclaration":4315,"src":"8879:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4375,"mutability":"mutable","name":"value","nameLocation":"8911:5:13","nodeType":"VariableDeclaration","scope":4396,"src":"8903:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4374,"name":"address","nodeType":"ElementaryTypeName","src":"8903:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8878:39:13"},"returnParameters":{"id":4379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4396,"src":"8941:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4377,"name":"bool","nodeType":"ElementaryTypeName","src":"8941:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8940:6:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4411,"nodeType":"FunctionDefinition","src":"9107:115:13","nodes":[],"body":{"id":4410,"nodeType":"Block","src":"9179:43:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4406,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4400,"src":"9204:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":4407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9208:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4314,"src":"9204:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":4405,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4159,"src":"9196:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":4408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4404,"id":4409,"nodeType":"Return","src":"9189:26:13"}]},"documentation":{"id":4397,"nodeType":"StructuredDocumentation","src":"9032:70:13","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9116:6:13","parameters":{"id":4401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4400,"mutability":"mutable","name":"set","nameLocation":"9142:3:13","nodeType":"VariableDeclaration","scope":4411,"src":"9123:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4399,"nodeType":"UserDefinedTypeName","pathNode":{"id":4398,"name":"AddressSet","nameLocations":["9123:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"9123:10:13"},"referencedDeclaration":4315,"src":"9123:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9122:24:13"},"returnParameters":{"id":4404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4411,"src":"9170:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4402,"name":"uint256","nodeType":"ElementaryTypeName","src":"9170:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9169:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4438,"nodeType":"FunctionDefinition","src":"9564:156:13","nodes":[],"body":{"id":4437,"nodeType":"Block","src":"9647:73:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4429,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4415,"src":"9692:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":4430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9696:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4314,"src":"9692:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":4431,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4417,"src":"9704:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4428,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"9688:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":4432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9688:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9680:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4426,"name":"uint256","nodeType":"ElementaryTypeName","src":"9680:7:13","typeDescriptions":{}}},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9680:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9672:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4424,"name":"uint160","nodeType":"ElementaryTypeName","src":"9672:7:13","typeDescriptions":{}}},"id":4434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9672:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9664:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4422,"name":"address","nodeType":"ElementaryTypeName","src":"9664:7:13","typeDescriptions":{}}},"id":4435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9664:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4421,"id":4436,"nodeType":"Return","src":"9657:56:13"}]},"documentation":{"id":4412,"nodeType":"StructuredDocumentation","src":"9228:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9573:2:13","parameters":{"id":4418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4415,"mutability":"mutable","name":"set","nameLocation":"9595:3:13","nodeType":"VariableDeclaration","scope":4438,"src":"9576:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4414,"nodeType":"UserDefinedTypeName","pathNode":{"id":4413,"name":"AddressSet","nameLocations":["9576:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"9576:10:13"},"referencedDeclaration":4315,"src":"9576:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4417,"mutability":"mutable","name":"index","nameLocation":"9608:5:13","nodeType":"VariableDeclaration","scope":4438,"src":"9600:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4416,"name":"uint256","nodeType":"ElementaryTypeName","src":"9600:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9575:39:13"},"returnParameters":{"id":4421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4438,"src":"9638:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4419,"name":"address","nodeType":"ElementaryTypeName","src":"9638:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9637:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4468,"nodeType":"FunctionDefinition","src":"10260:300:13","nodes":[],"body":{"id":4467,"nodeType":"Block","src":"10341:219:13","nodes":[],"statements":[{"assignments":[4452],"declarations":[{"constant":false,"id":4452,"mutability":"mutable","name":"store","nameLocation":"10368:5:13","nodeType":"VariableDeclaration","scope":4467,"src":"10351:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10351:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4451,"nodeType":"ArrayTypeName","src":"10351:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4457,"initialValue":{"arguments":[{"expression":{"id":4454,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"10384:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":4455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10388:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4314,"src":"10384:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":4453,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4190,"src":"10376:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10376:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10351:44:13"},{"assignments":[4462],"declarations":[{"constant":false,"id":4462,"mutability":"mutable","name":"result","nameLocation":"10422:6:13","nodeType":"VariableDeclaration","scope":4467,"src":"10405:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4460,"name":"address","nodeType":"ElementaryTypeName","src":"10405:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4461,"nodeType":"ArrayTypeName","src":"10405:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":4463,"nodeType":"VariableDeclarationStatement","src":"10405:23:13"},{"AST":{"nodeType":"YulBlock","src":"10491:39:13","statements":[{"nodeType":"YulAssignment","src":"10505:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"10515:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10505:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4462,"isOffset":false,"isSlot":false,"src":"10505:6:13","valueSize":1},{"declaration":4452,"isOffset":false,"isSlot":false,"src":"10515:5:13","valueSize":1}],"id":4464,"nodeType":"InlineAssembly","src":"10482:48:13"},{"expression":{"id":4465,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"10547:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":4447,"id":4466,"nodeType":"Return","src":"10540:13:13"}]},"documentation":{"id":4439,"nodeType":"StructuredDocumentation","src":"9726:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10269:6:13","parameters":{"id":4443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4442,"mutability":"mutable","name":"set","nameLocation":"10295:3:13","nodeType":"VariableDeclaration","scope":4468,"src":"10276:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4441,"nodeType":"UserDefinedTypeName","pathNode":{"id":4440,"name":"AddressSet","nameLocations":["10276:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"10276:10:13"},"referencedDeclaration":4315,"src":"10276:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10275:24:13"},"returnParameters":{"id":4447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4468,"src":"10323:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4444,"name":"address","nodeType":"ElementaryTypeName","src":"10323:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4445,"nodeType":"ArrayTypeName","src":"10323:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10322:18:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4472,"nodeType":"StructDefinition","src":"10582:42:13","nodes":[],"canonicalName":"EnumerableSet.UintSet","members":[{"constant":false,"id":4471,"mutability":"mutable","name":"_inner","nameLocation":"10611:6:13","nodeType":"VariableDeclaration","scope":4472,"src":"10607:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":4470,"nodeType":"UserDefinedTypeName","pathNode":{"id":4469,"name":"Set","nameLocations":["10607:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":4000,"src":"10607:3:13"},"referencedDeclaration":4000,"src":"10607:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10589:7:13","scope":4602,"visibility":"public"},{"id":4493,"nodeType":"FunctionDefinition","src":"10794:129:13","nodes":[],"body":{"id":4492,"nodeType":"Block","src":"10867:56:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4484,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4476,"src":"10889:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":4485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4471,"src":"10889:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":4488,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4478,"src":"10909:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10901:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10901:7:13","typeDescriptions":{}}},"id":4489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10901:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4483,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4042,"src":"10884:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":4490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4482,"id":4491,"nodeType":"Return","src":"10877:39:13"}]},"documentation":{"id":4473,"nodeType":"StructuredDocumentation","src":"10630:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10803:3:13","parameters":{"id":4479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4476,"mutability":"mutable","name":"set","nameLocation":"10823:3:13","nodeType":"VariableDeclaration","scope":4493,"src":"10807:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":4475,"nodeType":"UserDefinedTypeName","pathNode":{"id":4474,"name":"UintSet","nameLocations":["10807:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"10807:7:13"},"referencedDeclaration":4472,"src":"10807:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":4478,"mutability":"mutable","name":"value","nameLocation":"10836:5:13","nodeType":"VariableDeclaration","scope":4493,"src":"10828:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4477,"name":"uint256","nodeType":"ElementaryTypeName","src":"10828:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10806:36:13"},"returnParameters":{"id":4482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4493,"src":"10861:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4480,"name":"bool","nodeType":"ElementaryTypeName","src":"10861:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10860:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4514,"nodeType":"FunctionDefinition","src":"11091:135:13","nodes":[],"body":{"id":4513,"nodeType":"Block","src":"11167:59:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4505,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"11192:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":4506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11196:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4471,"src":"11192:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":4509,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4499,"src":"11212:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11204:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:13","typeDescriptions":{}}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11204:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4504,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"11184:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4503,"id":4512,"nodeType":"Return","src":"11177:42:13"}]},"documentation":{"id":4494,"nodeType":"StructuredDocumentation","src":"10929:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11100:6:13","parameters":{"id":4500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4497,"mutability":"mutable","name":"set","nameLocation":"11123:3:13","nodeType":"VariableDeclaration","scope":4514,"src":"11107:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":4496,"nodeType":"UserDefinedTypeName","pathNode":{"id":4495,"name":"UintSet","nameLocations":["11107:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"11107:7:13"},"referencedDeclaration":4472,"src":"11107:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":4499,"mutability":"mutable","name":"value","nameLocation":"11136:5:13","nodeType":"VariableDeclaration","scope":4514,"src":"11128:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4498,"name":"uint256","nodeType":"ElementaryTypeName","src":"11128:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11106:36:13"},"returnParameters":{"id":4503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4514,"src":"11161:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4501,"name":"bool","nodeType":"ElementaryTypeName","src":"11161:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11160:6:13"},"scope":4602,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4535,"nodeType":"FunctionDefinition","src":"11307:144:13","nodes":[],"body":{"id":4534,"nodeType":"Block","src":"11390:61:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4526,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"11417:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":4527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11421:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4471,"src":"11417:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":4530,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4520,"src":"11437:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11429:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11429:7:13","typeDescriptions":{}}},"id":4531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4525,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4145,"src":"11407:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4524,"id":4533,"nodeType":"Return","src":"11400:44:13"}]},"documentation":{"id":4515,"nodeType":"StructuredDocumentation","src":"11232:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11316:8:13","parameters":{"id":4521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4518,"mutability":"mutable","name":"set","nameLocation":"11341:3:13","nodeType":"VariableDeclaration","scope":4535,"src":"11325:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":4517,"nodeType":"UserDefinedTypeName","pathNode":{"id":4516,"name":"UintSet","nameLocations":["11325:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"11325:7:13"},"referencedDeclaration":4472,"src":"11325:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":4520,"mutability":"mutable","name":"value","nameLocation":"11354:5:13","nodeType":"VariableDeclaration","scope":4535,"src":"11346:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4519,"name":"uint256","nodeType":"ElementaryTypeName","src":"11346:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11324:36:13"},"returnParameters":{"id":4524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4535,"src":"11384:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4522,"name":"bool","nodeType":"ElementaryTypeName","src":"11384:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11383:6:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4550,"nodeType":"FunctionDefinition","src":"11532:112:13","nodes":[],"body":{"id":4549,"nodeType":"Block","src":"11601:43:13","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":4545,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"11626:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":4546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11630:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4471,"src":"11626:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":4544,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4159,"src":"11618:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":4547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11618:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4543,"id":4548,"nodeType":"Return","src":"11611:26:13"}]},"documentation":{"id":4536,"nodeType":"StructuredDocumentation","src":"11457:70:13","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11541:6:13","parameters":{"id":4540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4539,"mutability":"mutable","name":"set","nameLocation":"11564:3:13","nodeType":"VariableDeclaration","scope":4550,"src":"11548:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":4538,"nodeType":"UserDefinedTypeName","pathNode":{"id":4537,"name":"UintSet","nameLocations":["11548:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"11548:7:13"},"referencedDeclaration":4472,"src":"11548:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11547:21:13"},"returnParameters":{"id":4543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4550,"src":"11592:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4541,"name":"uint256","nodeType":"ElementaryTypeName","src":"11592:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11591:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4571,"nodeType":"FunctionDefinition","src":"11986:135:13","nodes":[],"body":{"id":4570,"nodeType":"Block","src":"12066:55:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":4564,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"12095:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":4565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12099:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4471,"src":"12095:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":4566,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"12107:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4563,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"12091:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12091:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12083:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4561,"name":"uint256","nodeType":"ElementaryTypeName","src":"12083:7:13","typeDescriptions":{}}},"id":4568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12083:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4560,"id":4569,"nodeType":"Return","src":"12076:38:13"}]},"documentation":{"id":4551,"nodeType":"StructuredDocumentation","src":"11650:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11995:2:13","parameters":{"id":4557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4554,"mutability":"mutable","name":"set","nameLocation":"12014:3:13","nodeType":"VariableDeclaration","scope":4571,"src":"11998:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":4553,"nodeType":"UserDefinedTypeName","pathNode":{"id":4552,"name":"UintSet","nameLocations":["11998:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"11998:7:13"},"referencedDeclaration":4472,"src":"11998:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":4556,"mutability":"mutable","name":"index","nameLocation":"12027:5:13","nodeType":"VariableDeclaration","scope":4571,"src":"12019:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4555,"name":"uint256","nodeType":"ElementaryTypeName","src":"12019:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11997:36:13"},"returnParameters":{"id":4560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4571,"src":"12057:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4558,"name":"uint256","nodeType":"ElementaryTypeName","src":"12057:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12056:9:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4601,"nodeType":"FunctionDefinition","src":"12661:297:13","nodes":[],"body":{"id":4600,"nodeType":"Block","src":"12739:219:13","nodes":[],"statements":[{"assignments":[4585],"declarations":[{"constant":false,"id":4585,"mutability":"mutable","name":"store","nameLocation":"12766:5:13","nodeType":"VariableDeclaration","scope":4600,"src":"12749:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12749:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4584,"nodeType":"ArrayTypeName","src":"12749:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4590,"initialValue":{"arguments":[{"expression":{"id":4587,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"12782:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":4588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12786:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4471,"src":"12782:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4000_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":4586,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4190,"src":"12774:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4000_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":4589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12774:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12749:44:13"},{"assignments":[4595],"declarations":[{"constant":false,"id":4595,"mutability":"mutable","name":"result","nameLocation":"12820:6:13","nodeType":"VariableDeclaration","scope":4600,"src":"12803:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4593,"name":"uint256","nodeType":"ElementaryTypeName","src":"12803:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4594,"nodeType":"ArrayTypeName","src":"12803:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":4596,"nodeType":"VariableDeclarationStatement","src":"12803:23:13"},{"AST":{"nodeType":"YulBlock","src":"12889:39:13","statements":[{"nodeType":"YulAssignment","src":"12903:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"12913:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12903:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4595,"isOffset":false,"isSlot":false,"src":"12903:6:13","valueSize":1},{"declaration":4585,"isOffset":false,"isSlot":false,"src":"12913:5:13","valueSize":1}],"id":4597,"nodeType":"InlineAssembly","src":"12880:48:13"},{"expression":{"id":4598,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"12945:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":4580,"id":4599,"nodeType":"Return","src":"12938:13:13"}]},"documentation":{"id":4572,"nodeType":"StructuredDocumentation","src":"12127:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12670:6:13","parameters":{"id":4576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4575,"mutability":"mutable","name":"set","nameLocation":"12693:3:13","nodeType":"VariableDeclaration","scope":4601,"src":"12677:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":4574,"nodeType":"UserDefinedTypeName","pathNode":{"id":4573,"name":"UintSet","nameLocations":["12677:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"12677:7:13"},"referencedDeclaration":4472,"src":"12677:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12676:21:13"},"returnParameters":{"id":4580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4601,"src":"12721:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4577,"name":"uint256","nodeType":"ElementaryTypeName","src":"12721:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4578,"nodeType":"ArrayTypeName","src":"12721:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12720:18:13"},"scope":4602,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":3992,"nodeType":"StructuredDocumentation","src":"231:1098:13","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```solidity\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[4602],"name":"EnumerableSet","nameLocation":"1338:13:13","scope":4603,"usedErrors":[]}],"license":"MIT"},"id":13} \ No newline at end of file diff --git a/contracts/out/FilAddress.sol/FilAddress.json b/contracts/out/FilAddress.sol/FilAddress.json deleted file mode 100644 index 33aec82f85..0000000000 --- a/contracts/out/FilAddress.sol/FilAddress.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d1aac056911c3ca0ac803b6d0059d00a8a617b65b8251a32e0c75f4e6f63c31064736f6c63430008130033","sourceMap":"329:13338:0:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d1aac056911c3ca0ac803b6d0059d00a8a617b65b8251a32e0c75f4e6f63c31064736f6c63430008130033","sourceMap":"329:13338:0:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"fevmate (https://github.com/wadealexc/fevmate)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utility functions for converting between id and eth addresses. Helps implement address normalization. See README for more details about how to use this when developing for the FEVM.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":\"FilAddress\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidAddress"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/fevmate/contracts/utils/FilAddress.sol":"FilAddress"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","id":299,"exportedSymbols":{"FilAddress":[298]},"nodeType":"SourceUnit","src":"32:13636:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:24:0","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":298,"nodeType":"ContractDefinition","src":"329:13338:0","nodes":[{"id":4,"nodeType":"ErrorDefinition","src":"380:19:0","nodes":[],"errorSelector":"3204506f","name":"CallFailed","nameLocation":"386:10:0","parameters":{"id":3,"nodeType":"ParameterList","parameters":[],"src":"396:2:0"}},{"id":6,"nodeType":"ErrorDefinition","src":"404:23:0","nodes":[],"errorSelector":"e6c4247b","name":"InvalidAddress","nameLocation":"410:14:0","parameters":{"id":5,"nodeType":"ParameterList","parameters":[],"src":"424:2:0"}},{"id":8,"nodeType":"ErrorDefinition","src":"432:26:0","nodes":[],"errorSelector":"356680b7","name":"InsufficientFunds","nameLocation":"438:17:0","parameters":{"id":7,"nodeType":"ParameterList","parameters":[],"src":"455:2:0"}},{"id":11,"nodeType":"VariableDeclaration","src":"508:74:0","nodes":[],"constant":true,"mutability":"constant","name":"SYSTEM_ACTOR","nameLocation":"525:12:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9,"name":"address","nodeType":"ElementaryTypeName","src":"508:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030303030303030303030","id":10,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF00000000000000000000000000000000000000"},"visibility":"internal"},{"id":14,"nodeType":"VariableDeclaration","src":"588:72:0","nodes":[],"constant":true,"mutability":"constant","name":"INIT_ACTOR","nameLocation":"605:10:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"588:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866663030303030303030303030303030303030303030303030303030303030303030303030303031","id":13,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"618:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xff00000000000000000000000000000000000001"},"visibility":"internal"},{"id":17,"nodeType":"VariableDeclaration","src":"666:74:0","nodes":[],"constant":true,"mutability":"constant","name":"REWARD_ACTOR","nameLocation":"683:12:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"666:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866663030303030303030303030303030303030303030303030303030303030303030303030303032","id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"698:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xff00000000000000000000000000000000000002"},"visibility":"internal"},{"id":20,"nodeType":"VariableDeclaration","src":"746:72:0","nodes":[],"constant":true,"mutability":"constant","name":"CRON_ACTOR","nameLocation":"763:10:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"746:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846463030303030303030303030303030303030303030303030303030303030303030303030303033","id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"776:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFF00000000000000000000000000000000000003"},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"824:73:0","nodes":[],"constant":true,"mutability":"constant","name":"POWER_ACTOR","nameLocation":"841:11:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846663030303030303030303030303030303030303030303030303030303030303030303030303034","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFf00000000000000000000000000000000000004"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"903:74:0","nodes":[],"constant":true,"mutability":"constant","name":"MARKET_ACTOR","nameLocation":"920:12:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866663030303030303030303030303030303030303030303030303030303030303030303030303035","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"935:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xff00000000000000000000000000000000000005"},"visibility":"internal"},{"id":29,"nodeType":"VariableDeclaration","src":"983:85:0","nodes":[],"constant":true,"mutability":"constant","name":"VERIFIED_REGISTRY_ACTOR","nameLocation":"1000:23:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"983:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846463030303030303030303030303030303030303030303030303030303030303030303030303036","id":28,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1026:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFF00000000000000000000000000000000000006"},"visibility":"internal"},{"id":32,"nodeType":"VariableDeclaration","src":"1074:81:0","nodes":[],"constant":true,"mutability":"constant","name":"DATACAP_TOKEN_ACTOR","nameLocation":"1091:19:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030303030303030303037","id":31,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1113:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF00000000000000000000000000000000000007"},"visibility":"internal"},{"id":35,"nodeType":"VariableDeclaration","src":"1161:71:0","nodes":[],"constant":true,"mutability":"constant","name":"EAM_ACTOR","nameLocation":"1178:9:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030303030303030303061","id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1190:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF0000000000000000000000000000000000000a"},"visibility":"internal"},{"id":38,"nodeType":"VariableDeclaration","src":"1272:77:0","nodes":[],"constant":true,"mutability":"constant","name":"RESOLVE_ADDRESS","nameLocation":"1289:15:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36,"name":"address","nodeType":"ElementaryTypeName","src":"1272:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846453030303030303030303030303030303030303030303030303030303030303030303030303031","id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1307:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFE00000000000000000000000000000000000001"},"visibility":"internal"},{"id":41,"nodeType":"VariableDeclaration","src":"1355:86:0","nodes":[],"constant":true,"mutability":"constant","name":"LOOKUP_DELEGATED_ADDRESS","nameLocation":"1372:24:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39,"name":"address","nodeType":"ElementaryTypeName","src":"1355:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866453030303030303030303030303030303030303030303030303030303030303030303030303032","id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1399:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfE00000000000000000000000000000000000002"},"visibility":"internal"},{"id":44,"nodeType":"VariableDeclaration","src":"1447:72:0","nodes":[],"constant":true,"mutability":"constant","name":"CALL_ACTOR","nameLocation":"1464:10:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866653030303030303030303030303030303030303030303030303030303030303030303030303033","id":43,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1477:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfe00000000000000000000000000000000000003"},"visibility":"internal"},{"id":47,"nodeType":"VariableDeclaration","src":"1626:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CALL_ACTOR_BY_ID","nameLocation":"1643:16:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45,"name":"address","nodeType":"ElementaryTypeName","src":"1626:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866653030303030303030303030303030303030303030303030303030303030303030303030303035","id":46,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1662:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfe00000000000000000000000000000000000005"},"visibility":"internal"},{"id":50,"nodeType":"VariableDeclaration","src":"1840:47:0","nodes":[],"constant":true,"mutability":"constant","name":"ZERO_ID_ADDRESS","nameLocation":"1857:15:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48,"name":"address","nodeType":"ElementaryTypeName","src":"1840:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"id":49,"name":"SYSTEM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"1875:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":90,"nodeType":"FunctionDefinition","src":"2356:528:0","nodes":[],"body":{"id":89,"nodeType":"Block","src":"2419:465:0","nodes":[],"statements":[{"assignments":[59,61],"declarations":[{"constant":false,"id":59,"mutability":"mutable","name":"isID","nameLocation":"2511:4:0","nodeType":"VariableDeclaration","scope":89,"src":"2506:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58,"name":"bool","nodeType":"ElementaryTypeName","src":"2506:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":61,"mutability":"mutable","name":"id","nameLocation":"2524:2:0","nodeType":"VariableDeclaration","scope":89,"src":"2517:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":60,"name":"uint64","nodeType":"ElementaryTypeName","src":"2517:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":65,"initialValue":{"arguments":[{"id":63,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2542:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62,"name":"isIDAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"2530:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bool_$_t_uint64_$","typeString":"function (address) pure returns (bool,uint64)"}},"id":64,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"2505:40:0"},{"condition":{"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2559:5:0","subExpression":{"id":66,"name":"isID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59,"src":"2560:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":71,"nodeType":"IfStatement","src":"2555:45:0","trueBody":{"id":70,"nodeType":"Block","src":"2566:34:0","statements":[{"expression":{"id":68,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2587:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57,"id":69,"nodeType":"Return","src":"2580:9:0"}]}},{"assignments":[73,75],"declarations":[{"constant":false,"id":73,"mutability":"mutable","name":"success","nameLocation":"2738:7:0","nodeType":"VariableDeclaration","scope":89,"src":"2733:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72,"name":"bool","nodeType":"ElementaryTypeName","src":"2733:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":75,"mutability":"mutable","name":"eth","nameLocation":"2755:3:0","nodeType":"VariableDeclaration","scope":89,"src":"2747:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79,"initialValue":{"arguments":[{"id":77,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"2776:2:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":76,"name":"getEthAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"2762:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_address_$","typeString":"function (uint64) view returns (bool,address)"}},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2762:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"2732:47:0"},{"condition":{"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2793:8:0","subExpression":{"id":80,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"2794:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":87,"nodeType":"Block","src":"2843:35:0","statements":[{"expression":{"id":85,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75,"src":"2864:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57,"id":86,"nodeType":"Return","src":"2857:10:0"}]},"id":88,"nodeType":"IfStatement","src":"2789:89:0","trueBody":{"id":84,"nodeType":"Block","src":"2803:34:0","statements":[{"expression":{"id":82,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2824:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57,"id":83,"nodeType":"Return","src":"2817:9:0"}]}}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1898:453:0","text":" @notice Convert ID to Eth address. Returns input if conversion fails.\n Attempt to convert address _a from an ID address to an Eth address\n If _a is NOT an ID address, this returns _a\n If _a does NOT have a corresponding Eth address, this returns _a\n \n NOTE: It is possible this returns an ID address! If you want a method\n that will NEVER return an ID address, see mustNormalize below."},"implemented":true,"kind":"function","modifiers":[],"name":"normalize","nameLocation":"2365:9:0","parameters":{"id":54,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"_a","nameLocation":"2383:2:0","nodeType":"VariableDeclaration","scope":90,"src":"2375:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52,"name":"address","nodeType":"ElementaryTypeName","src":"2375:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2374:12:0"},"returnParameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90,"src":"2410:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55,"name":"address","nodeType":"ElementaryTypeName","src":"2410:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2409:9:0"},"scope":298,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":129,"nodeType":"FunctionDefinition","src":"3408:498:0","nodes":[],"body":{"id":128,"nodeType":"Block","src":"3475:431:0","nodes":[],"statements":[{"assignments":[99,101],"declarations":[{"constant":false,"id":99,"mutability":"mutable","name":"isID","nameLocation":"3567:4:0","nodeType":"VariableDeclaration","scope":128,"src":"3562:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98,"name":"bool","nodeType":"ElementaryTypeName","src":"3562:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":101,"mutability":"mutable","name":"id","nameLocation":"3580:2:0","nodeType":"VariableDeclaration","scope":128,"src":"3573:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":100,"name":"uint64","nodeType":"ElementaryTypeName","src":"3573:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":105,"initialValue":{"arguments":[{"id":103,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93,"src":"3598:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102,"name":"isIDAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"3586:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bool_$_t_uint64_$","typeString":"function (address) pure returns (bool,uint64)"}},"id":104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3586:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"3561:40:0"},{"condition":{"id":107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3615:5:0","subExpression":{"id":106,"name":"isID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99,"src":"3616:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":111,"nodeType":"IfStatement","src":"3611:45:0","trueBody":{"id":110,"nodeType":"Block","src":"3622:34:0","statements":[{"expression":{"id":108,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93,"src":"3643:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":97,"id":109,"nodeType":"Return","src":"3636:9:0"}]}},{"assignments":[113,115],"declarations":[{"constant":false,"id":113,"mutability":"mutable","name":"success","nameLocation":"3791:7:0","nodeType":"VariableDeclaration","scope":128,"src":"3786:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":112,"name":"bool","nodeType":"ElementaryTypeName","src":"3786:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":115,"mutability":"mutable","name":"eth","nameLocation":"3808:3:0","nodeType":"VariableDeclaration","scope":128,"src":"3800:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":114,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":119,"initialValue":{"arguments":[{"id":117,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"3829:2:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":116,"name":"getEthAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3815:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_address_$","typeString":"function (uint64) view returns (bool,address)"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3815:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"3785:47:0"},{"condition":{"id":121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3846:8:0","subExpression":{"id":120,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"3847:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":125,"nodeType":"IfStatement","src":"3842:37:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":122,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6,"src":"3863:14:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3863:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":124,"nodeType":"RevertStatement","src":"3856:23:0"}},{"expression":{"id":126,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"3896:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":97,"id":127,"nodeType":"Return","src":"3889:10:0"}]},"documentation":{"id":91,"nodeType":"StructuredDocumentation","src":"2890:513:0","text":" @notice Convert ID to Eth address. Reverts if conversion fails.\n Attempt to convert address _a from an ID address to an Eth address\n If _a is NOT an ID address, this returns _a unchanged\n If _a does NOT have a corresponding Eth address, this method reverts\n This method can be used when you want a guarantee that an ID address is not\n returned. Note, though, that rejecting ID addresses may mean you don't support\n other Filecoin-native actors."},"implemented":true,"kind":"function","modifiers":[],"name":"mustNormalize","nameLocation":"3417:13:0","parameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"_a","nameLocation":"3439:2:0","nodeType":"VariableDeclaration","scope":129,"src":"3431:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"3431:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3430:12:0"},"returnParameters":{"id":97,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":129,"src":"3466:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":95,"name":"address","nodeType":"ElementaryTypeName","src":"3466:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3465:9:0"},"scope":298,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":132,"nodeType":"VariableDeclaration","src":"3985:70:0","nodes":[],"constant":true,"mutability":"constant","name":"U64_MASK","nameLocation":"4002:8:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":130,"name":"address","nodeType":"ElementaryTypeName","src":"3985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846666646664666666666466646466666666646464666664630303030303030303030303030303030","id":131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4013:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFffFfFffffFfFFffffFFFffF0000000000000000"},"visibility":"internal"},{"id":135,"nodeType":"VariableDeclaration","src":"4133:69:0","nodes":[],"constant":true,"mutability":"constant","name":"MAX_U64","nameLocation":"4150:7:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":133,"name":"address","nodeType":"ElementaryTypeName","src":"4133:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303066464646464666664646464666666646","id":134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4160:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000000000fFFFFFffFFFFfffF"},"visibility":"internal"},{"id":147,"nodeType":"FunctionDefinition","src":"4411:476:0","nodes":[],"body":{"id":146,"nodeType":"Block","src":"4489:398:0","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4551:330:0","statements":[{"nodeType":"YulVariableDeclaration","src":"4614:31:0","value":{"arguments":[{"name":"_a","nodeType":"YulIdentifier","src":"4632:2:0"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"4636:8:0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4628:3:0"},"nodeType":"YulFunctionCall","src":"4628:17:0"},"variables":[{"name":"a_mask","nodeType":"YulTypedName","src":"4618:6:0","type":""}]},{"body":{"nodeType":"YulBlock","src":"4788:83:0","statements":[{"nodeType":"YulAssignment","src":"4806:12:0","value":{"kind":"bool","nodeType":"YulLiteral","src":"4814:4:0","type":"","value":"true"},"variableNames":[{"name":"isID","nodeType":"YulIdentifier","src":"4806:4:0"}]},{"nodeType":"YulAssignment","src":"4835:22:0","value":{"arguments":[{"name":"_a","nodeType":"YulIdentifier","src":"4845:2:0"},{"name":"MAX_U64","nodeType":"YulIdentifier","src":"4849:7:0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4841:3:0"},"nodeType":"YulFunctionCall","src":"4841:16:0"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"4835:2:0"}]}]},"condition":{"arguments":[{"name":"a_mask","nodeType":"YulIdentifier","src":"4763:6:0"},{"name":"ZERO_ID_ADDRESS","nodeType":"YulIdentifier","src":"4771:15:0"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4760:2:0"},"nodeType":"YulFunctionCall","src":"4760:27:0"},"nodeType":"YulIf","src":"4757:114:0"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":135,"isOffset":false,"isSlot":false,"src":"4849:7:0","valueSize":1},{"declaration":132,"isOffset":false,"isSlot":false,"src":"4636:8:0","valueSize":1},{"declaration":50,"isOffset":false,"isSlot":false,"src":"4771:15:0","valueSize":1},{"declaration":138,"isOffset":false,"isSlot":false,"src":"4632:2:0","valueSize":1},{"declaration":138,"isOffset":false,"isSlot":false,"src":"4845:2:0","valueSize":1},{"declaration":143,"isOffset":false,"isSlot":false,"src":"4835:2:0","valueSize":1},{"declaration":141,"isOffset":false,"isSlot":false,"src":"4806:4:0","valueSize":1}],"id":145,"nodeType":"InlineAssembly","src":"4542:339:0"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"4209:197:0","text":" @notice Checks whether _a matches the ID address format.\n If it does, returns true and the id\n \n The ID address format is:\n 0xFF | bytes11(0) | uint64(id)"},"implemented":true,"kind":"function","modifiers":[],"name":"isIDAddress","nameLocation":"4420:11:0","parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"_a","nameLocation":"4440:2:0","nodeType":"VariableDeclaration","scope":147,"src":"4432:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"4432:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4431:12:0"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"isID","nameLocation":"4472:4:0","nodeType":"VariableDeclaration","scope":147,"src":"4467:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":140,"name":"bool","nodeType":"ElementaryTypeName","src":"4467:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":143,"mutability":"mutable","name":"id","nameLocation":"4485:2:0","nodeType":"VariableDeclaration","scope":147,"src":"4478:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":142,"name":"uint64","nodeType":"ElementaryTypeName","src":"4478:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4466:22:0"},"scope":298,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":174,"nodeType":"FunctionDefinition","src":"5113:239:0","nodes":[],"body":{"id":173,"nodeType":"Block","src":"5176:176:0","nodes":[],"statements":[{"assignments":[156,158],"declarations":[{"constant":false,"id":156,"mutability":"mutable","name":"success","nameLocation":"5192:7:0","nodeType":"VariableDeclaration","scope":173,"src":"5187:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":155,"name":"bool","nodeType":"ElementaryTypeName","src":"5187:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":158,"mutability":"mutable","name":"eth","nameLocation":"5209:3:0","nodeType":"VariableDeclaration","scope":173,"src":"5201:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":157,"name":"address","nodeType":"ElementaryTypeName","src":"5201:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":162,"initialValue":{"arguments":[{"id":160,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"5230:3:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":159,"name":"getEthAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"5216:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_address_$","typeString":"function (uint64) view returns (bool,address)"}},"id":161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5216:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"5186:48:0"},{"condition":{"id":163,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156,"src":"5248:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":171,"nodeType":"Block","src":"5298:48:0","statements":[{"expression":{"arguments":[{"id":168,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"5331:3:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":167,"name":"toIDAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"5319:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_address_$","typeString":"function (uint64) pure returns (address)"}},"id":169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5319:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":154,"id":170,"nodeType":"Return","src":"5312:23:0"}]},"id":172,"nodeType":"IfStatement","src":"5244:102:0","trueBody":{"id":166,"nodeType":"Block","src":"5257:35:0","statements":[{"expression":{"id":164,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"5278:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":154,"id":165,"nodeType":"Return","src":"5271:10:0"}]}}]},"documentation":{"id":148,"nodeType":"StructuredDocumentation","src":"4893:215:0","text":" @notice Given an Actor ID, converts it to an EVM-compatible address.\n \n If _id has a corresponding Eth address, we return that\n Otherwise, _id is returned as a 20-byte ID address"},"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"5122:9:0","parameters":{"id":151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":150,"mutability":"mutable","name":"_id","nameLocation":"5139:3:0","nodeType":"VariableDeclaration","scope":174,"src":"5132:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":149,"name":"uint64","nodeType":"ElementaryTypeName","src":"5132:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5131:12:0"},"returnParameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":174,"src":"5167:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":152,"name":"address","nodeType":"ElementaryTypeName","src":"5167:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5166:9:0"},"scope":298,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":184,"nodeType":"FunctionDefinition","src":"5586:174:0","nodes":[],"body":{"id":183,"nodeType":"Block","src":"5656:104:0","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5718:36:0","statements":[{"nodeType":"YulAssignment","src":"5720:32:0","value":{"arguments":[{"name":"ZERO_ID_ADDRESS","nodeType":"YulIdentifier","src":"5731:15:0"},{"name":"_id","nodeType":"YulIdentifier","src":"5748:3:0"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5728:2:0"},"nodeType":"YulFunctionCall","src":"5728:24:0"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"5720:4:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":50,"isOffset":false,"isSlot":false,"src":"5731:15:0","valueSize":1},{"declaration":177,"isOffset":false,"isSlot":false,"src":"5748:3:0","valueSize":1},{"declaration":180,"isOffset":false,"isSlot":false,"src":"5720:4:0","valueSize":1}],"id":182,"nodeType":"InlineAssembly","src":"5709:45:0"}]},"documentation":{"id":175,"nodeType":"StructuredDocumentation","src":"5358:223:0","text":" @notice Given an Actor ID, converts it to a 20-byte ID address\n \n Note that this method does NOT check if the _id has a corresponding\n Eth address. If you want that, try toAddress above."},"implemented":true,"kind":"function","modifiers":[],"name":"toIDAddress","nameLocation":"5595:11:0","parameters":{"id":178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":177,"mutability":"mutable","name":"_id","nameLocation":"5614:3:0","nodeType":"VariableDeclaration","scope":184,"src":"5607:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":176,"name":"uint64","nodeType":"ElementaryTypeName","src":"5607:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5606:12:0"},"returnParameters":{"id":181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":180,"mutability":"mutable","name":"addr","nameLocation":"5650:4:0","nodeType":"VariableDeclaration","scope":184,"src":"5642:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":179,"name":"address","nodeType":"ElementaryTypeName","src":"5642:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5641:14:0"},"scope":298,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":187,"nodeType":"VariableDeclaration","src":"5835:74:0","nodes":[],"constant":true,"mutability":"constant","name":"ADDRESS_MASK","nameLocation":"5852:12:0","scope":298,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":185,"name":"address","nodeType":"ElementaryTypeName","src":"5835:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5867:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":215,"nodeType":"FunctionDefinition","src":"7171:2211:0","nodes":[],"body":{"id":214,"nodeType":"Block","src":"7256:2126:0","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7318:1644:0","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8055:1:0","type":"","value":"0"},{"name":"_id","nodeType":"YulIdentifier","src":"8058:3:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8048:6:0"},"nodeType":"YulFunctionCall","src":"8048:14:0"},"nodeType":"YulExpressionStatement","src":"8048:14:0"},{"nodeType":"YulAssignment","src":"8075:69:0","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"8097:3:0"},"nodeType":"YulFunctionCall","src":"8097:5:0"},{"name":"LOOKUP_DELEGATED_ADDRESS","nodeType":"YulIdentifier","src":"8104:24:0"},{"kind":"number","nodeType":"YulLiteral","src":"8130:1:0","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8133:2:0","type":"","value":"32"},{"kind":"number","nodeType":"YulLiteral","src":"8137:2:0","type":"","value":"10"},{"kind":"number","nodeType":"YulLiteral","src":"8141:2:0","type":"","value":"22"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"8086:10:0"},"nodeType":"YulFunctionCall","src":"8086:58:0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"8075:7:0"}]},{"nodeType":"YulVariableDeclaration","src":"8385:22:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8405:1:0","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8399:5:0"},"nodeType":"YulFunctionCall","src":"8399:8:0"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"8389:6:0","type":""}]},{"nodeType":"YulAssignment","src":"8420:32:0","value":{"arguments":[{"name":"ADDRESS_MASK","nodeType":"YulIdentifier","src":"8431:12:0"},{"name":"result","nodeType":"YulIdentifier","src":"8445:6:0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8427:3:0"},"nodeType":"YulFunctionCall","src":"8427:25:0"},"variableNames":[{"name":"eth","nodeType":"YulIdentifier","src":"8420:3:0"}]},{"nodeType":"YulVariableDeclaration","src":"8793:43:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8811:6:0","type":"","value":"0xFFFF"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8823:3:0","type":"","value":"160"},{"name":"result","nodeType":"YulIdentifier","src":"8828:6:0"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8819:3:0"},"nodeType":"YulFunctionCall","src":"8819:16:0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8807:3:0"},"nodeType":"YulFunctionCall","src":"8807:29:0"},"variables":[{"name":"prefix","nodeType":"YulTypedName","src":"8797:6:0","type":""}]},{"body":{"nodeType":"YulBlock","src":"8879:73:0","statements":[{"nodeType":"YulAssignment","src":"8897:16:0","value":{"kind":"bool","nodeType":"YulLiteral","src":"8908:5:0","type":"","value":"false"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"8897:7:0"}]},{"nodeType":"YulAssignment","src":"8930:8:0","value":{"kind":"number","nodeType":"YulLiteral","src":"8937:1:0","type":"","value":"0"},"variableNames":[{"name":"eth","nodeType":"YulIdentifier","src":"8930:3:0"}]}]},"condition":{"arguments":[{"arguments":[{"name":"prefix","nodeType":"YulIdentifier","src":"8862:6:0"},{"kind":"number","nodeType":"YulLiteral","src":"8870:6:0","type":"","value":"0x040A"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8859:2:0"},"nodeType":"YulFunctionCall","src":"8859:18:0"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8852:6:0"},"nodeType":"YulFunctionCall","src":"8852:26:0"},"nodeType":"YulIf","src":"8849:103:0"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":187,"isOffset":false,"isSlot":false,"src":"8431:12:0","valueSize":1},{"declaration":41,"isOffset":false,"isSlot":false,"src":"8104:24:0","valueSize":1},{"declaration":190,"isOffset":false,"isSlot":false,"src":"8058:3:0","valueSize":1},{"declaration":195,"isOffset":false,"isSlot":false,"src":"8420:3:0","valueSize":1},{"declaration":195,"isOffset":false,"isSlot":false,"src":"8930:3:0","valueSize":1},{"declaration":193,"isOffset":false,"isSlot":false,"src":"8075:7:0","valueSize":1},{"declaration":193,"isOffset":false,"isSlot":false,"src":"8897:7:0","valueSize":1}],"id":197,"nodeType":"InlineAssembly","src":"7309:1653:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9289:8:0","subExpression":{"id":198,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"9290:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":200,"name":"returnDataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"9301:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9301:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3232","id":202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9321:2:0","typeDescriptions":{"typeIdentifier":"t_rational_22_by_1","typeString":"int_const 22"},"value":"22"},"src":"9301:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9289:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":213,"nodeType":"IfStatement","src":"9285:91:0","trueBody":{"id":212,"nodeType":"Block","src":"9325:51:0","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9347:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9362:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9354:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":206,"name":"address","nodeType":"ElementaryTypeName","src":"9354:7:0","typeDescriptions":{}}},"id":209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9354:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":210,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9346:19:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":196,"id":211,"nodeType":"Return","src":"9339:26:0"}]}}]},"documentation":{"id":188,"nodeType":"StructuredDocumentation","src":"5916:1250:0","text":" @notice Convert ID to Eth address by querying the lookup_delegated_address\n precompile.\n If the actor ID corresponds to an Eth address, this will return (true, addr)\n If the actor ID does NOT correspond to an Eth address, this will return (false, 0)\n \n --- About ---\n \n The lookup_delegated_address precompile retrieves the actor state corresponding\n to the id. If the actor has a delegated address, it is returned using fil\n address encoding (see below).\n f4, or delegated addresses, have a namespace as well as a subaddress that can\n be up to 54 bytes long. This is to support future address formats. Currently,\n though, the f4 format is only used to support Eth addresses.\n Consequently, the only addresses lookup_delegated_address should return have:\n - Prefix: \"f4\" address - 1 byte - (0x04)\n - Namespace: EAM actor id 10 - 1 byte - (0x0A)\n - Subaddress: EVM-style address - 20 bytes - (EVM address)\n \n This method checks that the precompile output exactly matches this format:\n 22 bytes, starting with 0x040A.\n \n If we get anything else, we return (false, 0x00)."},"implemented":true,"kind":"function","modifiers":[],"name":"getEthAddress","nameLocation":"7180:13:0","parameters":{"id":191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":190,"mutability":"mutable","name":"_id","nameLocation":"7201:3:0","nodeType":"VariableDeclaration","scope":215,"src":"7194:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":189,"name":"uint64","nodeType":"ElementaryTypeName","src":"7194:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7193:12:0"},"returnParameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"mutability":"mutable","name":"success","nameLocation":"7234:7:0","nodeType":"VariableDeclaration","scope":215,"src":"7229:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":192,"name":"bool","nodeType":"ElementaryTypeName","src":"7229:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":195,"mutability":"mutable","name":"eth","nameLocation":"7251:3:0","nodeType":"VariableDeclaration","scope":215,"src":"7243:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7228:27:0"},"scope":298,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":255,"nodeType":"FunctionDefinition","src":"10508:2065:0","nodes":[],"body":{"id":254,"nodeType":"Block","src":"10590:1983:0","nodes":[],"statements":[{"expression":{"id":231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":225,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"10678:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":226,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"10687:2:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":227,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10677:13:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":229,"name":"_eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"10705:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":228,"name":"isIDAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"10693:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bool_$_t_uint64_$","typeString":"function (address) pure returns (bool,uint64)"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10693:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"src":"10677:33:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":232,"nodeType":"ExpressionStatement","src":"10677:33:0"},{"condition":{"id":233,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"10724:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":239,"nodeType":"IfStatement","src":"10720:58:0","trueBody":{"id":238,"nodeType":"Block","src":"10733:45:0","statements":[{"expression":{"components":[{"id":234,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"10755:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":235,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"10764:2:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":236,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10754:13:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"functionReturnParameters":224,"id":237,"nodeType":"Return","src":"10747:20:0"}]}},{"AST":{"nodeType":"YulBlock","src":"10840:1323:0","statements":[{"nodeType":"YulVariableDeclaration","src":"11404:94:0","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11441:3:0","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"11446:6:0","type":"","value":"0x040A"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11437:3:0"},"nodeType":"YulFunctionCall","src":"11437:16:0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11475:2:0","type":"","value":"80"},{"name":"_eth","nodeType":"YulIdentifier","src":"11479:4:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11471:3:0"},"nodeType":"YulFunctionCall","src":"11471:13:0"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11417:2:0"},"nodeType":"YulFunctionCall","src":"11417:81:0"},"variables":[{"name":"input","nodeType":"YulTypedName","src":"11408:5:0","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11903:1:0","type":"","value":"0"},{"name":"input","nodeType":"YulIdentifier","src":"11906:5:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11896:6:0"},"nodeType":"YulFunctionCall","src":"11896:16:0"},"nodeType":"YulExpressionStatement","src":"11896:16:0"},{"nodeType":"YulAssignment","src":"11925:59:0","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"11947:3:0"},"nodeType":"YulFunctionCall","src":"11947:5:0"},{"name":"RESOLVE_ADDRESS","nodeType":"YulIdentifier","src":"11954:15:0"},{"kind":"number","nodeType":"YulLiteral","src":"11971:1:0","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11974:2:0","type":"","value":"22"},{"kind":"number","nodeType":"YulLiteral","src":"11978:1:0","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11981:2:0","type":"","value":"32"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"11936:10:0"},"nodeType":"YulFunctionCall","src":"11936:48:0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"11925:7:0"}]},{"nodeType":"YulAssignment","src":"12125:28:0","value":{"arguments":[{"name":"MAX_U64","nodeType":"YulIdentifier","src":"12135:7:0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12150:1:0","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12144:5:0"},"nodeType":"YulFunctionCall","src":"12144:8:0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12131:3:0"},"nodeType":"YulFunctionCall","src":"12131:22:0"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"12125:2:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":135,"isOffset":false,"isSlot":false,"src":"12135:7:0","valueSize":1},{"declaration":38,"isOffset":false,"isSlot":false,"src":"11954:15:0","valueSize":1},{"declaration":218,"isOffset":false,"isSlot":false,"src":"11479:4:0","valueSize":1},{"declaration":223,"isOffset":false,"isSlot":false,"src":"12125:2:0","valueSize":1},{"declaration":221,"isOffset":false,"isSlot":false,"src":"11925:7:0","valueSize":1}],"id":240,"nodeType":"InlineAssembly","src":"10831:1332:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12489:8:0","subExpression":{"id":241,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"12490:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":243,"name":"returnDataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"12501:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12501:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12521:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12501:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12489:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":253,"nodeType":"IfStatement","src":"12485:82:0","trueBody":{"id":252,"nodeType":"Block","src":"12525:42:0","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12547:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12554:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12546:10:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":224,"id":251,"nodeType":"Return","src":"12539:17:0"}]}}]},"documentation":{"id":216,"nodeType":"StructuredDocumentation","src":"9388:1115:0","text":" @notice Convert Eth address to ID by querying the resolve_address precompile.\n If the passed-in address is already in ID form, returns (true, id)\n If the Eth address has no corresponding ID address, returns (false, 0)\n Otherwise, the lookup succeeds and this returns (true, id)\n \n --- About ---\n The resolve_address precompile can resolve any fil-encoded address to its\n corresponding actor ID, if there is one. This means resolve_address handles\n all address protocols: f0, f1, f2, f3, and f4. \n \n An address might not have an actor ID if it does not exist in state yet. A \n typical example of this is a public-key-type address, which can exist even \n if it hasn't been used on-chain yet.\n This method is only meant to look up ids for Eth addresses, so it contains\n very specific logic to correctly encode an Eth address into its f4 format.\n \n Note: This is essentially just the reverse of getEthAddress above, so check\n the comments there for more details on f4 encoding."},"implemented":true,"kind":"function","modifiers":[],"name":"getActorID","nameLocation":"10517:10:0","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":218,"mutability":"mutable","name":"_eth","nameLocation":"10536:4:0","nodeType":"VariableDeclaration","scope":255,"src":"10528:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":217,"name":"address","nodeType":"ElementaryTypeName","src":"10528:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10527:14:0"},"returnParameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":221,"mutability":"mutable","name":"success","nameLocation":"10570:7:0","nodeType":"VariableDeclaration","scope":255,"src":"10565:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":220,"name":"bool","nodeType":"ElementaryTypeName","src":"10565:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":223,"mutability":"mutable","name":"id","nameLocation":"10586:2:0","nodeType":"VariableDeclaration","scope":255,"src":"10579:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":222,"name":"uint64","nodeType":"ElementaryTypeName","src":"10579:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"10564:25:0"},"scope":298,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":290,"nodeType":"FunctionDefinition","src":"13246:258:0","nodes":[],"body":{"id":289,"nodeType":"Block","src":"13316:188:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":265,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13338:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_FilAddress_$298","typeString":"library FilAddress"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FilAddress_$298","typeString":"library FilAddress"}],"id":264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13330:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":263,"name":"address","nodeType":"ElementaryTypeName","src":"13330:7:0","typeDescriptions":{}}},"id":266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13330:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13344:7:0","memberName":"balance","nodeType":"MemberAccess","src":"13330:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":268,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"13354:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13330:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":273,"nodeType":"IfStatement","src":"13326:63:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":270,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"13370:17:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13370:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":272,"nodeType":"RevertStatement","src":"13363:26:0"}},{"assignments":[275,null],"declarations":[{"constant":false,"id":275,"mutability":"mutable","name":"success","nameLocation":"13406:7:0","nodeType":"VariableDeclaration","scope":289,"src":"13401:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":274,"name":"bool","nodeType":"ElementaryTypeName","src":"13401:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":282,"initialValue":{"arguments":[{"hexValue":"","id":280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13451:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":276,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"13419:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13430:4:0","memberName":"call","nodeType":"MemberAccess","src":"13419:15:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":278,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"13442:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"13419:31:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13419:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"13400:54:0"},{"condition":{"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13468:8:0","subExpression":{"id":283,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"13469:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":288,"nodeType":"IfStatement","src":"13464:33:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":285,"name":"CallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"13485:10:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13485:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":287,"nodeType":"RevertStatement","src":"13478:19:0"}}]},"documentation":{"id":256,"nodeType":"StructuredDocumentation","src":"12579:662:0","text":" @notice Replacement for Solidity's address.send and address.transfer\n This sends _amount to _recipient, forwarding all available gas and\n reverting if there are any errors.\n If _recpient is an Eth address, this works the way you'd\n expect the EVM to work.\n If _recpient is an ID address, this works if:\n 1. The ID corresponds to an Eth EOA address (EthAccount actor)\n 2. The ID corresponds to an Eth contract address (EVM actor)\n 3. The ID corresponds to a BLS/SECPK address (Account actor)\n If _recpient is some other Filecoin-native actor, this will revert."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"13255:9:0","parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":258,"mutability":"mutable","name":"_recipient","nameLocation":"13281:10:0","nodeType":"VariableDeclaration","scope":290,"src":"13265:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":257,"name":"address","nodeType":"ElementaryTypeName","src":"13265:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":260,"mutability":"mutable","name":"_amount","nameLocation":"13298:7:0","nodeType":"VariableDeclaration","scope":290,"src":"13293:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint","nodeType":"ElementaryTypeName","src":"13293:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13264:42:0"},"returnParameters":{"id":262,"nodeType":"ParameterList","parameters":[],"src":"13316:0:0"},"scope":298,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":297,"nodeType":"FunctionDefinition","src":"13510:155:0","nodes":[],"body":{"id":296,"nodeType":"Block","src":"13569:96:0","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"13631:28:0","statements":[{"nodeType":"YulAssignment","src":"13633:24:0","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"13641:14:0"},"nodeType":"YulFunctionCall","src":"13641:16:0"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"13633:4:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":293,"isOffset":false,"isSlot":false,"src":"13633:4:0","valueSize":1}],"id":295,"nodeType":"InlineAssembly","src":"13622:37:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"returnDataSize","nameLocation":"13519:14:0","parameters":{"id":291,"nodeType":"ParameterList","parameters":[],"src":"13533:2:0"},"returnParameters":{"id":294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":293,"mutability":"mutable","name":"size","nameLocation":"13563:4:0","nodeType":"VariableDeclaration","scope":297,"src":"13558:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":292,"name":"uint","nodeType":"ElementaryTypeName","src":"13558:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13557:11:0"},"scope":298,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"FilAddress","contractDependencies":[],"contractKind":"library","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"58:270:0","text":" @author fevmate (https://github.com/wadealexc/fevmate)\n @notice Utility functions for converting between id and\n eth addresses. Helps implement address normalization.\n See README for more details about how to use this when\n developing for the FEVM."},"fullyImplemented":true,"linearizedBaseContracts":[298],"name":"FilAddress","nameLocation":"337:10:0","scope":299,"usedErrors":[4,6,8]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/contracts/out/FvmAddress.sol/FvmAddress.json b/contracts/out/FvmAddress.sol/FvmAddress.json deleted file mode 100644 index 228e703286..0000000000 --- a/contracts/out/FvmAddress.sol/FvmAddress.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/FvmAddress.sol","id":16187,"exportedSymbols":{"DelegatedAddress":[16186],"FvmAddress":[16179]},"nodeType":"SourceUnit","src":"46:489:52","nodes":[{"id":16174,"nodeType":"PragmaDirective","src":"46:23:52","nodes":[],"literals":["solidity","0.8",".19"]},{"id":16179,"nodeType":"StructDefinition","src":"320:60:52","nodes":[],"canonicalName":"FvmAddress","members":[{"constant":false,"id":16176,"mutability":"mutable","name":"addrType","nameLocation":"350:8:52","nodeType":"VariableDeclaration","scope":16179,"src":"344:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16175,"name":"uint8","nodeType":"ElementaryTypeName","src":"344:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":16178,"mutability":"mutable","name":"payload","nameLocation":"370:7:52","nodeType":"VariableDeclaration","scope":16179,"src":"364:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16177,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FvmAddress","nameLocation":"327:10:52","scope":16187,"visibility":"public"},{"id":16186,"nodeType":"StructDefinition","src":"447:87:52","nodes":[],"canonicalName":"DelegatedAddress","members":[{"constant":false,"id":16181,"mutability":"mutable","name":"namespace","nameLocation":"484:9:52","nodeType":"VariableDeclaration","scope":16186,"src":"477:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16180,"name":"uint64","nodeType":"ElementaryTypeName","src":"477:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16183,"mutability":"mutable","name":"length","nameLocation":"507:6:52","nodeType":"VariableDeclaration","scope":16186,"src":"499:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":16182,"name":"uint128","nodeType":"ElementaryTypeName","src":"499:7:52","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":16185,"mutability":"mutable","name":"buffer","nameLocation":"525:6:52","nodeType":"VariableDeclaration","scope":16186,"src":"519:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16184,"name":"bytes","nodeType":"ElementaryTypeName","src":"519:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"DelegatedAddress","nameLocation":"454:16:52","scope":16187,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":52} \ No newline at end of file diff --git a/contracts/out/FvmAddressHelper.sol/FvmAddressHelper.json b/contracts/out/FvmAddressHelper.sol/FvmAddressHelper.json deleted file mode 100644 index 0816889237..0000000000 --- a/contracts/out/FvmAddressHelper.sol/FvmAddressHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DELEGATED","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"EAM_ACTOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PAYLOAD_HASH_LEN","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"SECP256K1","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x608080604052346100195760db908161001f823930815050f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212209452ca33b461b8f20ff567598ba87ac24773a2ad5b383d589a3c20ce53d8513d64736f6c63430008130033","sourceMap":"186:2075:36:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212209452ca33b461b8f20ff567598ba87ac24773a2ad5b383d589a3c20ce53d8513d64736f6c63430008130033","sourceMap":"186:2075:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:2;186:2075;;;;;;;;;;;;;;;;;;;313:1;186:2075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;480:2;186:2075;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DELEGATED()":"9c6e06c0","EAM_ACTOR()":"5279ff99","PAYLOAD_HASH_LEN()":"cf8e4a6e","SECP256K1()":"ab528f21"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DELEGATED\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EAM_ACTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAYLOAD_HASH_LEN\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECP256K1\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for Fil Address\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATED()\":{\"notice\":\"For delegated FIL address\"},\"SECP256K1()\":{\"notice\":\"f1: SECP256K1 key address, 20 byte hash of PublicKey.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/FvmAddressHelper.sol\":\"FvmAddressHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EAM_ACTOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PAYLOAD_HASH_LEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SECP256K1","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATED()":{"notice":"For delegated FIL address"},"SECP256K1()":{"notice":"f1: SECP256K1 key address, 20 byte hash of PublicKey."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/FvmAddressHelper.sol":"FvmAddressHelper"},"libraries":{},"viaIR":true},"sources":{"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/FvmAddressHelper.sol","id":9481,"exportedSymbols":{"DelegatedAddress":[16186],"FvmAddress":[16179],"FvmAddressHelper":[9480]},"nodeType":"SourceUnit","src":"46:2216:36","nodes":[{"id":9301,"nodeType":"PragmaDirective","src":"46:23:36","nodes":[],"literals":["solidity","0.8",".19"]},{"id":9304,"nodeType":"ImportDirective","src":"71:71:36","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":9481,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":9302,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"79:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9303,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16186,"src":"91:16:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9480,"nodeType":"ContractDefinition","src":"186:2075:36","nodes":[{"id":9309,"nodeType":"VariableDeclaration","src":"279:35:36","nodes":[],"constant":true,"documentation":{"id":9306,"nodeType":"StructuredDocumentation","src":"217:57:36","text":"f1: SECP256K1 key address, 20 byte hash of PublicKey."},"functionSelector":"ab528f21","mutability":"constant","name":"SECP256K1","nameLocation":"301:9:36","scope":9480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9307,"name":"uint8","nodeType":"ElementaryTypeName","src":"279:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":9308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":9312,"nodeType":"VariableDeclaration","src":"320:43:36","nodes":[],"constant":true,"functionSelector":"cf8e4a6e","mutability":"constant","name":"PAYLOAD_HASH_LEN","nameLocation":"342:16:36","scope":9480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9310,"name":"uint8","nodeType":"ElementaryTypeName","src":"320:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":9311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:2:36","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"public"},{"id":9316,"nodeType":"VariableDeclaration","src":"404:35:36","nodes":[],"constant":true,"documentation":{"id":9313,"nodeType":"StructuredDocumentation","src":"370:29:36","text":"For delegated FIL address"},"functionSelector":"9c6e06c0","mutability":"constant","name":"DELEGATED","nameLocation":"426:9:36","scope":9480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9314,"name":"uint8","nodeType":"ElementaryTypeName","src":"404:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":9315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"438:1:36","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"public"},{"id":9319,"nodeType":"VariableDeclaration","src":"445:37:36","nodes":[],"constant":true,"functionSelector":"5279ff99","mutability":"constant","name":"EAM_ACTOR","nameLocation":"468:9:36","scope":9480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9317,"name":"uint64","nodeType":"ElementaryTypeName","src":"445:6:36","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":9318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:2:36","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":9321,"nodeType":"ErrorDefinition","src":"489:31:36","nodes":[],"errorSelector":"c5f8961f","name":"NotDelegatedEvmAddress","nameLocation":"495:22:36","parameters":{"id":9320,"nodeType":"ParameterList","parameters":[],"src":"517:2:36"}},{"id":9352,"nodeType":"FunctionDefinition","src":"581:314:36","nodes":[],"body":{"id":9351,"nodeType":"Block","src":"662:233:36","nodes":[],"statements":[{"assignments":[9331],"declarations":[{"constant":false,"id":9331,"mutability":"mutable","name":"payload","nameLocation":"685:7:36","nodeType":"VariableDeclaration","scope":9351,"src":"672:20:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9330,"name":"bytes","nodeType":"ElementaryTypeName","src":"672:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9343,"initialValue":{"arguments":[{"arguments":[{"id":9335,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9319,"src":"748:9:36","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"3230","id":9336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"767:2:36","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"arguments":[{"id":9339,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9324,"src":"796:4:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9337,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"779:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"783:12:36","memberName":"encodePacked","nodeType":"MemberAccess","src":"779:16:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9334,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16186,"src":"719:16:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$16186_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}},"id":9341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["737:9:36","759:6:36","771:6:36"],"names":["namespace","length","buffer"],"nodeType":"FunctionCall","src":"719:84:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}],"expression":{"id":9332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"695:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"699:6:36","memberName":"encode","nodeType":"MemberAccess","src":"695:10:36","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:118:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"672:141:36"},{"expression":{"id":9349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9344,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9328,"src":"824:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9346,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9316,"src":"859:9:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9347,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9331,"src":"879:7:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9345,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"837:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FvmAddress_$16179_storage_ptr_$","typeString":"type(struct FvmAddress storage pointer)"}},"id":9348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["849:8:36","870:7:36"],"names":["addrType","payload"],"nodeType":"FunctionCall","src":"837:51:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"824:64:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9350,"nodeType":"ExpressionStatement","src":"824:64:36"}]},"documentation":{"id":9322,"nodeType":"StructuredDocumentation","src":"526:50:36","text":"@notice Creates a FvmAddress from address type"},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"590:4:36","parameters":{"id":9325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9324,"mutability":"mutable","name":"addr","nameLocation":"603:4:36","nodeType":"VariableDeclaration","scope":9352,"src":"595:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9323,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"594:14:36"},"returnParameters":{"id":9329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9328,"mutability":"mutable","name":"fvmAddress","nameLocation":"650:10:36","nodeType":"VariableDeclaration","scope":9352,"src":"632:28:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9327,"nodeType":"UserDefinedTypeName","pathNode":{"id":9326,"name":"FvmAddress","nameLocations":["632:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"632:10:36"},"referencedDeclaration":16179,"src":"632:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"631:30:36"},"scope":9480,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9369,"nodeType":"FunctionDefinition","src":"953:135:36","nodes":[],"body":{"id":9368,"nodeType":"Block","src":"1031:57:36","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9364,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9356,"src":"1069:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":9362,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1058:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1062:6:36","memberName":"encode","nodeType":"MemberAccess","src":"1058:10:36","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9361,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1048:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1048:33:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9360,"id":9367,"nodeType":"Return","src":"1041:40:36"}]},"documentation":{"id":9353,"nodeType":"StructuredDocumentation","src":"901:47:36","text":"@notice Obtains the hash of the fvm address"},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"962:6:36","parameters":{"id":9357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9356,"mutability":"mutable","name":"fvmAddress","nameLocation":"987:10:36","nodeType":"VariableDeclaration","scope":9369,"src":"969:28:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9355,"nodeType":"UserDefinedTypeName","pathNode":{"id":9354,"name":"FvmAddress","nameLocations":["969:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"969:10:36"},"referencedDeclaration":16179,"src":"969:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"968:30:36"},"returnParameters":{"id":9360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9369,"src":"1022:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1022:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1021:9:36"},"scope":9480,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9406,"nodeType":"FunctionDefinition","src":"1148:258:36","nodes":[],"body":{"id":9405,"nodeType":"Block","src":"1234:172:36","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9381,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9373,"src":"1263:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1265:8:36","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":16176,"src":"1263:10:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":9383,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1277:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1279:8:36","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":16176,"src":"1277:10:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1263:24:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9386,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9373,"src":"1303:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1305:7:36","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16178,"src":"1303:9:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1313:6:36","memberName":"length","nodeType":"MemberAccess","src":"1303:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9389,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1323:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1325:7:36","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16178,"src":"1323:9:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1333:6:36","memberName":"length","nodeType":"MemberAccess","src":"1323:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1303:36:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:76:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9395,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9373,"src":"1365:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1367:7:36","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16178,"src":"1365:9:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9394,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1355:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:20:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":9399,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1389:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1391:7:36","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16178,"src":"1389:9:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9398,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1379:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:20:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1355:44:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:136:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9380,"id":9404,"nodeType":"Return","src":"1244:155:36"}]},"documentation":{"id":9370,"nodeType":"StructuredDocumentation","src":"1094:49:36","text":"@notice Checks if two fvm addresses are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"1157:5:36","parameters":{"id":9377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9373,"mutability":"mutable","name":"a","nameLocation":"1181:1:36","nodeType":"VariableDeclaration","scope":9406,"src":"1163:19:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9372,"nodeType":"UserDefinedTypeName","pathNode":{"id":9371,"name":"FvmAddress","nameLocations":["1163:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"1163:10:36"},"referencedDeclaration":16179,"src":"1163:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":9376,"mutability":"mutable","name":"b","nameLocation":"1202:1:36","nodeType":"VariableDeclaration","scope":9406,"src":"1184:19:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9375,"nodeType":"UserDefinedTypeName","pathNode":{"id":9374,"name":"FvmAddress","nameLocations":["1184:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"1184:10:36"},"referencedDeclaration":16179,"src":"1184:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1162:42:36"},"returnParameters":{"id":9380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9406,"src":"1228:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9378,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1227:6:36"},"scope":9480,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9470,"nodeType":"FunctionDefinition","src":"1412:649:36","nodes":[],"body":{"id":9469,"nodeType":"Block","src":"1506:555:36","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9414,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9409,"src":"1520:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:8:36","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":16176,"src":"1520:19:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9416,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9316,"src":"1543:9:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1520:32:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9422,"nodeType":"IfStatement","src":"1516:94:36","trueBody":{"id":9421,"nodeType":"Block","src":"1554:56:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9418,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"1575:22:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9420,"nodeType":"RevertStatement","src":"1568:31:36"}]}},{"assignments":[9425],"declarations":[{"constant":false,"id":9425,"mutability":"mutable","name":"delegated","nameLocation":"1644:9:36","nodeType":"VariableDeclaration","scope":9469,"src":"1620:33:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress"},"typeName":{"id":9424,"nodeType":"UserDefinedTypeName","pathNode":{"id":9423,"name":"DelegatedAddress","nameLocations":["1620:16:36"],"nodeType":"IdentifierPath","referencedDeclaration":16186,"src":"1620:16:36"},"referencedDeclaration":16186,"src":"1620:16:36","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_storage_ptr","typeString":"struct DelegatedAddress"}},"visibility":"internal"}],"id":9433,"initialValue":{"arguments":[{"expression":{"id":9428,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9409,"src":"1667:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress memory"}},"id":9429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:7:36","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16178,"src":"1667:18:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9430,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16186,"src":"1688:16:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$16186_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"id":9431,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1687:18:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$16186_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$16186_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}],"expression":{"id":9426,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1656:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1660:6:36","memberName":"decode","nodeType":"MemberAccess","src":"1656:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:50:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}},"nodeType":"VariableDeclarationStatement","src":"1620:86:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":9437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9434,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"1721:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":9435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:9:36","memberName":"namespace","nodeType":"MemberAccess","referencedDeclaration":16181,"src":"1721:19:36","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9436,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9319,"src":"1744:9:36","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1721:32:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9442,"nodeType":"IfStatement","src":"1717:94:36","trueBody":{"id":9441,"nodeType":"Block","src":"1755:56:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9438,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"1776:22:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9440,"nodeType":"RevertStatement","src":"1769:31:36"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":9446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9443,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"1824:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":9444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1834:6:36","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16183,"src":"1824:16:36","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":9445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1844:2:36","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1824:22:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9451,"nodeType":"IfStatement","src":"1820:84:36","trueBody":{"id":9450,"nodeType":"Block","src":"1848:56:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9447,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"1869:22:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9449,"nodeType":"RevertStatement","src":"1862:31:36"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9452,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"1917:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":9453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:36","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":16185,"src":"1917:16:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:6:36","memberName":"length","nodeType":"MemberAccess","src":"1917:23:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":9455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1944:2:36","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1917:29:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9461,"nodeType":"IfStatement","src":"1913:91:36","trueBody":{"id":9460,"nodeType":"Block","src":"1948:56:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9457,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"1969:22:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9459,"nodeType":"RevertStatement","src":"1962:31:36"}]}},{"expression":{"id":9467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9462,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9412,"src":"2014:4:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":9464,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"2037:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$16186_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":9465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2047:6:36","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":16185,"src":"2037:16:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9463,"name":"_bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9479,"src":"2021:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":9466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:33:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2014:40:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9468,"nodeType":"ExpressionStatement","src":"2014:40:36"}]},"implemented":true,"kind":"function","modifiers":[],"name":"extractEvmAddress","nameLocation":"1421:17:36","parameters":{"id":9410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9409,"mutability":"mutable","name":"fvmAddress","nameLocation":"1457:10:36","nodeType":"VariableDeclaration","scope":9470,"src":"1439:28:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":9408,"nodeType":"UserDefinedTypeName","pathNode":{"id":9407,"name":"FvmAddress","nameLocations":["1439:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"1439:10:36"},"referencedDeclaration":16179,"src":"1439:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1438:30:36"},"returnParameters":{"id":9413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9412,"mutability":"mutable","name":"addr","nameLocation":"1500:4:36","nodeType":"VariableDeclaration","scope":9470,"src":"1492:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9411,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1491:14:36"},"scope":9480,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9479,"nodeType":"FunctionDefinition","src":"2067:192:36","nodes":[],"body":{"id":9478,"nodeType":"Block","src":"2146:113:36","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2202:51:36","statements":[{"nodeType":"YulAssignment","src":"2216:27:36","value":{"arguments":[{"arguments":[{"name":"bys","nodeType":"YulIdentifier","src":"2234:3:36"},{"kind":"number","nodeType":"YulLiteral","src":"2239:2:36","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:36"},"nodeType":"YulFunctionCall","src":"2230:12:36"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2224:5:36"},"nodeType":"YulFunctionCall","src":"2224:19:36"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2216:4:36"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":9475,"isOffset":false,"isSlot":false,"src":"2216:4:36","valueSize":1},{"declaration":9472,"isOffset":false,"isSlot":false,"src":"2234:3:36","valueSize":1}],"id":9477,"nodeType":"InlineAssembly","src":"2193:60:36"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToAddress","nameLocation":"2076:15:36","parameters":{"id":9473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9472,"mutability":"mutable","name":"bys","nameLocation":"2105:3:36","nodeType":"VariableDeclaration","scope":9479,"src":"2092:16:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9471,"name":"bytes","nodeType":"ElementaryTypeName","src":"2092:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2091:18:36"},"returnParameters":{"id":9476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9475,"mutability":"mutable","name":"addr","nameLocation":"2140:4:36","nodeType":"VariableDeclaration","scope":9479,"src":"2132:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9474,"name":"address","nodeType":"ElementaryTypeName","src":"2132:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2131:14:36"},"scope":9480,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"FvmAddressHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":9305,"nodeType":"StructuredDocumentation","src":"144:42:36","text":"@title Helper library for Fil Address"},"fullyImplemented":true,"linearizedBaseContracts":[9480],"name":"FvmAddressHelper","nameLocation":"194:16:36","scope":9481,"usedErrors":[9321]}],"license":"MIT OR Apache-2.0"},"id":36} \ No newline at end of file diff --git a/contracts/out/GatewayDiamond.sol/GatewayDiamond.json b/contracts/out/GatewayDiamond.sol/GatewayDiamond.json deleted file mode 100644 index 77bea06372..0000000000 --- a/contracts/out/GatewayDiamond.sol/GatewayDiamond.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"minCollateral","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523462000ca45762001b8d80380380916200002082608062000f0a565b6080396040811262000ca4576080516001600160401b03811162000ca45760808201609f8201121562000ca4578060800151906200005e8262000f2e565b916200006e604051938462000f0a565b8083526020830180928560800160208460051b8360800101011162000ca45760a08101915b60a0600585901b830101831062000dbf57505060a0519150506001600160401b03811162000ca45760e08185031262000ca4576040519360e085016001600160401b038111868210176200059557604081905260808301516001600160401b03811162000ca457836080010160408184608001031262000ca457620001188262000eee565b620001238162000f5b565b82526020810151906001600160401b03821162000ca4570182608001601f8201121562000ca457805190620001588262000f2e565b9162000168604051938462000f0a565b80835260208084019160051b8301019185608001831162000ca457602001905b82821062000da4575050506101008701528552620001a960a0830162000f5b565b602086015260c0820151604086015260e0820151606086015261010082015160ff8116810362000ca45760808601526101208201516001600160401b03811162000ca45760808201609f84830101121562000ca45780836080010151620002108162000f2e565b9262000220604051948562000f0a565b81845260208401926080820160a0878301600586901b01011162000ca45760a086820101935b60a0878301600586901b0101851062000ca95789898960c08a8a60a0860152608001015161ffff8116810362000ca45760c084015260408301511562000c925760208301516001600160401b03161562000c805760ff6080840151166033811090811562000c74575b5062000c62577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000595576020810160405260008152825160005b818110620006055750506040519260608401906060855251809152608084019060808160051b86010193916000905b828210620005ab57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003878a8a60006020850152838203604085015262001027565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805482168317905583518051601180546001600160401b039283166001600160401b031991821617909155919094015180519395949193918211620005955768010000000000000000821162000595576020906012548360125580841062000574575b50016012600052602060002060005b83811062000557576200054760a0888a8989604084015160135560018060401b03602085015116826016541617601655606084015160145560ff608085015116906015541617601555600b541617600b5561ffff60c08201511661ffff1960175416176017556801000000000000000160018060801b03196020541617602055015160405190620005388262000eee565b815260006020820152620013ff565b604051610133908162001a1a8239f35b82516001600160a01b0316818301556020909201918701620004a7565b6200058e9060126000528484600020918201910162000f95565b8762000498565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005f6600193607f198b8203018652606060408b51878060a01b038151168452620005e5868201518786019062000fd9565b015191816040820152019062000fe7565b97019201920190929162000340565b604062000613828762000fae565b5101516001600160a01b036200062a838862000fae565b5151169080511562000c4957602062000644848962000fae565b510151600381101562000c3357806200087057508115620008455761ffff60008051602062001b4d8339815191525416620006c1604051620006868162000ed2565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001080565b8151916000915b838310620006e05750505050506001905b0162000311565b6001600160e01b0319620006f5848462000fae565b5116600081815260008051602062001b6d83398151915260205260409020549091906001600160a01b03166200082c5762000794604051620007378162000eee565b87815261ffff83166020808301918252600086815260008051602062001b6d833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602062001b4d8339815191525491680100000000000000008310156200059557620007fb90620007de60019485810160008051602062001b4d833981519152556200104e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff8082161462000816579281019261ffff1601620006c8565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200086c90602483019062000fe7565b0390fd5b60018103620009e957508115620009c257620008d5604051620008938162000ed2565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001080565b80519060005b828110620008f05750505050600190620006d9565b6001600160e01b031962000905828462000fae565b5116600081815260008051602062001b6d83398151915260205260409020546001600160a01b0316308114620009a9578581146200099057156200097857600090815260008051602062001b6d8339815191526020526040902080546001600160a01b03191685179055600101620008db565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200086c90602483019062000fe7565b6002810362000c11575060008051602062001b4d83398151915254918062000bf9575080519060005b82811062000a275750505050600190620006d9565b6001600160e01b031962000a3c828462000fae565b5116908160005260008051602062001b6d8339815191526020526040600020946040519562000a6b8762000eee565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000be05785516001600160a01b0316301462000bc7578015620008165760001901948561ffff6020830151160362000b44575b5060008051602062001b4d8339815191525491821562000b2e576001926000190162000ae9816200104e565b63ffffffff82549160031b1b1916905560008051602062001b4d8339815191525560005260008051602062001b6d833981519152602052600060408120550162000a12565b634e487b7160e01b600052603160045260246000fd5b62000bc09061ffff602062000b59896200104e565b90549060031b1c60e01b9262000b7984620007de8585850151166200104e565b01516001600160e01b0319909216600090815260008051602062001b6d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000abd565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c3190600483019062000fd9565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b606491501184620002af565b60405163312f8e0560e01b8152600490fd5b6040516368f7a67560e11b8152600490fd5b600080fd5b84516001600160401b03811162000ca457601f199190888401016080810190606090860384011262000ca4576040519062000ce48262000ed2565b6020810151825262000cf96040820162000f46565b60208301526060810151906001600160401b03821162000ca457019185608001603f8401121562000ca4576020830151916001600160401b03831162000d8f5762000d50602060405196601f860116018662000f0a565b828552866080016040848601011162000ca4578462000d7c602096948796604088809801910162000f70565b6040820152815201950194905062000246565b60246000634e487b7160e01b81526041600452fd5b6020809162000db38462000f46565b81520191019062000188565b82516001600160401b03811162000ca457606090830160808101908903601f1901821362000ca4576040519162000df68362000ed2565b62000e046020830162000f46565b83526040820151600381101562000ca45760208401528101516001600160401b03811162000ca45789608001603f82840101121562000ca4576020818301015162000e4f8162000f2e565b9262000e5f604051948562000f0a565b81845260208401908c60800160408460051b86840101011162000ca457604084820101915b60408460051b8684010101831062000eaf575050505050604082015281526020928301920162000093565b82516001600160e01b03198116810362000ca45781526020928301920162000e84565b606081019081106001600160401b038211176200059557604052565b604081019081106001600160401b038211176200059557604052565b601f909101601f19168101906001600160401b038211908210176200059557604052565b6001600160401b038111620005955760051b60200190565b51906001600160a01b038216820362000ca457565b51906001600160401b038216820362000ca457565b60005b83811062000f845750506000910152565b818101518382015260200162000f73565b81811062000fa1575050565b6000815560010162000f95565b805182101562000fc35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c335752565b90815180825260208080930193019160005b82811062001008575050505090565b83516001600160e01b0319168552938101939281019260010162000ff9565b90602091620010428151809281855285808601910162000f70565b601f01601f1916010190565b9060008051602062001b4d833981519152805483101562000fc357600052601c60206000208360031c019260021b1690565b803b156200108c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200086c90604483019062001027565b908082519081815260208091019281808460051b8301019501936000915b848310620010f15750505050505090565b909192939495848062001134600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062001027565b9801930193019194939290620010e0565b90600182811c9216801562001177575b60208310146200116157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001155565b9190601f81116200119257505050565b620011c1926000526020600020906020601f840160051c83019310620011c3575b601f0160051c019062000f95565b565b9091508190620011b3565b90808214620012b757620011e3815462001145565b906001600160401b038211620005955781906200120d8262001206865462001145565b8662001182565b600090601f831160011462001247576000926200123b575b50508160011b916000199060031b1c1916179055565b01549050388062001225565b81526020808220858352818320935090601f1985169083905b8282106200129d57505090846001959493921062001283575b505050811b019055565b015460001960f88460031b161c1916905538808062001279565b849581929585015481556001809101960194019062001260565b5050565b60045481101562000fc35760046000526003602060002091020190600090565b90620013e95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200059557620013478362001340875462001145565b8762001182565b81601f841160011462001383575092829391839260009462001377575b50501b916000199060031b1c1916179055565b01519250388062001364565b919083601f1981168760005284600020946000905b88838310620013ce5750505010620013b457505050811b019055565b015160001960f88460031b161c1916905538808062001279565b85870151885590960195948501948793509081019062001398565b634e487b7160e01b600052600060045260246000fd5b60409081519060209081835262001421815185848601526060850190620010c2565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200178e575b505060049182549168010000000000000000958684116200177957600654846006558085106200168f575b50600093858552868520600686528786209086905b838210620016395750505050808854169160018060401b03199283600754161760075583515193865498865b868110620015b757505050511690875416178655808511620014fa575b505050505050565b84811015620014f25782548015620015a45760001901906200151c82620012bb565b92909262001592578383558360026001948286820155016200153f815462001145565b8062001552575b505050845501620014fa565b82601f8083116001146200156e57505050555b83388062001546565b8382528a82209391926200158a91018d1c840188850162000f95565b555562001565565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ee5780620015e7620015d4600193865162000fae565b51620015e083620012bb565b90620012db565b01620014d5565b620015fb81845162000fae565b51895483811015620016265760019291620015e0828d866200162095019055620012bb565b620015e7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001656575b6003809101930191019091620014a9565b805484558180850190838060a01b039083015416838060a01b0319825416179055620016896002808301908601620011ce565b62001645565b6003908082029082820403620017645785820282810487036200174f57886000916006835281832093840193015b8c848210620016d157505050505062001494565b85928491828455600183818601556002850191620016f0835462001145565b918262001707575b505050505050018990620016bd565b8591601f8085116001146200172b5750505050509050555b828b388f8082620016f8565b859496849662001747955286209601901c850190850162000f95565b55556200171f565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b858351168660075416908181146200191457106200190357815191620017b48362000eee565b600454620017c28162000f2e565b91620017d18151938462000f0a565b81835287830190600460005288600020906000925b8484106200181a575050509184525050848201526200180690836200191f565b6200181357388062001469565b5050505050565b8a8d8351906200182a8262000ed2565b8554825260018060a01b0360018701541683830152600286018551916000918054620018568162001145565b8086529260018216918215620018e05750506001146200189c575b50509181620018896001969360039695038262000f0a565b86820152815201930193019291620017e6565b60009081528581209092505b818310620018c157505081018301816200188962001871565b8060019196929394959654838688010152019201908f949392620018a8565b60ff19168689015292151590921b84018601925083915062001889905062001871565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b03918216911603620019d1576200194a81620019d9565b6200195584620019d9565b03620019d15751805183515103620019d157620019ca620019bd9160405190816200198b868201928784526040830190620010c2565b0391620019a1601f199384810183528262000f0a565b51902094516040519384918683019687526040830190620010c2565b0390810183528262000f0a565b5190201490565b505050600090565b8051519060009182915b818310620019f15750505090565b90919262001a0184835162000fae565b515181018091116200081657926001019190620019e356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea264697066735822122056c8d5706e59bd22feeafa2ed921e5a2fbc2e514b3ae1871a2b92d73250bdde664736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"832:3852:14:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;832:3852:14;;;-1:-1:-1;;;;;;;832:3852:14;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;832:3852:14;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1268:25;1264:82;;832:3852;;;;-1:-1:-1;;;;;832:3852:14;1422:31;1418:94;;832:3852;;;;;;1554:2;1526:30;;:65;;;;;832:3852;1522:130;;;2258:16:37;832:3852:14;;-1:-1:-1;;;;;;832:3852:14;1690:10;832:3852;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;-1:-1:-1;832:3852:14;;;;-1:-1:-1;2937:19:37;;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;3911:74:37;832:3852:14;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;:::i;:::-;3911:74:37;;;1921:22:14;832:3852;;;;;;;;-1:-1:-1;;832:3852:14;;;;;;;;;;;;;;;;;-1:-1:-1;;;;832:3852:14;;;;;;;;;;2146:18;;832:3852;;2130:13;832:3852;;-1:-1:-1;;;;;832:3852:14;;;-1:-1:-1;;;;;;832:3852:14;;;;;;;;;;;;;;;;2146:18;832:3852;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;-1:-1:-1;832:3852:14;;;;;;3171:7;832:3852;;;;;;;;;2174:10;832:3852;;;;;;;;;;;;2217:21;832:3852;;;2217:21;832:3852;;;;;2277:16;832:3852;;;;;;;;2319:20;832:3852;;;2319:20;832:3852;2377:35;832:3852;;;2377:35;832:3852;;;;;;;;;2427:19;832:3852;;;2427:19;832:3852;14268:1:42;832:3852:14;14268:1:42;;;;;832:3852:14;;14268:1:42;;832:3852:14;14268:1:42;832:3852:14;3107:24;832:3852;;;;;;:::i;:::-;14268:1:42;;-1:-1:-1;832:3852:14;3059:74;;14268:1:42;3171:7:14;:::i;:::-;832:3852;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;-1:-1:-1;832:3852:14;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;832:3852:14;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:37;832:3852:14;3010:23:37;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:37;;;;:::i;:::-;;832:3852:14;;;;;3142:29:37;3138:122;;832:3852:14;3309:23:37;;;;:::i;:::-;;:30;832:3852:14;;;;;;;3357:37:37;;;4150:27;;;4146:116;;832:3852:14;-1:-1:-1;;;;;;;;;;;832:3852:14;;4385:74:37;832:3852:14;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;832:3852:14;;;;4385:74:37;;:::i;:::-;832:3852:14;;4526:21:37;-1:-1:-1;4521:677:37;4549:22;;;;;;3353:466;;;;;832:3852:14;3353:466:37;;832:3852:14;2917:18:37;;4526:21;-1:-1:-1;;;;;;4607:33:37;;;;:::i;:::-;832:3852:14;;-1:-1:-1;832:3852:14;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;;;-1:-1:-1;;;;;832:3852:14;4751:128:37;;832:3852:14;;;;;;:::i;:::-;;;;;;;;4939:107:37;;;832:3852:14;;;-1:-1:-1;832:3852:14;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;;;;;;-1:-1:-1;;;;;;832:3852:14;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;-1:-1:-1;;;832:3852:14;;;;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:37;;832:3852:14;;;;-1:-1:-1;832:3852:14;;;;;-1:-1:-1;832:3852:14;4751:128:37;832:3852:14;;-1:-1:-1;;;4811:53:37;;;;;832:3852:14;;;;;4811:53:37;4146:116;832:3852:14;;-1:-1:-1;;;4200:51:37;;832:3852:14;4200:51:37;;;832:3852:14;;;;;;;;;;;:::i;:::-;4200:51:37;;;3353:466;832:3852:14;3484:41:37;;832:3852:14;;5372:27:37;;;5368:131;;5508:81;832:3852:14;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;832:3852:14;;;;5508:81:37;;:::i;:::-;832:3852:14;;5652:21:37;-1:-1:-1;5675:18:37;;;;;;3480:339;;;;832:3852:14;3480:339:37;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:37;;;;:::i;:::-;832:3852:14;;-1:-1:-1;832:3852:14;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;-1:-1:-1;;;;;832:3852:14;6011:4:37;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;832:3852:14;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;-1:-1:-1;;;;;;832:3852:14;;;;;;;5652:21:37;;6268:123;832:3852:14;;;;6328:48:37;;;;;;;;;832:3852:14;6328:48:37;6111:144;832:3852:14;;-1:-1:-1;;;6174:66:37;;;;;832:3852:14;;;;;6174:66:37;5980:118;832:3852:14;;-1:-1:-1;;;6043:40:37;;;;;832:3852:14;;;;;6043:40:37;5368:131;832:3852:14;;-1:-1:-1;;;5422:66:37;;832:3852:14;5422:66:37;;;832:3852:14;;;;;;;;;;;:::i;3480:339:37:-;3629:30;3619:40;;3629:30;;832:3852:14;-1:-1:-1;;;;;;;;;;;832:3852:14;6826:27:37;;6822:115;;832:3852:14;;;6999:21:37;-1:-1:-1;7022:18:37;;;;;;3615:204;;;;832:3852:14;3615:204:37;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:37;;;;:::i;:::-;832:3852:14;;;;-1:-1:-1;832:3852:14;-1:-1:-1;;;;;;;;;;;832:3852:14;;;-1:-1:-1;832:3852:14;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;7278:61:37;7274:153;;832:3852:14;;-1:-1:-1;;;;;832:3852:14;7597:4:37;7538:64;7534:149;;832:3852:14;;;;;;;;;;;;;;;7780:68:37;7776:412;;6999:21;832:3852:14;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;;-1:-1:-1;;832:3852:14;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;832:3852:14;-1:-1:-1;832:3852:14;-1:-1:-1;;;;;;;;;;;832:3852:14;;-1:-1:-1;832:3852:14;;;;;6999:21:37;;832:3852:14;;;;-1:-1:-1;832:3852:14;;;;;-1:-1:-1;832:3852:14;7776:412:37;8033:140;7890:27;832:3852:14;;7890:27:37;;;:::i;:::-;832:3852:14;;;;;;;;;7935:80:37;832:3852:14;7935:65:37;832:3852:14;;;;;;7935:65:37;:::i;:80::-;832:3852:14;;-1:-1:-1;;;;;;832:3852:14;;;-1:-1:-1;832:3852:14;;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;-1:-1:-1;;;;832:3852:14;;;;;;;-1:-1:-1;;;832:3852:14;;;;;8033:140:37;7776:412;;;7534:149;832:3852:14;;-1:-1:-1;;;7629:39:37;;;;;832:3852:14;;;;;7629:39:37;7274:153;832:3852:14;;-1:-1:-1;;;7366:46:37;;;;;832:3852:14;;;;;7366:46:37;6822:115;832:3852:14;;;;6876:50:37;;;;;;;;;832:3852:14;6876:50:37;3615:204;832:3852:14;;-1:-1:-1;;;3773:31:37;;832:3852:14;;;;3773:31:37;;;;832:3852:14;:::i;:::-;3773:31:37;832:3852:14;;;;-1:-1:-1;832:3852:14;;;;;-1:-1:-1;832:3852:14;3138:122:37;832:3852:14;;-1:-1:-1;;;3198:47:37;;;;;832:3852:14;;;;;3198:47:37;1522:130:14;832:3852;;-1:-1:-1;;;1614:27:14;;;;;1526:65;1588:3;1560:31;;;1526:65;;;1418:94;832:3852;;-1:-1:-1;;;1476:25:14;;;;;1264:82;832:3852;;-1:-1:-1;;;1316:19:14;;;;;832:3852;-1:-1:-1;832:3852:14;;;;;-1:-1:-1;;;;;832:3852:14;;;;-1:-1:-1;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;-1:-1:-1;;832:3852:14;;-1:-1:-1;832:3852:14;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;:::o;:::-;;;;;-1:-1:-1;;832:3852:14;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;832:3852:14;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;832:3852:14;;;;;;:::o;:::-;;;-1:-1:-1;;;;;832:3852:14;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;832:3852:14;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;832:3852:14;;;;:::o;:::-;;-1:-1:-1;;;;;;;;;;;832:3852:14;;;;;;;-1:-1:-1;832:3852:14;;;-1:-1:-1;832:3852:14;;;;;;;;;;:::o;9308:320:37:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;832:3852:14;;;-1:-1:-1;;;9566:45:37;;-1:-1:-1;;;;;832:3852:14;;;9566:45:37;;;832:3852:14;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;-1:-1:-1;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;4964:19:38;832:3852:14;;;;;;4964:19:38;-1:-1:-1;832:3852:14;;;-1:-1:-1;832:3852:14;;;;;-1:-1:-1;832:3852:14;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;832:3852:14;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:3852:14;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;;;;;;;;;;;;;4707:1976:38;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4787:29:38;832:3852:14;;;;;;;;;;;;;;;;;;;4787:29:38;;;4964:39;832:3852:14;;;;;4964:44:38;4960:621;;4707:1976;4964:19;;;832:3852:14;;;;;;;;;;;5591:16:38;832:3852:14;;5591:16:38;832:3852:14;;;;;;4707:1976:38;832:3852:14;;;;;;;;;5591:16:38;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5662:21:38;;832:3852:14;;;;5926:9:38;;5937:15;;;;;;832:3852:14;;;;;;;;;;;;6437:25:38;;;6433:244;;5921:332;4707:1976;;;;;;:::o;6433:244::-;6508:15;;;;6433:244;6508:15;832:3852:14;;;;;;-1:-1:-1;;832:3852:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6483:23:38;832:3852:14;;;;;;6483:23:38;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;832:3852:14;;;;;;;;;-1:-1:-1;;;832:3852:14;;;;;;;;5926:9:38;5974:15;;;;;;6045:21;6009:60;6045:24;832:3852:14;6045:21:38;;;:24;:::i;:::-;;6009:33;;;:::i;:::-;:60;;:::i;:::-;832:3852:14;5926:9:38;;5970:214;6144:24;:21;;;:24;:::i;:::-;;832:3852:14;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5970:214:38;;832:3852:14;-1:-1:-1;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5591:16:38;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4960:621:38;832:3852:14;;;;;5062:36:38;832:3852:14;;5028:70:38;;;;5024:115;;5252:69;5248:139;;832:3852:14;;;;;;:::i;:::-;4964:19:38;832:3852:14;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4964:19:38;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;;;;;;-1:-1:-1;;;14268:1:42;;;-1:-1:-1;;832:3852:14;;;14268:1:42;5482:48:38;;;;:::i;:::-;5478:93;;4960:621;;;;5478:93;5550:7;;;;;:::o;832:3852:14:-;;;;;;;;;:::i;:::-;;;14268:1:42;;832:3852:14;;;;;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;:::i;:::-;;;;;;;;;4964:39:38;;;;832:3852:14;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14268:1:42;832:3852:14;;;;;;;;;;;;-1:-1:-1;832:3852:14;;;;;;-1:-1:-1;;;832:3852:14;;;;;;-1:-1:-1;;832:3852:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;832:3852:14;;;;;;;;;;;;;;;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;-1:-1:-1;832:3852:14;;5248:139:38;832:3852:14;;-1:-1:-1;;;5348:24:38;;4964:19;;5348:24;5024:115;5118:7;;;;;;;;;:::o;7218:561::-;7332:23;;;;832:3852:14;7359:23:38;;;832:3852:14;7332:23:38;;;-1:-1:-1;;;;;832:3852:14;;;;;7332:50:38;7328:93;;7434:26;;;:::i;:::-;7464;;;:::i;:::-;7434:56;7430:99;;7542:14;832:3852:14;;7567:14:38;;832:3852:14;7542:46:38;7538:89;;7719:26;832:3852:14;;;;7659:26:38;;832:3852:14;7659:26:38;;;832:3852:14;;;;;;;;;:::i;:::-;7659:26:38;832:3852:14;7659:26:38;832:3852:14;;7659:26:38;;;;;;;;:::i;:::-;832:3852:14;7649:37:38;;7730:14;;832:3852:14;;7719:26:38;;;;;;832:3852:14;;;;;;;;:::i;:::-;7719:26:38;;;;;;;;:::i;:::-;832:3852:14;7709:37:38;;7764:8;7218:561;:::o;7538:89::-;7604:12;;;-1:-1:-1;7604:12:38;:::o;6752:387::-;6863:15;;832:3852:14;6895:29:38;832:3852:14;6939:9:38;;6934:161;6950:7;;;;;;7104:28;;;6752:387;:::o;6939:9::-;7000:15;;;:18;:15;;;:18;:::i;:::-;;832:3852:14;;;;;;;;6975:50:38;832:3852:14;;;6939:9:38;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea264697066735822122056c8d5706e59bd22feeafa2ed921e5a2fbc2e514b3ae1871a2b92d73250bdde664736f6c63430008130033","sourceMap":"832:3852:14:-:0;;;;;;;-1:-1:-1;3575:7:14;;-1:-1:-1;;;;;;3575:7:14;260:43:37;;;;;;832:3852:14;260:43:37;;;-1:-1:-1;;;;;260:43:37;;3610:19:14;;3606:82;;832:3852;;;;;3832:593;;;832:3852;;3832:593;;;;;;;;;;;;;;;;;3606:82;260:43:37;;832:3852:14;260:43:37;3652:25:14;;;;;;;;;260:43:37;3652:25:14;832:3852;-1:-1:-1;3575:7:14;;-1:-1:-1;;;;;;3575:7:14;260:43:37;;;;;;832:3852:14;260:43:37;;;-1:-1:-1;;;;;260:43:37;;3610:19:14;;3606:82;;832:3852;;;;;3832:593;;;832:3852;;3832:593;;;;;;;;;;;;;3606:82;3652:25;;;832:3852;3652:25;;260:43:37;3652:25:14;832:3852;3652:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/GatewayDiamond.sol\":\"GatewayDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0xe021b9ca22feb3790644e9b180b5045199daac2731c0c7b8b857cffabbd2f8c4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3045fe3170ce8f733011aa6514041ab81d01c8f692563718921434164ecb5df8\",\"dweb:/ipfs/QmYHLjqSwZFjdPcPu44neTrZUG8hpXWGThH1PF1v7gLHcQ\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e\",\"dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint256","name":"minCollateral","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/GatewayDiamond.sol":"GatewayDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0xe021b9ca22feb3790644e9b180b5045199daac2731c0c7b8b857cffabbd2f8c4","urls":["bzz-raw://3045fe3170ce8f733011aa6514041ab81d01c8f692563718921434164ecb5df8","dweb:/ipfs/QmYHLjqSwZFjdPcPu44neTrZUG8hpXWGThH1PF1v7gLHcQ"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710","urls":["bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e","dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/GatewayDiamond.sol","id":4908,"exportedSymbols":{"FunctionNotFound":[4635],"FvmAddress":[16179],"GatewayActorStorage":[11147],"GatewayDiamond":[4907],"IDiamond":[8675],"IDiamondCut":[8694],"IDiamondLoupe":[8735],"IERC165":[8746],"InvalidCollateral":[6089],"InvalidMajorityPercentage":[6101],"InvalidSubmissionPeriod":[6117],"LibDiamond":[10200],"LibGateway":[11023],"LibStaking":[13299],"Membership":[16341],"SubnetID":[16209],"Validator":[16334]},"nodeType":"SourceUnit","src":"46:4639:14","nodes":[{"id":4604,"nodeType":"PragmaDirective","src":"46:23:14","nodes":[],"literals":["solidity","0.8",".19"]},{"id":4606,"nodeType":"ImportDirective","src":"71:69:14","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"./lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":4605,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"79:19:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4608,"nodeType":"ImportDirective","src":"141:51:14","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":8676,"symbolAliases":[{"foreign":{"id":4607,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"149:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4610,"nodeType":"ImportDirective","src":"193:57:14","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":8695,"symbolAliases":[{"foreign":{"id":4609,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"201:11:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4612,"nodeType":"ImportDirective","src":"251:61:14","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":8736,"symbolAliases":[{"foreign":{"id":4611,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"259:13:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4614,"nodeType":"ImportDirective","src":"313:49:14","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":8747,"symbolAliases":[{"foreign":{"id":4613,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"321:7:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4616,"nodeType":"ImportDirective","src":"363:52:14","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"./structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":4615,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"371:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4619,"nodeType":"ImportDirective","src":"416:59:14","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":4617,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"424:9:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4618,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"435:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4623,"nodeType":"ImportDirective","src":"476:109:14","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":4620,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"484:17:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4621,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"503:23:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4622,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6101,"src":"528:25:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4625,"nodeType":"ImportDirective","src":"586:48:14","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":10201,"symbolAliases":[{"foreign":{"id":4624,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"594:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4627,"nodeType":"ImportDirective","src":"635:48:14","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"./lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":11024,"symbolAliases":[{"foreign":{"id":4626,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"643:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4629,"nodeType":"ImportDirective","src":"684:46:14","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":4628,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"692:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4631,"nodeType":"ImportDirective","src":"731:48:14","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":4908,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":4630,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"739:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4635,"nodeType":"ErrorDefinition","src":"781:49:14","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"787:16:14","parameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4633,"mutability":"mutable","name":"_functionSelector","nameLocation":"811:17:14","nodeType":"VariableDeclaration","scope":4635,"src":"804:24:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4632,"name":"bytes4","nodeType":"ElementaryTypeName","src":"804:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"803:26:14"}},{"id":4907,"nodeType":"ContractDefinition","src":"832:3852:14","nodes":[{"id":4638,"nodeType":"VariableDeclaration","src":"862:30:14","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"891:1:14","scope":4907,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":4637,"nodeType":"UserDefinedTypeName","pathNode":{"id":4636,"name":"GatewayActorStorage","nameLocations":["862:19:14"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"862:19:14"},"referencedDeclaration":11147,"src":"862:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":4656,"nodeType":"StructDefinition","src":"899:264:14","nodes":[],"canonicalName":"GatewayDiamond.ConstructorParams","members":[{"constant":false,"id":4641,"mutability":"mutable","name":"networkName","nameLocation":"943:11:14","nodeType":"VariableDeclaration","scope":4656,"src":"934:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":4640,"nodeType":"UserDefinedTypeName","pathNode":{"id":4639,"name":"SubnetID","nameLocations":["934:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"934:8:14"},"referencedDeclaration":16209,"src":"934:8:14","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":4643,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"971:19:14","nodeType":"VariableDeclaration","scope":4656,"src":"964:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4642,"name":"uint64","nodeType":"ElementaryTypeName","src":"964:6:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4645,"mutability":"mutable","name":"minCollateral","nameLocation":"1008:13:14","nodeType":"VariableDeclaration","scope":4656,"src":"1000:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4644,"name":"uint256","nodeType":"ElementaryTypeName","src":"1000:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4647,"mutability":"mutable","name":"msgFee","nameLocation":"1039:6:14","nodeType":"VariableDeclaration","scope":4656,"src":"1031:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4646,"name":"uint256","nodeType":"ElementaryTypeName","src":"1031:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4649,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1061:18:14","nodeType":"VariableDeclaration","scope":4656,"src":"1055:24:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4648,"name":"uint8","nodeType":"ElementaryTypeName","src":"1055:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4653,"mutability":"mutable","name":"genesisValidators","nameLocation":"1101:17:14","nodeType":"VariableDeclaration","scope":4656,"src":"1089:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":4651,"nodeType":"UserDefinedTypeName","pathNode":{"id":4650,"name":"Validator","nameLocations":["1089:9:14"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"1089:9:14"},"referencedDeclaration":16334,"src":"1089:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":4652,"nodeType":"ArrayTypeName","src":"1089:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":4655,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1135:21:14","nodeType":"VariableDeclaration","scope":4656,"src":"1128:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4654,"name":"uint16","nodeType":"ElementaryTypeName","src":"1128:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"906:17:14","scope":4907,"visibility":"public"},{"id":4851,"nodeType":"FunctionDefinition","src":"1169:2017:14","nodes":[],"body":{"id":4850,"nodeType":"Block","src":"1254:1932:14","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"1268:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1275:13:14","memberName":"minCollateral","nodeType":"MemberAccess","referencedDeclaration":4645,"src":"1268:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1292:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1268:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4674,"nodeType":"IfStatement","src":"1264:82:14","trueBody":{"id":4673,"nodeType":"Block","src":"1295:51:14","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4670,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"1316:17:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1316:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4672,"nodeType":"RevertStatement","src":"1309:26:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4675,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"1422:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1429:19:14","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":4643,"src":"1422:26:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1452:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1422:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4683,"nodeType":"IfStatement","src":"1418:94:14","trueBody":{"id":4682,"nodeType":"Block","src":"1455:57:14","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4679,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"1476:23:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1476:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4681,"nodeType":"RevertStatement","src":"1469:32:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4684,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"1526:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1533:18:14","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":4649,"src":"1526:25:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":4686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1554:2:14","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1526:30:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4688,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"1560:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1567:18:14","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":4649,"src":"1560:25:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":4690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1588:3:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1560:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1526:65:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4697,"nodeType":"IfStatement","src":"1522:130:14","trueBody":{"id":4696,"nodeType":"Block","src":"1593:59:14","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4693,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6101,"src":"1614:25:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4695,"nodeType":"RevertStatement","src":"1607:34:14"}]}},{"expression":{"arguments":[{"expression":{"id":4701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1690:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1694:6:14","memberName":"sender","nodeType":"MemberAccess","src":"1690:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4698,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1662:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1673:16:14","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":9620,"src":"1662:27:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4704,"nodeType":"ExpressionStatement","src":"1662:39:14"},{"expression":{"arguments":[{"id":4708,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"1747:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":4711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1775:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1767:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4709,"name":"address","nodeType":"ElementaryTypeName","src":"1767:7:14","typeDescriptions":{}}},"id":4712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1767:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1800:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1790:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4713,"name":"bytes","nodeType":"ElementaryTypeName","src":"1794:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4705,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1711:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":4707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1722:10:14","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":9780,"src":"1711:21:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":4717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1734:11:14","1760:5:14","1779:9:14"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1711:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4718,"nodeType":"ExpressionStatement","src":"1711:93:14"},{"assignments":[4723],"declarations":[{"constant":false,"id":4723,"mutability":"mutable","name":"ds","nameLocation":"1849:2:14","nodeType":"VariableDeclaration","scope":4850,"src":"1815:36:14","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":4722,"nodeType":"UserDefinedTypeName","pathNode":{"id":4721,"name":"LibDiamond.DiamondStorage","nameLocations":["1815:10:14","1826:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"1815:25:14"},"referencedDeclaration":9590,"src":"1815:25:14","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":4727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4724,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1854:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":4725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1865:14:14","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"1854:25:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":4726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1815:66:14"},{"expression":{"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4728,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"1921:2:14","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":4734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1924:19:14","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"1921:22:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":4735,"indexExpression":{"expression":{"arguments":[{"id":4731,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"1949:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8746_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8746_$","typeString":"type(contract IERC165)"}],"id":4730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1944:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8746","typeString":"type(contract IERC165)"}},"id":4733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1958:11:14","memberName":"interfaceId","nodeType":"MemberAccess","src":"1944:25:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1921:49:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1973:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1921:56:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4738,"nodeType":"ExpressionStatement","src":"1921:56:14"},{"expression":{"id":4748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4739,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"1987:2:14","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":4745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1990:19:14","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"1987:22:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":4746,"indexExpression":{"expression":{"arguments":[{"id":4742,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"2015:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$8694_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$8694_$","typeString":"type(contract IDiamondCut)"}],"id":4741,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2010:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$8694","typeString":"type(contract IDiamondCut)"}},"id":4744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2028:11:14","memberName":"interfaceId","nodeType":"MemberAccess","src":"2010:29:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1987:53:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2043:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1987:60:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4749,"nodeType":"ExpressionStatement","src":"1987:60:14"},{"expression":{"id":4759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4750,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"2057:2:14","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":4756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2060:19:14","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"2057:22:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":4757,"indexExpression":{"expression":{"arguments":[{"id":4753,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"2085:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$8735_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$8735_$","typeString":"type(contract IDiamondLoupe)"}],"id":4752,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2080:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2080:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$8735","typeString":"type(contract IDiamondLoupe)"}},"id":4755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2100:11:14","memberName":"interfaceId","nodeType":"MemberAccess","src":"2080:31:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2057:55:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2115:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2057:62:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4760,"nodeType":"ExpressionStatement","src":"2057:62:14"},{"expression":{"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2130:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2132:11:14","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"2130:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4764,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"2146:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2153:11:14","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":4641,"src":"2146:18:14","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2130:34:14","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":4767,"nodeType":"ExpressionStatement","src":"2130:34:14"},{"expression":{"id":4773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2174:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2176:8:14","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":11125,"src":"2174:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4771,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"2187:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2194:13:14","memberName":"minCollateral","nodeType":"MemberAccess","referencedDeclaration":4645,"src":"2187:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2174:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4774,"nodeType":"ExpressionStatement","src":"2174:33:14"},{"expression":{"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4775,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2217:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2219:19:14","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":11142,"src":"2217:21:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4778,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"2241:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2248:19:14","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":4643,"src":"2241:26:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2217:50:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4781,"nodeType":"ExpressionStatement","src":"2217:50:14"},{"expression":{"id":4787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4782,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2277:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2279:14:14","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":11128,"src":"2277:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4785,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"2296:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2303:6:14","memberName":"msgFee","nodeType":"MemberAccess","referencedDeclaration":4647,"src":"2296:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2277:32:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4788,"nodeType":"ExpressionStatement","src":"2277:32:14"},{"expression":{"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4789,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2319:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2321:18:14","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"2319:20:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4792,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"2342:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2349:18:14","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":4649,"src":"2342:25:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2319:48:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4795,"nodeType":"ExpressionStatement","src":"2319:48:14"},{"expression":{"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2377:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2379:33:14","memberName":"bottomUpCheckpointRetentionHeight","nodeType":"MemberAccess","referencedDeclaration":11097,"src":"2377:35:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":4799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2377:39:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4801,"nodeType":"ExpressionStatement","src":"2377:39:14"},{"expression":{"id":4811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":4802,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2427:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2429:17:14","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"2427:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":4807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2447:10:14","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"2427:30:14","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":4808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2458:11:14","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"2427:42:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4809,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"2472:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2479:21:14","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":4655,"src":"2472:28:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2427:73:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":4812,"nodeType":"ExpressionStatement","src":"2427:73:14"},{"expression":{"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":4813,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2620:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:17:14","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"2620:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":4818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2640:7:14","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"2620:27:14","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":4819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2648:23:14","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"2620:51:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4820,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"2674:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":4821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2685:28:14","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":12615,"src":"2674:39:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2620:93:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4823,"nodeType":"ExpressionStatement","src":"2620:93:14"},{"expression":{"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":4824,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"2871:1:14","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":4828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2873:17:14","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"2871:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":4829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2891:7:14","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"2871:27:14","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":4830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2899:24:14","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"2871:52:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4831,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"2926:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":4832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2937:28:14","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":12615,"src":"2926:39:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2871:94:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4834,"nodeType":"ExpressionStatement","src":"2871:94:14"},{"assignments":[4837],"declarations":[{"constant":false,"id":4837,"mutability":"mutable","name":"initial","nameLocation":"3049:7:14","nodeType":"VariableDeclaration","scope":4850,"src":"3031:25:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":4836,"nodeType":"UserDefinedTypeName","pathNode":{"id":4835,"name":"Membership","nameLocations":["3031:10:14"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"3031:10:14"},"referencedDeclaration":16341,"src":"3031:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"id":4843,"initialValue":{"arguments":[{"hexValue":"30","id":4839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3092:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":4840,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"3107:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":4841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3114:17:14","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":4653,"src":"3107:24:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":4838,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"3059:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$16341_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3071:19:14","3095:10:14"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3059:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"nodeType":"VariableDeclarationStatement","src":"3031:102:14"},{"expression":{"arguments":[{"id":4847,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4837,"src":"3171:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":4844,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"3143:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":4846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3154:16:14","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":10664,"src":"3143:27:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$16341_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3143:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4849,"nodeType":"ExpressionStatement","src":"3143:36:14"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"_diamondCut","nameLocation":"1208:11:14","nodeType":"VariableDeclaration","scope":4851,"src":"1181:38:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":4658,"nodeType":"UserDefinedTypeName","pathNode":{"id":4657,"name":"IDiamond.FacetCut","nameLocations":["1181:8:14","1190:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"1181:17:14"},"referencedDeclaration":8664,"src":"1181:17:14","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":4659,"nodeType":"ArrayTypeName","src":"1181:19:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":4663,"mutability":"mutable","name":"params","nameLocation":"1246:6:14","nodeType":"VariableDeclaration","scope":4851,"src":"1221:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":4662,"nodeType":"UserDefinedTypeName","pathNode":{"id":4661,"name":"ConstructorParams","nameLocations":["1221:17:14"],"nodeType":"IdentifierPath","referencedDeclaration":4656,"src":"1221:17:14"},"referencedDeclaration":4656,"src":"1221:17:14","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4656_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1180:73:14"},"returnParameters":{"id":4665,"nodeType":"ParameterList","parameters":[],"src":"1254:0:14"},"scope":4907,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4890,"nodeType":"FunctionDefinition","src":"3192:1239:14","nodes":[],"body":{"id":4889,"nodeType":"Block","src":"3222:1209:14","nodes":[],"statements":[{"assignments":[4858],"declarations":[{"constant":false,"id":4858,"mutability":"mutable","name":"ds","nameLocation":"3266:2:14","nodeType":"VariableDeclaration","scope":4889,"src":"3232:36:14","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":4857,"nodeType":"UserDefinedTypeName","pathNode":{"id":4856,"name":"LibDiamond.DiamondStorage","nameLocations":["3232:10:14","3243:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"3232:25:14"},"referencedDeclaration":9590,"src":"3232:25:14","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":4859,"nodeType":"VariableDeclarationStatement","src":"3232:36:14"},{"assignments":[4861],"declarations":[{"constant":false,"id":4861,"mutability":"mutable","name":"position","nameLocation":"3286:8:14","nodeType":"VariableDeclaration","scope":4889,"src":"3278:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3278:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4864,"initialValue":{"expression":{"id":4862,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"3297:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":4863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3308:24:14","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":9491,"src":"3297:35:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3278:54:14"},{"AST":{"nodeType":"YulBlock","src":"3428:43:14","statements":[{"nodeType":"YulAssignment","src":"3442:19:14","value":{"name":"position","nodeType":"YulIdentifier","src":"3453:8:14"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3442:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4858,"isOffset":false,"isSlot":true,"src":"3442:7:14","suffix":"slot","valueSize":1},{"declaration":4861,"isOffset":false,"isSlot":false,"src":"3453:8:14","valueSize":1}],"id":4865,"nodeType":"InlineAssembly","src":"3419:52:14"},{"assignments":[4867],"declarations":[{"constant":false,"id":4867,"mutability":"mutable","name":"facet","nameLocation":"3532:5:14","nodeType":"VariableDeclaration","scope":4889,"src":"3524:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4866,"name":"address","nodeType":"ElementaryTypeName","src":"3524:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4874,"initialValue":{"expression":{"baseExpression":{"expression":{"id":4868,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4858,"src":"3540:2:14","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":4869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3543:31:14","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"3540:34:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":4872,"indexExpression":{"expression":{"id":4870,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3575:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3579:3:14","memberName":"sig","nodeType":"MemberAccess","src":"3575:7:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3540:43:14","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":4873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3584:12:14","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"3540:56:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3524:72:14"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4875,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"3610:5:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3627:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3619:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4876,"name":"address","nodeType":"ElementaryTypeName","src":"3619:7:14","typeDescriptions":{}}},"id":4879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3619:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3610:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4887,"nodeType":"IfStatement","src":"3606:82:14","trueBody":{"id":4886,"nodeType":"Block","src":"3631:57:14","statements":[{"errorCall":{"arguments":[{"expression":{"id":4882,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3669:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3673:3:14","memberName":"sig","nodeType":"MemberAccess","src":"3669:7:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":4881,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4635,"src":"3652:16:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4885,"nodeType":"RevertStatement","src":"3645:32:14"}]}},{"AST":{"nodeType":"YulBlock","src":"3841:584:14","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3924:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3927:1:14","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"3930:12:14"},"nodeType":"YulFunctionCall","src":"3930:14:14"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3911:12:14"},"nodeType":"YulFunctionCall","src":"3911:34:14"},"nodeType":"YulExpressionStatement","src":"3911:34:14"},{"nodeType":"YulVariableDeclaration","src":"4011:65:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4038:3:14"},"nodeType":"YulFunctionCall","src":"4038:5:14"},{"name":"facet","nodeType":"YulIdentifier","src":"4045:5:14"},{"kind":"number","nodeType":"YulLiteral","src":"4052:1:14","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4055:12:14"},"nodeType":"YulFunctionCall","src":"4055:14:14"},{"kind":"number","nodeType":"YulLiteral","src":"4071:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4074:1:14","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"4025:12:14"},"nodeType":"YulFunctionCall","src":"4025:51:14"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"4015:6:14","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4140:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4143:1:14","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4146:14:14"},"nodeType":"YulFunctionCall","src":"4146:16:14"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"4125:14:14"},"nodeType":"YulFunctionCall","src":"4125:38:14"},"nodeType":"YulExpressionStatement","src":"4125:38:14"},{"cases":[{"body":{"nodeType":"YulBlock","src":"4276:59:14","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4301:1:14","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4304:14:14"},"nodeType":"YulFunctionCall","src":"4304:16:14"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4294:6:14"},"nodeType":"YulFunctionCall","src":"4294:27:14"},"nodeType":"YulExpressionStatement","src":"4294:27:14"}]},"nodeType":"YulCase","src":"4269:66:14","value":{"kind":"number","nodeType":"YulLiteral","src":"4274:1:14","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"4356:59:14","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4381:1:14","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4384:14:14"},"nodeType":"YulFunctionCall","src":"4384:16:14"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"4374:6:14"},"nodeType":"YulFunctionCall","src":"4374:27:14"},"nodeType":"YulExpressionStatement","src":"4374:27:14"}]},"nodeType":"YulCase","src":"4348:67:14","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"4250:6:14"},"nodeType":"YulSwitch","src":"4243:172:14"}]},"evmVersion":"paris","externalReferences":[{"declaration":4867,"isOffset":false,"isSlot":false,"src":"4045:5:14","valueSize":1}],"id":4888,"nodeType":"InlineAssembly","src":"3832:593:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"3201:9:14","parameters":{"id":4852,"nodeType":"ParameterList","parameters":[],"src":"3210:2:14"},"returnParameters":{"id":4853,"nodeType":"ParameterList","parameters":[],"src":"3222:0:14"},"scope":4907,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4898,"nodeType":"FunctionDefinition","src":"4498:56:14","nodes":[],"body":{"id":4897,"nodeType":"Block","src":"4526:28:14","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4894,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"4536:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4536:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4896,"nodeType":"ExpressionStatement","src":"4536:11:14"}]},"documentation":{"id":4891,"nodeType":"StructuredDocumentation","src":"4437:56:14","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4892,"nodeType":"ParameterList","parameters":[],"src":"4506:2:14"},"returnParameters":{"id":4893,"nodeType":"ParameterList","parameters":[],"src":"4526:0:14"},"scope":4907,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4906,"nodeType":"FunctionDefinition","src":"4627:55:14","nodes":[],"body":{"id":4905,"nodeType":"Block","src":"4654:28:14","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4902,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"4664:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4664:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4904,"nodeType":"ExpressionStatement","src":"4664:11:14"}]},"documentation":{"id":4899,"nodeType":"StructuredDocumentation","src":"4560:62:14","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4900,"nodeType":"ParameterList","parameters":[],"src":"4634:2:14"},"returnParameters":{"id":4901,"nodeType":"ParameterList","parameters":[],"src":"4654:0:14"},"scope":4907,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[4907],"name":"GatewayDiamond","nameLocation":"841:14:14","scope":4908,"usedErrors":[4635,6089,6101,6117,6165,9499,9504,9508,9512,9517,9523,9536,9540,9544,9548,9552,9556,9560]}],"license":"MIT OR Apache-2.0"},"id":14} \ No newline at end of file diff --git a/contracts/out/GatewayGetterFacet.sol/GatewayGetterFacet.json b/contracts/out/GatewayGetterFacet.sol/GatewayGetterFacet.json deleted file mode 100644 index c572507cfe..0000000000 --- a/contracts/out/GatewayGetterFacet.sol/GatewayGetterFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"appliedTopDownNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpoint","inputs":[{"name":"e","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMessages","inputs":[{"name":"e","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"crossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppliedTopDownNonce","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointCurrentWeight","inputs":[{"name":"h","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointInfo","inputs":[{"name":"h","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CheckpointInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentBottomUpCheckpoint","inputs":[],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"epoch","type":"uint64","internalType":"uint64"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getCurrentMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpointHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpoints","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpCheckpoint[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getLastConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getLatestParentFinality","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNetworkName","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getParentFinality","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getQuorumThreshold","inputs":[{"name":"totalWeight","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSignatureBundle","inputs":[{"name":"h","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ch","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"info","type":"tuple","internalType":"struct CheckpointInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum Status"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSubnetTopDownMsgsLength","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"listSubnets","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Subnet[]","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum Status"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"minStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"postbox","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"subnets","inputs":[{"name":"h","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"subnet","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum Status"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"totalSubnets","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657611bce908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146111145781630338150f146110ce57816306572c1a1461108157816306c4685314611059578163247294251461103a578163375b3c0a1461101b5781633e37cfa214610ff357816341b6a2e814610fc85781634512ff6314610f1c578163544dddff14610ef4578163599c7bd114610ed25781635d02968514610dbb5781636ad21bb014610cdd5781637edeac9214610c8e5781638789f83b14610c635781638cfd78e714610bd357816394074b0314610b1d57816397042766146109cc5781639d3070b5146109865781639e530b5714610954578163a2b6715814610929578163a517218f146108cf578163ad8c4f741461062a578163b1ba49b014610602578163b45ff1721461056f578163b932488f14610460578163c66c66a11461040f578163d6c5c3971461028957508063f3229131146101a95763f7ceaf761461016d57600080fd5b346101a55760203660031901126101a5576003816020936001600160401b03610194611232565b168152600985522001549051908152f35b5080fd5b50346101a557816003193601126101a5576101c261193c565b508051906101cf82611478565b6006546101db816114cf565b6101e7835191826114ae565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061024757505050610243945083526001600160401b036007541690830152519182918261128d565b0390f35b600385600192885161025881611493565b8b548152848060a01b03858d0154168382015261027760028d01611687565b8a820152815201980191019096610218565b82843461040c578060031936011261040c576102a3611655565b506102ac611655565b506001600160401b0392836016541680156103f957600185828143160416018581116103e657851602928484169384036103d35783835261034b60208096600882528386209460058551966103008861142c565b610309816115da565b80895260028201548516868a01526003820154888a0152838201549094166060890152015460808701528451630c133d1360e31b815293849283928301611a06565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156103c85793610392575b508061024393946060925196879615875286015284015260608301906113e3565b6102439350906103b9606092873d89116103c1575b6103b181836114ae565b8101906119ee565b935090610371565b503d6103a7565b8251903d90823e3d90fd5b634e487b7160e01b835260118252602483fd5b634e487b7160e01b845260118352602484fd5b634e487b7160e01b835260128252602483fd5b80fd5b82843461040c575061044961024361044161043c61042c3661158f565b610434611815565b5036906114e6565b611aa4565b929092611854565b8351938493151584528060208501528301906111b4565b82843461040c576020806003193601126101a557906001600160401b03610485611232565b168152600a825282812090815461049b816114cf565b906104a8865192836114ae565b8082528482018094845285842084915b83831061052f57505050508451938085019181865251809252858501868360051b8701019493965b8388106104ed5786860387f35b90919293948380600192603f198a82030186528851908280610516845189855289850190611369565b93015115159101529701930197019690939291936104e0565b600d886001928b9a97989a5161054481611478565b61054d8661179e565b815260ff600c87015416151583820152815201920192019190969493966104b8565b919050346105fe5760203660031901126105fe5760056102439382610592611232565b9161059b611655565b506001600160401b038093168152600860205220908351946105bc8661142c565b6105c5836115da565b865281600284015416602087015260038301548587015282015416606085015201546080830152519182916020835260208301906113e3565b8280fd5b5050346101a557816003193601126101a5576020906001600160401b03600754169051908152f35b8383346101a5576020918260031936011261040c578390610649611232565b92610652611655565b5061065b611956565b506001600160401b0380941694858352600881528183209160058151966106818861142c565b61068a856115da565b885280600286015416848901526003850154838901528685015416936060948589015201546080870152868452600982528084209460ff8251916106cd8361142c565b87548352600197888101548685015260028101548585015260038101548785015201541615156080820152878552600e835281852091805190818585549182815201908195895286892090895b8181106108bc57505050826107309103836114ae565b815161073b816114cf565b9a61074883519c8d6114ae565b818c52601f199788610759846114cf565b01908a5b8281106108ad57505050885b82811061085457505050906107c061078c8693519a610100808d528c01906113e3565b93838b0190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b88830360c08a01525191828152019190855b8181106108385750505085810360e08701528651928382528282019083808660051b850101990195925b85841061080957888a0389f35b9091929394959685806108258c8686869f030188528b5161124d565b9b990197969591909101930191906107fc565b82516001600160a01b03168452928401929184019187016107d2565b99809c9a828b98999a9b52600f8a5284882060018060a01b036108778389611912565b511689528a528b6108938261088d888c20611687565b92611912565b5261089e818d611912565b50019b999b9897969598610769565b8e81018a01829052890161075d565b8254845292880192918b01918b0161071a565b5050346101a557816003193601126101a5576108e9611981565b815192839260208080860192818752855180945286019401925b82811061091257505050500390f35b835185528695509381019392810192600101610903565b5050346101a557816003193601126101a5576020906001600160401b0360155460881c169051908152f35b82843461040c57506001600160401b036109756109703661158f565b6118be565b835191151582529091166020820152f35b82843461040c57602036600319011261040c5782356001600160401b039182821161040c57506109c061043c6020956003933691016114e6565b90500154169051908152f35b839150346101a557816003193601126101a5576109e7611981565b918251906109f4826114cf565b90610a01865192836114ae565b828252601f19610a10846114cf565b01815b818110610b06575050805b6001600160401b039081811685811015610aa95790610aa18284610a446001958c611912565b5116865260206008815260058c88208d5192610a5f8461142c565b610a68826115da565b8452600282015489169084015260038101548e8401528b8101548816606084015201546080820152610a9a8289611912565b5286611912565b500116610a1e565b885160208082528651818301819052869291600582901b83018d0191818a0191848f015b828710610ada5785850386f35b909192938280610af6600193603f198a820301865288516113e3565b9601920196019592919092610acd565b602090610b11611655565b82828701015201610a13565b82843461040c578060031936011261040c57610b376115c0565b50815191610b4483611478565b6011546001600160401b03168352805160128054808352908452602093848301917fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444915b86828210610bb65788906102438888610ba3818a03826114ae565b8385015251928284938452830190611159565b83546001600160a01b031685529093019260019283019201610b88565b9050346105fe5760203660031901126105fe579181928160c08451610bf78161145d565b610bff6118f0565b8152610c096118f0565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610c4360ff600c840154169261179e565b91610c578251938385948552840190611369565b90151560208301520390f35b5050346101a557816003193601126101a5576020906001600160401b0360155460481c169051908152f35b9050346105fe5760203660031901126105fe57610cc1906102439360208451610cb681611478565b828152015235611a65565b9051918291829190916020806040830194805184520151910152565b8383346101a557816003193601126101a5578290610cf961193c565b50805191610d0683611478565b8054610d11816114cf565b90610d1e845192836114ae565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610d7957505050610243945083526001600160401b036005541690830152519182918261128d565b6003856001928851610d8a81611493565b8b548152848060a01b03858d01541683820152610da960028d01611687565b8a820152815201980191019096610d4e565b82843461040c578060031936011261040c57601054610dd9816114cf565b90610de6845192836114ae565b808252601f19610df5826114cf565b01835b818110610ebb575050825b818110610e67575050825191602080840190808552835180925280868601968360051b870101940192955b828710610e3b5785850386f35b909192938280610e57600193603f198a820301865288516111b4565b9601920196019592919092610e2e565b806001917f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720154855284602052610e9f868620611854565b610ea98286611912565b52610eb48185611912565b5001610e03565b602090610ec6611815565b82828701015201610df8565b5050346101a557816003193601126101a55760209060ff601554169051908152f35b5050346101a557816003193601126101a5576020906001600160401b03600554169051908152f35b919050346105fe5760203660031901126105fe578060ff610fc69260a0956001600160401b03610f4a611232565b610f52611956565b5016815260096020522093825194610f698661142c565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b5050346101a557816003193601126101a5576020906001600160401b0360155460081c169051908152f35b5050346101a557816003193601126101a5576020906001600160401b03600b54169051908152f35b5050346101a557816003193601126101a5576020906013549051908152f35b5050346101a557816003193601126101a5576020906014549051908152f35b5050346101a557816003193601126101a5576020906001600160401b03601654169051908152f35b9050823461040c57602036600319011261040c5760155460ff168235818102939181159185041417156110bb576020836064865191048152f35b634e487b7160e01b825260119052602490fd5b5050346101a557816003193601126101a5578161024392602083516110f281611478565b82815201526020825161110481611478565b8281520152610cc1600254611a65565b9050346105fe5760203660031901126105fe57816102439361114692611138611815565b503581528060205220611854565b90519182916020835260208301906111b4565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611197575050505090565b83516001600160a01b031685529381019392810192600101611189565b908151815260208201516020820152604082015160408201526001600160401b03806060840151166060830152608083015116608082015260a082015191600683101561121c5760c060e0916112199460a08501520151918160c08201520190611159565b90565b634e487b7160e01b600052602160045260246000fd5b600435906001600160401b038216820361124857565b600080fd5b919082519283825260005b848110611279575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611258565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106112df575050505050906001600160401b039101511691015290565b9091929398868061131e8a856001958f8f83918591607f19908503018c525180518452898060a01b03888201511688850152015193820152019061124d565b9b0193019301919392906112c0565b604060206112199381611347855185845285840190611159565b940151908281860391015260ff8151168452015191816020820152019061124d565b9060c0806113da611398611386865160e0875260e087019061132d565b6020870151868203602088015261132d565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a087015261124d565b93015191015290565b906080806113fa845160a0855260a0850190611159565b936001600160401b03806020830151166020860152604082015160408601526060820151166060850152015191015290565b60a081019081106001600160401b0382111761144757604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b0382111761144757604052565b604081019081106001600160401b0382111761144757604052565b606081019081106001600160401b0382111761144757604052565b90601f801991011681019081106001600160401b0382111761144757604052565b6001600160401b0381116114475760051b60200190565b919060408382031261124857604051926114ff84611478565b836001600160401b03823581811681036112485782526020928381013591821161124857019280601f8501121561124857833561153b816114cf565b9461154960405196876114ae565b818652848087019260051b820101928311611248578401905b828210611570575050500152565b81356001600160a01b0381168103611248578152908401908401611562565b6003199060208183011261124857600435916001600160401b03831161124857826040920301126112485760040190565b604051906115cd82611478565b6060602083600081520152565b906040516115e781611478565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106116365750505050611632925003846114ae565b0152565b83546001600160a01b031685528995509093019291810191810161161a565b604051906116628261142c565b600060808361166f6115c0565b81528260208201528260408201528260608201520152565b90604051906000835490600182811c9080841696871561174e575b602094858410891461173a578798848997989952908160001461171857506001146116d9575b5050506116d7925003836114ae565b565b600090815285812095935091905b8183106117005750506116d793508201013880806116c8565b855488840185015294850194879450918301916116e7565b925050506116d794925060ff191682840152151560051b8201013880806116c8565b634e487b7160e01b85526022600452602485fd5b91607f16916116a2565b906040519161176683611478565b602083611772836115da565b815261179660036040519461178686611478565b60ff600282015416865201611687565b828401520152565b906040516117ab8161145d565b60c0600b82946117ba81611758565b84526117c860048201611758565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611809600a8201611687565b60a08501520154910152565b604051906118228261145d565b81600080825280602083015280604083015280606083015280608083015260a082015260c061184f6115c0565b910152565b906040516118618161145d565b809280548252600181015460208301526002810154604083015260ff60038201546001600160401b0380821660608601528160401c16608085015260801c1690600682101561121c57600461184f9160c09360a0860152016115da565b61043c6118cc9136906114e6565b90156118e75760036001600160401b03910154169060019190565b50600090600090565b604051906118fd82611478565b816119066115c0565b8152602061184f6115c0565b80518210156119265760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6040519061194982611478565b6000602083606081520152565b604051906119638261142c565b60006080838281528260208201528260408201528260608201520152565b60405190600c548083528260209182820190600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7936000905b8282106119d4575050506116d7925003836114ae565b8554845260019586019588955093810193909101906119be565b90816020910312611248575180151581036112485790565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b828110611a48575050505090565b83516001600160a01b031685529381019392810192600101611a3a565b60006020604051611a7581611478565b828152015260005260016020526040600020600160405191611a9683611478565b805483520154602082015290565b611adb73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301611a06565b0381865af4908115611b5f57600091611b6b575b5060005260008152611b2981604060002093611b0d600486016115da565b906040518080958194630c133d1360e31b835260048301611a06565b03915af4918215611b5f57600092611b42575b50501591565b611b589250803d106103c1576103b181836114ae565b3880611b3c565b6040513d6000823e3d90fd5b908282813d8311611b91575b611b8181836114ae565b8101031261040c57505138611aef565b503d611b7756fea26469706673582212200025fa16ec943ff8fc60473ac5684e1d1794379311123fa21771569472505f4064736f6c63430008130033","sourceMap":"560:7600:24:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":875,"length":20},{"start":6853,"length":20}]}}},"deployedBytecode":{"object":"0x6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146111145781630338150f146110ce57816306572c1a1461108157816306c4685314611059578163247294251461103a578163375b3c0a1461101b5781633e37cfa214610ff357816341b6a2e814610fc85781634512ff6314610f1c578163544dddff14610ef4578163599c7bd114610ed25781635d02968514610dbb5781636ad21bb014610cdd5781637edeac9214610c8e5781638789f83b14610c635781638cfd78e714610bd357816394074b0314610b1d57816397042766146109cc5781639d3070b5146109865781639e530b5714610954578163a2b6715814610929578163a517218f146108cf578163ad8c4f741461062a578163b1ba49b014610602578163b45ff1721461056f578163b932488f14610460578163c66c66a11461040f578163d6c5c3971461028957508063f3229131146101a95763f7ceaf761461016d57600080fd5b346101a55760203660031901126101a5576003816020936001600160401b03610194611232565b168152600985522001549051908152f35b5080fd5b50346101a557816003193601126101a5576101c261193c565b508051906101cf82611478565b6006546101db816114cf565b6101e7835191826114ae565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061024757505050610243945083526001600160401b036007541690830152519182918261128d565b0390f35b600385600192885161025881611493565b8b548152848060a01b03858d0154168382015261027760028d01611687565b8a820152815201980191019096610218565b82843461040c578060031936011261040c576102a3611655565b506102ac611655565b506001600160401b0392836016541680156103f957600185828143160416018581116103e657851602928484169384036103d35783835261034b60208096600882528386209460058551966103008861142c565b610309816115da565b80895260028201548516868a01526003820154888a0152838201549094166060890152015460808701528451630c133d1360e31b815293849283928301611a06565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156103c85793610392575b508061024393946060925196879615875286015284015260608301906113e3565b6102439350906103b9606092873d89116103c1575b6103b181836114ae565b8101906119ee565b935090610371565b503d6103a7565b8251903d90823e3d90fd5b634e487b7160e01b835260118252602483fd5b634e487b7160e01b845260118352602484fd5b634e487b7160e01b835260128252602483fd5b80fd5b82843461040c575061044961024361044161043c61042c3661158f565b610434611815565b5036906114e6565b611aa4565b929092611854565b8351938493151584528060208501528301906111b4565b82843461040c576020806003193601126101a557906001600160401b03610485611232565b168152600a825282812090815461049b816114cf565b906104a8865192836114ae565b8082528482018094845285842084915b83831061052f57505050508451938085019181865251809252858501868360051b8701019493965b8388106104ed5786860387f35b90919293948380600192603f198a82030186528851908280610516845189855289850190611369565b93015115159101529701930197019690939291936104e0565b600d886001928b9a97989a5161054481611478565b61054d8661179e565b815260ff600c87015416151583820152815201920192019190969493966104b8565b919050346105fe5760203660031901126105fe5760056102439382610592611232565b9161059b611655565b506001600160401b038093168152600860205220908351946105bc8661142c565b6105c5836115da565b865281600284015416602087015260038301548587015282015416606085015201546080830152519182916020835260208301906113e3565b8280fd5b5050346101a557816003193601126101a5576020906001600160401b03600754169051908152f35b8383346101a5576020918260031936011261040c578390610649611232565b92610652611655565b5061065b611956565b506001600160401b0380941694858352600881528183209160058151966106818861142c565b61068a856115da565b885280600286015416848901526003850154838901528685015416936060948589015201546080870152868452600982528084209460ff8251916106cd8361142c565b87548352600197888101548685015260028101548585015260038101548785015201541615156080820152878552600e835281852091805190818585549182815201908195895286892090895b8181106108bc57505050826107309103836114ae565b815161073b816114cf565b9a61074883519c8d6114ae565b818c52601f199788610759846114cf565b01908a5b8281106108ad57505050885b82811061085457505050906107c061078c8693519a610100808d528c01906113e3565b93838b0190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b88830360c08a01525191828152019190855b8181106108385750505085810360e08701528651928382528282019083808660051b850101990195925b85841061080957888a0389f35b9091929394959685806108258c8686869f030188528b5161124d565b9b990197969591909101930191906107fc565b82516001600160a01b03168452928401929184019187016107d2565b99809c9a828b98999a9b52600f8a5284882060018060a01b036108778389611912565b511689528a528b6108938261088d888c20611687565b92611912565b5261089e818d611912565b50019b999b9897969598610769565b8e81018a01829052890161075d565b8254845292880192918b01918b0161071a565b5050346101a557816003193601126101a5576108e9611981565b815192839260208080860192818752855180945286019401925b82811061091257505050500390f35b835185528695509381019392810192600101610903565b5050346101a557816003193601126101a5576020906001600160401b0360155460881c169051908152f35b82843461040c57506001600160401b036109756109703661158f565b6118be565b835191151582529091166020820152f35b82843461040c57602036600319011261040c5782356001600160401b039182821161040c57506109c061043c6020956003933691016114e6565b90500154169051908152f35b839150346101a557816003193601126101a5576109e7611981565b918251906109f4826114cf565b90610a01865192836114ae565b828252601f19610a10846114cf565b01815b818110610b06575050805b6001600160401b039081811685811015610aa95790610aa18284610a446001958c611912565b5116865260206008815260058c88208d5192610a5f8461142c565b610a68826115da565b8452600282015489169084015260038101548e8401528b8101548816606084015201546080820152610a9a8289611912565b5286611912565b500116610a1e565b885160208082528651818301819052869291600582901b83018d0191818a0191848f015b828710610ada5785850386f35b909192938280610af6600193603f198a820301865288516113e3565b9601920196019592919092610acd565b602090610b11611655565b82828701015201610a13565b82843461040c578060031936011261040c57610b376115c0565b50815191610b4483611478565b6011546001600160401b03168352805160128054808352908452602093848301917fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444915b86828210610bb65788906102438888610ba3818a03826114ae565b8385015251928284938452830190611159565b83546001600160a01b031685529093019260019283019201610b88565b9050346105fe5760203660031901126105fe579181928160c08451610bf78161145d565b610bff6118f0565b8152610c096118f0565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610c4360ff600c840154169261179e565b91610c578251938385948552840190611369565b90151560208301520390f35b5050346101a557816003193601126101a5576020906001600160401b0360155460481c169051908152f35b9050346105fe5760203660031901126105fe57610cc1906102439360208451610cb681611478565b828152015235611a65565b9051918291829190916020806040830194805184520151910152565b8383346101a557816003193601126101a5578290610cf961193c565b50805191610d0683611478565b8054610d11816114cf565b90610d1e845192836114ae565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610d7957505050610243945083526001600160401b036005541690830152519182918261128d565b6003856001928851610d8a81611493565b8b548152848060a01b03858d01541683820152610da960028d01611687565b8a820152815201980191019096610d4e565b82843461040c578060031936011261040c57601054610dd9816114cf565b90610de6845192836114ae565b808252601f19610df5826114cf565b01835b818110610ebb575050825b818110610e67575050825191602080840190808552835180925280868601968360051b870101940192955b828710610e3b5785850386f35b909192938280610e57600193603f198a820301865288516111b4565b9601920196019592919092610e2e565b806001917f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720154855284602052610e9f868620611854565b610ea98286611912565b52610eb48185611912565b5001610e03565b602090610ec6611815565b82828701015201610df8565b5050346101a557816003193601126101a55760209060ff601554169051908152f35b5050346101a557816003193601126101a5576020906001600160401b03600554169051908152f35b919050346105fe5760203660031901126105fe578060ff610fc69260a0956001600160401b03610f4a611232565b610f52611956565b5016815260096020522093825194610f698661142c565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b5050346101a557816003193601126101a5576020906001600160401b0360155460081c169051908152f35b5050346101a557816003193601126101a5576020906001600160401b03600b54169051908152f35b5050346101a557816003193601126101a5576020906013549051908152f35b5050346101a557816003193601126101a5576020906014549051908152f35b5050346101a557816003193601126101a5576020906001600160401b03601654169051908152f35b9050823461040c57602036600319011261040c5760155460ff168235818102939181159185041417156110bb576020836064865191048152f35b634e487b7160e01b825260119052602490fd5b5050346101a557816003193601126101a5578161024392602083516110f281611478565b82815201526020825161110481611478565b8281520152610cc1600254611a65565b9050346105fe5760203660031901126105fe57816102439361114692611138611815565b503581528060205220611854565b90519182916020835260208301906111b4565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611197575050505090565b83516001600160a01b031685529381019392810192600101611189565b908151815260208201516020820152604082015160408201526001600160401b03806060840151166060830152608083015116608082015260a082015191600683101561121c5760c060e0916112199460a08501520151918160c08201520190611159565b90565b634e487b7160e01b600052602160045260246000fd5b600435906001600160401b038216820361124857565b600080fd5b919082519283825260005b848110611279575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611258565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106112df575050505050906001600160401b039101511691015290565b9091929398868061131e8a856001958f8f83918591607f19908503018c525180518452898060a01b03888201511688850152015193820152019061124d565b9b0193019301919392906112c0565b604060206112199381611347855185845285840190611159565b940151908281860391015260ff8151168452015191816020820152019061124d565b9060c0806113da611398611386865160e0875260e087019061132d565b6020870151868203602088015261132d565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a087015261124d565b93015191015290565b906080806113fa845160a0855260a0850190611159565b936001600160401b03806020830151166020860152604082015160408601526060820151166060850152015191015290565b60a081019081106001600160401b0382111761144757604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b0382111761144757604052565b604081019081106001600160401b0382111761144757604052565b606081019081106001600160401b0382111761144757604052565b90601f801991011681019081106001600160401b0382111761144757604052565b6001600160401b0381116114475760051b60200190565b919060408382031261124857604051926114ff84611478565b836001600160401b03823581811681036112485782526020928381013591821161124857019280601f8501121561124857833561153b816114cf565b9461154960405196876114ae565b818652848087019260051b820101928311611248578401905b828210611570575050500152565b81356001600160a01b0381168103611248578152908401908401611562565b6003199060208183011261124857600435916001600160401b03831161124857826040920301126112485760040190565b604051906115cd82611478565b6060602083600081520152565b906040516115e781611478565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106116365750505050611632925003846114ae565b0152565b83546001600160a01b031685528995509093019291810191810161161a565b604051906116628261142c565b600060808361166f6115c0565b81528260208201528260408201528260608201520152565b90604051906000835490600182811c9080841696871561174e575b602094858410891461173a578798848997989952908160001461171857506001146116d9575b5050506116d7925003836114ae565b565b600090815285812095935091905b8183106117005750506116d793508201013880806116c8565b855488840185015294850194879450918301916116e7565b925050506116d794925060ff191682840152151560051b8201013880806116c8565b634e487b7160e01b85526022600452602485fd5b91607f16916116a2565b906040519161176683611478565b602083611772836115da565b815261179660036040519461178686611478565b60ff600282015416865201611687565b828401520152565b906040516117ab8161145d565b60c0600b82946117ba81611758565b84526117c860048201611758565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611809600a8201611687565b60a08501520154910152565b604051906118228261145d565b81600080825280602083015280604083015280606083015280608083015260a082015260c061184f6115c0565b910152565b906040516118618161145d565b809280548252600181015460208301526002810154604083015260ff60038201546001600160401b0380821660608601528160401c16608085015260801c1690600682101561121c57600461184f9160c09360a0860152016115da565b61043c6118cc9136906114e6565b90156118e75760036001600160401b03910154169060019190565b50600090600090565b604051906118fd82611478565b816119066115c0565b8152602061184f6115c0565b80518210156119265760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6040519061194982611478565b6000602083606081520152565b604051906119638261142c565b60006080838281528260208201528260408201528260608201520152565b60405190600c548083528260209182820190600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7936000905b8282106119d4575050506116d7925003836114ae565b8554845260019586019588955093810193909101906119be565b90816020910312611248575180151581036112485790565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b828110611a48575050505090565b83516001600160a01b031685529381019392810192600101611a3a565b60006020604051611a7581611478565b828152015260005260016020526040600020600160405191611a9683611478565b805483520154602082015290565b611adb73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301611a06565b0381865af4908115611b5f57600091611b6b575b5060005260008152611b2981604060002093611b0d600486016115da565b906040518080958194630c133d1360e31b835260048301611a06565b03915af4918215611b5f57600092611b42575b50501591565b611b589250803d106103c1576103b181836114ae565b3880611b3c565b6040513d6000823e3d90fd5b908282813d8311611b91575b611b8181836114ae565b8101031261040c57505138611aef565b503d611b7756fea26469706673582212200025fa16ec943ff8fc60473ac5684e1d1794379311123fa21771569472505f4064736f6c63430008130033","sourceMap":"560:7600:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;-1:-1:-1;;;;;560:7600:24;;:::i;:::-;;;;5449:24;560:7600;;;5449:41;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;4450:16;560:7600;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;4450:16;560:7600;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;560:7600:24;;1885:21:38;560:7600:24;;;;;;10933:1:38;1871:12;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;1978:29:38;560:7600:24;;;1930:21:38;560:7600:24;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:29:38;;560:7600:24;;;;;1978:29:38;;;:::i;:::-;;:27;;:29;;;;;;;;;;560:7600:24;;;;;;;;;1977:30:38;;;;560:7600:24;;;;;;;;;;;;;:::i;1978:29:38:-;560:7600:24;1978:29:38;;;;560:7600:24;1978:29:38;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;560:7600:24;;;;;;;;;;;-1:-1:-1;;;560:7600:24;;;;;;;;;-1:-1:-1;;;560:7600:24;;;;;;;;;-1:-1:-1;;;560:7600:24;;;;;;;;;;;;;;;;;;;;2376:30;560:7600;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;2376:30;:::i;:::-;560:7600;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;:::i;:::-;;;;1681:18;560:7600;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;560:7600:24;;;;;1549:21;560:7600;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4640:36:24;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;560:7600:24;;;;;;;7207:21;560:7600;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7248:24;560:7600;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7299:26;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;560:7600:24;;;;;:::i;:::-;;;;;;;;;;7431:9;;;;7442:5;;;;;;560:7600;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;7431:9;560:7600;;;;;;;;;;;7481:20;560:7600;;;;;;;;;;7505:14;;;;:::i;:::-;560:7600;;;;;;;7465:55;560:7600;;;;;;:::i;:::-;7465:55;;:::i;:::-;;;;;;:::i;:::-;;560:7600;7431:9;;;;;;;;;;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1103:14:24;560:7600;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;2786:30;560:7600;;;;;;;;;:::i;2786:30::-;2961:19;;;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;560:7600:24;;;:::i;:::-;;;;;;;;;6043:8;;;;-1:-1:-1;;;;;560:7600:24;;;;6053:8;;;;;;6125:10;6079:58;6125:10;;;560:7600;6125:10;;;:::i;:::-;560:7600;;;;;6096:21;560:7600;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6079:58;;;;:::i;:::-;;;;:::i;:::-;;560:7600;;6043:8;;6053;560:7600;;;;;;;;;;;;;;6053:8;;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1418:13;560:7600;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3667:21;560:7600;;3667:21;;;560:7600;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3494:21:24;560:7600;;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;1826:41;560:7600;;;;;;;;;:::i;:::-;;;;;;;1826:41;:::i;:::-;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4008:12;560:7600;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;560:7600:24;;;:::i;:::-;;;;;;;;;4092:9;;;4103:8;;;;;;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4092:9;560:7600;;;;;;;;;;;;;;;;:::i;:::-;4172:23;;;;:::i;:::-;;;;;;:::i;:::-;;560:7600;4092:9;;560:7600;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3780:20;560:7600;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4997:39:24;560:7600;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;:::i;:::-;;;:::i;:::-;;;;;5230:24;560:7600;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1003:15:24;560:7600;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6394:35:24;560:7600;;;;;;;;;;;;;;;;;;;;;;;;1199:10;560:7600;;;;;;;;;;;;;;;;;;;;;;;901:16;560:7600;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1301:21:24;560:7600;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;6744:20;560:7600;;;;;;;;;;;;;;;;;;;;;;10593:3:38;560:7600:24;;;;;;;;-1:-1:-1;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;3922:39:38;3940:20;560:7600:24;3922:39:38;:::i;560:7600:24:-;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;-1:-1:-1;560:7600:24;;;;;-1:-1:-1;560:7600:24;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;560:7600:24;;;;;;;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;:::o;:::-;-1:-1:-1;;;;;560:7600:24;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;560:7600:24;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;560:7600:24;;-1:-1:-1;560:7600:24;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;560:7600:24;;;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;560:7600:24;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;560:7600:24;;;;;;;;-1:-1:-1;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;-1:-1:-1;;;;;;560:7600:24;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3110:299::-;560:7600;3260:30;3110:299;560:7600;;;:::i;3260:30::-;3304:11;;3300:59;;3382:19;-1:-1:-1;;;;;3382:19:24;;560:7600;;3368:34;3376:4;3368:34;3110:299;:::o;3300:59::-;3331:17;3339:5;3331:17;3339:5;3331:17;:::o;560:7600::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;560:7600:24;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;5874:23;560:7600;;;;;;;;;;;5874:23;-1:-1:-1;560:7600:24;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;560:7600:24;;;;;;;;;;;;;;;3454:223:38;-1:-1:-1;560:7600:24;;;;;;:::i;:::-;;;;;;-1:-1:-1;560:7600:24;3642:15:38;560:7600:24;;;-1:-1:-1;560:7600:24;3642:15:38;560:7600:24;;;;;;:::i;:::-;;;;;;;;;;;3454:223:38;:::o;10022:272::-;10231:17;:15;560:7600:24;;;;;;;10231:17:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;3832:45:39;10231:17:38;;;10022:272;560:7600:24;3832:45:39;560:7600:24;3832:45:39;560:7600:24;;10268:19:38;560:7600:24;;3832:45:39;560:7600:24;10268:9:38;560:7600:24;10231:17:38;10268:9;;560:7600:24;:::i;:::-;;;;;;;;;;;;10268:19:38;;10231:17;10268:19;;;:::i;:::-;;;;;;;;;;3832:45:39;10268:19:38;;;10022:272;10267:20;;;10022:272;:::o;10268:19::-;;;;;;-1:-1:-1;10268:19:38;;;;;;:::i;:::-;;;;;;560:7600:24;;;3832:45:39;560:7600:24;;;;;10231:17:38;;;;;;;;;;;;;;;:::i;:::-;;;560:7600:24;;;;;;10231:17:38;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":847,"length":20},{"start":6825,"length":20}]}}},"methodIdentifiers":{"appliedTopDownNonce()":"8789f83b","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpoint(uint64)":"b45ff172","bottomUpMessages(uint64)":"b932488f","bottomUpNonce()":"41b6a2e8","crossMsgFee()":"24729425","getAppliedTopDownNonce((uint64,address[]))":"9e530b57","getBottomUpRetentionHeight()":"3e37cfa2","getCheckpointCurrentWeight(uint64)":"f7ceaf76","getCheckpointInfo(uint64)":"4512ff63","getCurrentBottomUpCheckpoint()":"d6c5c397","getCurrentConfigurationNumber()":"544dddff","getCurrentMembership()":"6ad21bb0","getIncompleteCheckpointHeights()":"a517218f","getIncompleteCheckpoints()":"97042766","getLastConfigurationNumber()":"b1ba49b0","getLastMembership()":"f3229131","getLatestParentFinality()":"0338150f","getNetworkName()":"94074b03","getParentFinality(uint256)":"7edeac92","getQuorumThreshold(uint256)":"06572c1a","getSignatureBundle(uint64)":"ad8c4f74","getSubnet((uint64,address[]))":"c66c66a1","getSubnetTopDownMsgsLength((uint64,address[]))":"9d3070b5","listSubnets()":"5d029685","majorityPercentage()":"599c7bd1","minStake()":"375b3c0a","postbox(bytes32)":"8cfd78e7","subnets(bytes32)":"02e30f9a","totalSubnets()":"a2b67158"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpoint\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"bottomUpMessages\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBottomUpRetentionHeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"h\",\"type\":\"uint64\"}],\"name\":\"getCheckpointCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"h\",\"type\":\"uint64\"}],\"name\":\"getCheckpointInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct CheckpointInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBottomUpCheckpoint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpointHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"getQuorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"h\",\"type\":\"uint64\"}],\"name\":\"getSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"ch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct CheckpointInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"- The subnet id to fetch messages from\"}},\"getCurrentBottomUpCheckpoint()\":{\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"epoch\":\"- the epoch of the checkpoint\",\"exists\":\"- whether the checkpoint exists\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet\"},\"returns\":{\"_0\":\"found whether the subnet exists\",\"_1\":\"subnet - the subnet struct\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"subnet - the list of subnets\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Get the latest applied top down nonce\"},\"getBottomUpRetentionHeight()\":{\"notice\":\"get the bottom-up checkpoint retention index\"},\"getCheckpointCurrentWeight(uint64)\":{\"notice\":\"get the checkpoint current weight corresponding to the block height\"},\"getCheckpointInfo(uint64)\":{\"notice\":\"get the checkpoint information corresponding to the block height\"},\"getCurrentBottomUpCheckpoint()\":{\"notice\":\"returns the current bottom-up checkpoint\"},\"getCurrentConfigurationNumber()\":{\"notice\":\"get the current configuration number\"},\"getCurrentMembership()\":{\"notice\":\"get the current membership\"},\"getIncompleteCheckpointHeights()\":{\"notice\":\"get the incomplete checkpoint heights\"},\"getIncompleteCheckpoints()\":{\"notice\":\"get the incomplete checkpoints\"},\"getLastConfigurationNumber()\":{\"notice\":\"get the last configuration number received from the parent\"},\"getLastMembership()\":{\"notice\":\"get the last membership received from the parent\"},\"getQuorumThreshold(uint256)\":{\"notice\":\"Calculate the threshold required for quorum in this subnet based on the configured majority percentage and the total weight of the validators.\"},\"getSignatureBundle(uint64)\":{\"notice\":\"get the checkpoint signature bundle consisting of the checkpoint, its info, signatories and the corresponding signatures.\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"returns the subnet with the given id\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"get number of top-down messages for the given subnet\"},\"listSubnets()\":{\"notice\":\"returns the list of registered subnets in IPC\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0x9ca852e561acd0b7adb99cb79451207a000760e195d0c5a108dae88bd679168f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://56f82fd1c3f71f48bc46dcbb1b929b0eebf3a40f5767f682a4ac67395b22d7f4\",\"dweb:/ipfs/QmdWENeaGZ4UnYo4wCqR5U9hzGvtUXWzQjYRC6aUp33z5a\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e\",\"dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"appliedTopDownNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"e","type":"uint64"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpoint","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint64","name":"e","type":"uint64"}],"stateMutability":"view","type":"function","name":"bottomUpMessages","outputs":[{"internalType":"struct CrossMsg[]","name":"","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getAppliedTopDownNonce","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBottomUpRetentionHeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"h","type":"uint64"}],"stateMutability":"view","type":"function","name":"getCheckpointCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"h","type":"uint64"}],"stateMutability":"view","type":"function","name":"getCheckpointInfo","outputs":[{"internalType":"struct CheckpointInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBottomUpCheckpoint","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint64","name":"epoch","type":"uint64"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpointHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpoints","outputs":[{"internalType":"struct BottomUpCheckpoint[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNetworkName","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"h","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSignatureBundle","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"ch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"struct CheckpointInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnet","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"struct Subnet","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnetTopDownMsgsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listSubnets","outputs":[{"internalType":"struct Subnet[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"postbox","outputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subnets","outputs":[{"internalType":"struct Subnet","name":"subnet","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSubnets","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"getAppliedTopDownNonce((uint64,address[]))":{"params":{"subnetId":"- The subnet id to fetch messages from"}},"getCurrentBottomUpCheckpoint()":{"returns":{"checkpoint":"- the checkpoint struct","epoch":"- the epoch of the checkpoint","exists":"- whether the checkpoint exists"}},"getSubnet((uint64,address[]))":{"params":{"subnetId":"the id of the subnet"},"returns":{"_0":"found whether the subnet exists","_1":"subnet - the subnet struct"}},"listSubnets()":{"returns":{"_0":"subnet - the list of subnets"}}},"version":1},"userdoc":{"kind":"user","methods":{"getAppliedTopDownNonce((uint64,address[]))":{"notice":"Get the latest applied top down nonce"},"getBottomUpRetentionHeight()":{"notice":"get the bottom-up checkpoint retention index"},"getCheckpointCurrentWeight(uint64)":{"notice":"get the checkpoint current weight corresponding to the block height"},"getCheckpointInfo(uint64)":{"notice":"get the checkpoint information corresponding to the block height"},"getCurrentBottomUpCheckpoint()":{"notice":"returns the current bottom-up checkpoint"},"getCurrentConfigurationNumber()":{"notice":"get the current configuration number"},"getCurrentMembership()":{"notice":"get the current membership"},"getIncompleteCheckpointHeights()":{"notice":"get the incomplete checkpoint heights"},"getIncompleteCheckpoints()":{"notice":"get the incomplete checkpoints"},"getLastConfigurationNumber()":{"notice":"get the last configuration number received from the parent"},"getLastMembership()":{"notice":"get the last membership received from the parent"},"getQuorumThreshold(uint256)":{"notice":"Calculate the threshold required for quorum in this subnet based on the configured majority percentage and the total weight of the validators."},"getSignatureBundle(uint64)":{"notice":"get the checkpoint signature bundle consisting of the checkpoint, its info, signatories and the corresponding signatures."},"getSubnet((uint64,address[]))":{"notice":"returns the subnet with the given id"},"getSubnetTopDownMsgsLength((uint64,address[]))":{"notice":"get number of top-down messages for the given subnet"},"listSubnets()":{"notice":"returns the list of registered subnets in IPC"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayGetterFacet.sol":"GatewayGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0x9ca852e561acd0b7adb99cb79451207a000760e195d0c5a108dae88bd679168f","urls":["bzz-raw://56f82fd1c3f71f48bc46dcbb1b929b0eebf3a40f5767f682a4ac67395b22d7f4","dweb:/ipfs/QmdWENeaGZ4UnYo4wCqR5U9hzGvtUXWzQjYRC6aUp33z5a"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710","urls":["bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e","dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayGetterFacet.sol","id":6819,"exportedSymbols":{"BottomUpCheckpoint":[16133],"CheckpointInfo":[16149],"CrossMsg":[16155],"EnumerableSet":[4602],"GatewayActorStorage":[11147],"GatewayGetterFacet":[6818],"LibGateway":[11023],"Membership":[16341],"ParentFinality":[16116],"StorableMsg":[16172],"Subnet":[16226],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"46:8115:24","nodes":[{"id":6199,"nodeType":"PragmaDirective","src":"46:23:24","nodes":[],"literals":["solidity","0.8",".19"]},{"id":6205,"nodeType":"ImportDirective","src":"71:116:24","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":6200,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"79:8:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6201,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"89:18:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6202,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"109:11:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6203,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"122:14:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6204,"name":"CheckpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16149,"src":"138:14:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6208,"nodeType":"ImportDirective","src":"188:55:24","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":6206,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"196:8:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6207,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16226,"src":"206:6:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6210,"nodeType":"ImportDirective","src":"244:49:24","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":6209,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"252:10:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6212,"nodeType":"ImportDirective","src":"294:49:24","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":11024,"symbolAliases":[{"foreign":{"id":6211,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"302:10:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6214,"nodeType":"ImportDirective","src":"344:70:24","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":6213,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"352:19:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6216,"nodeType":"ImportDirective","src":"415:57:24","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":6215,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"423:14:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6218,"nodeType":"ImportDirective","src":"473:85:24","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6819,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":6217,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"481:13:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6818,"nodeType":"ContractDefinition","src":"560:7600:24","nodes":[{"id":6221,"nodeType":"VariableDeclaration","src":"647:30:24","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"676:1:24","scope":6818,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":6220,"nodeType":"UserDefinedTypeName","pathNode":{"id":6219,"name":"GatewayActorStorage","nameLocations":["647:19:24"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"647:19:24"},"referencedDeclaration":11147,"src":"647:19:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":6225,"nodeType":"UsingForDirective","src":"684:34:24","nodes":[],"global":false,"libraryName":{"id":6222,"name":"SubnetIDHelper","nameLocations":["690:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"690:14:24"},"typeName":{"id":6224,"nodeType":"UserDefinedTypeName","pathNode":{"id":6223,"name":"SubnetID","nameLocations":["709:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"709:8:24"},"referencedDeclaration":16209,"src":"709:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":6229,"nodeType":"UsingForDirective","src":"723:46:24","nodes":[],"global":false,"libraryName":{"id":6226,"name":"EnumerableSet","nameLocations":["729:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4602,"src":"729:13:24"},"typeName":{"id":6228,"nodeType":"UserDefinedTypeName","pathNode":{"id":6227,"name":"EnumerableSet.UintSet","nameLocations":["747:13:24","761:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"747:21:24"},"referencedDeclaration":4472,"src":"747:21:24","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":6233,"nodeType":"UsingForDirective","src":"774:49:24","nodes":[],"global":false,"libraryName":{"id":6230,"name":"EnumerableSet","nameLocations":["780:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4602,"src":"780:13:24"},"typeName":{"id":6232,"nodeType":"UserDefinedTypeName","pathNode":{"id":6231,"name":"EnumerableSet.AddressSet","nameLocations":["798:13:24","812:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"798:24:24"},"referencedDeclaration":4315,"src":"798:24:24","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":6242,"nodeType":"FunctionDefinition","src":"829:95:24","nodes":[],"body":{"id":6241,"nodeType":"Block","src":"884:40:24","nodes":[],"statements":[{"expression":{"expression":{"id":6238,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"901:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"903:14:24","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":11128,"src":"901:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6237,"id":6240,"nodeType":"Return","src":"894:23:24"}]},"functionSelector":"24729425","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgFee","nameLocation":"838:11:24","parameters":{"id":6234,"nodeType":"ParameterList","parameters":[],"src":"849:2:24"},"returnParameters":{"id":6237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6242,"src":"875:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6235,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"874:9:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6251,"nodeType":"FunctionDefinition","src":"930:95:24","nodes":[],"body":{"id":6250,"nodeType":"Block","src":"986:39:24","nodes":[],"statements":[{"expression":{"expression":{"id":6247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1003:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1005:13:24","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":11134,"src":"1003:15:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6246,"id":6249,"nodeType":"Return","src":"996:22:24"}]},"functionSelector":"41b6a2e8","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpNonce","nameLocation":"939:13:24","parameters":{"id":6243,"nodeType":"ParameterList","parameters":[],"src":"952:2:24"},"returnParameters":{"id":6246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6251,"src":"978:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6244,"name":"uint64","nodeType":"ElementaryTypeName","src":"978:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"977:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6260,"nodeType":"FunctionDefinition","src":"1031:93:24","nodes":[],"body":{"id":6259,"nodeType":"Block","src":"1086:38:24","nodes":[],"statements":[{"expression":{"expression":{"id":6256,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1103:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1105:12:24","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":11140,"src":"1103:14:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6255,"id":6258,"nodeType":"Return","src":"1096:21:24"}]},"functionSelector":"a2b67158","implemented":true,"kind":"function","modifiers":[],"name":"totalSubnets","nameLocation":"1040:12:24","parameters":{"id":6252,"nodeType":"ParameterList","parameters":[],"src":"1052:2:24"},"returnParameters":{"id":6255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6260,"src":"1078:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6253,"name":"uint64","nodeType":"ElementaryTypeName","src":"1078:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1077:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6269,"nodeType":"FunctionDefinition","src":"1130:86:24","nodes":[],"body":{"id":6268,"nodeType":"Block","src":"1182:34:24","nodes":[],"statements":[{"expression":{"expression":{"id":6265,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1199:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1201:8:24","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":11125,"src":"1199:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6264,"id":6267,"nodeType":"Return","src":"1192:17:24"}]},"functionSelector":"375b3c0a","implemented":true,"kind":"function","modifiers":[],"name":"minStake","nameLocation":"1139:8:24","parameters":{"id":6261,"nodeType":"ParameterList","parameters":[],"src":"1147:2:24"},"returnParameters":{"id":6264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6269,"src":"1173:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6262,"name":"uint256","nodeType":"ElementaryTypeName","src":"1173:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1172:9:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6278,"nodeType":"FunctionDefinition","src":"1222:107:24","nodes":[],"body":{"id":6277,"nodeType":"Block","src":"1284:45:24","nodes":[],"statements":[{"expression":{"expression":{"id":6274,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1301:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1303:19:24","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":11142,"src":"1301:21:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6273,"id":6276,"nodeType":"Return","src":"1294:28:24"}]},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"1231:19:24","parameters":{"id":6270,"nodeType":"ParameterList","parameters":[],"src":"1250:2:24"},"returnParameters":{"id":6273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6278,"src":"1276:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6271,"name":"uint64","nodeType":"ElementaryTypeName","src":"1276:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1275:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6288,"nodeType":"FunctionDefinition","src":"1335:103:24","nodes":[],"body":{"id":6287,"nodeType":"Block","src":"1401:37:24","nodes":[],"statements":[{"expression":{"expression":{"id":6284,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1418:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1420:11:24","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"1418:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":6283,"id":6286,"nodeType":"Return","src":"1411:20:24"}]},"functionSelector":"94074b03","implemented":true,"kind":"function","modifiers":[],"name":"getNetworkName","nameLocation":"1344:14:24","parameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"1358:2:24"},"returnParameters":{"id":6283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6288,"src":"1384:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":6281,"nodeType":"UserDefinedTypeName","pathNode":{"id":6280,"name":"SubnetID","nameLocations":["1384:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1384:8:24"},"referencedDeclaration":16209,"src":"1384:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1383:17:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6302,"nodeType":"FunctionDefinition","src":"1444:136:24","nodes":[],"body":{"id":6301,"nodeType":"Block","src":"1532:48:24","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":6296,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1549:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1551:19:24","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"1549:21:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":6299,"indexExpression":{"id":6298,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6290,"src":"1571:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1549:24:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"functionReturnParameters":6295,"id":6300,"nodeType":"Return","src":"1542:31:24"}]},"functionSelector":"b45ff172","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpoint","nameLocation":"1453:18:24","parameters":{"id":6291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6290,"mutability":"mutable","name":"e","nameLocation":"1479:1:24","nodeType":"VariableDeclaration","scope":6302,"src":"1472:8:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6289,"name":"uint64","nodeType":"ElementaryTypeName","src":"1472:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1471:10:24"},"returnParameters":{"id":6295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6302,"src":"1505:25:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":6293,"nodeType":"UserDefinedTypeName","pathNode":{"id":6292,"name":"BottomUpCheckpoint","nameLocations":["1505:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1505:18:24"},"referencedDeclaration":16133,"src":"1505:18:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1504:27:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6317,"nodeType":"FunctionDefinition","src":"1586:123:24","nodes":[],"body":{"id":6316,"nodeType":"Block","src":"1664:45:24","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":6311,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1681:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1683:16:24","memberName":"bottomUpMessages","nodeType":"MemberAccess","referencedDeclaration":11094,"src":"1681:18:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg storage ref[] storage ref)"}},"id":6314,"indexExpression":{"id":6313,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6304,"src":"1700:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1681:21:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"functionReturnParameters":6310,"id":6315,"nodeType":"Return","src":"1674:28:24"}]},"functionSelector":"b932488f","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMessages","nameLocation":"1595:16:24","parameters":{"id":6305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6304,"mutability":"mutable","name":"e","nameLocation":"1619:1:24","nodeType":"VariableDeclaration","scope":6317,"src":"1612:8:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6303,"name":"uint64","nodeType":"ElementaryTypeName","src":"1612:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1611:10:24"},"returnParameters":{"id":6310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6317,"src":"1645:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":6307,"nodeType":"UserDefinedTypeName","pathNode":{"id":6306,"name":"CrossMsg","nameLocations":["1645:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1645:8:24"},"referencedDeclaration":16155,"src":"1645:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":6308,"nodeType":"ArrayTypeName","src":"1645:10:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"1644:19:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6331,"nodeType":"FunctionDefinition","src":"1715:159:24","nodes":[],"body":{"id":6330,"nodeType":"Block","src":"1809:65:24","nodes":[],"statements":[{"expression":{"arguments":[{"id":6327,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6319,"src":"1855:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6325,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"1826:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1837:17:24","memberName":"getParentFinality","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"1826:28:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$16116_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":6328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:41:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":6324,"id":6329,"nodeType":"Return","src":"1819:48:24"}]},"functionSelector":"7edeac92","implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"1724:17:24","parameters":{"id":6320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6319,"mutability":"mutable","name":"blockNumber","nameLocation":"1750:11:24","nodeType":"VariableDeclaration","scope":6331,"src":"1742:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1742:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1741:21:24"},"returnParameters":{"id":6324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6331,"src":"1786:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":6322,"nodeType":"UserDefinedTypeName","pathNode":{"id":6321,"name":"ParentFinality","nameLocations":["1786:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"1786:14:24"},"referencedDeclaration":16116,"src":"1786:14:24","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1785:23:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6342,"nodeType":"FunctionDefinition","src":"1880:141:24","nodes":[],"body":{"id":6341,"nodeType":"Block","src":"1961:60:24","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6337,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"1978:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1989:23:24","memberName":"getLatestParentFinality","nodeType":"MemberAccess","referencedDeclaration":10455,"src":"1978:34:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_ParentFinality_$16116_memory_ptr_$","typeString":"function () view returns (struct ParentFinality memory)"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:36:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":6336,"id":6340,"nodeType":"Return","src":"1971:43:24"}]},"functionSelector":"0338150f","implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"1889:23:24","parameters":{"id":6332,"nodeType":"ParameterList","parameters":[],"src":"1912:2:24"},"returnParameters":{"id":6336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6342,"src":"1938:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":6334,"nodeType":"UserDefinedTypeName","pathNode":{"id":6333,"name":"ParentFinality","nameLocations":["1938:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"1938:14:24"},"referencedDeclaration":16116,"src":"1938:14:24","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1937:23:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6360,"nodeType":"FunctionDefinition","src":"2217:196:24","nodes":[],"body":{"id":6359,"nodeType":"Block","src":"2308:105:24","nodes":[],"statements":[{"expression":{"arguments":[{"id":6356,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6346,"src":"2397:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":6354,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"2376:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2387:9:24","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10980,"src":"2376:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":6357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":6353,"id":6358,"nodeType":"Return","src":"2369:37:24"}]},"documentation":{"id":6343,"nodeType":"StructuredDocumentation","src":"2027:185:24","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"functionSelector":"c66c66a1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"2226:9:24","parameters":{"id":6347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6346,"mutability":"mutable","name":"subnetId","nameLocation":"2254:8:24","nodeType":"VariableDeclaration","scope":6360,"src":"2236:26:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":6345,"nodeType":"UserDefinedTypeName","pathNode":{"id":6344,"name":"SubnetID","nameLocations":["2236:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2236:8:24"},"referencedDeclaration":16209,"src":"2236:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2235:28:24"},"returnParameters":{"id":6353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6360,"src":"2287:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6348,"name":"bool","nodeType":"ElementaryTypeName","src":"2287:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6360,"src":"2293:13:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":6351,"nodeType":"UserDefinedTypeName","pathNode":{"id":6350,"name":"Subnet","nameLocations":["2293:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"2293:6:24"},"referencedDeclaration":16226,"src":"2293:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"2286:21:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6374,"nodeType":"FunctionDefinition","src":"2419:109:24","nodes":[],"body":{"id":6373,"nodeType":"Block","src":"2492:36:24","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":6368,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"2509:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2511:7:24","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":11052,"src":"2509:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":6371,"indexExpression":{"id":6370,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6362,"src":"2519:1:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2509:12:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage","typeString":"struct Subnet storage ref"}},"functionReturnParameters":6367,"id":6372,"nodeType":"Return","src":"2502:19:24"}]},"functionSelector":"02e30f9a","implemented":true,"kind":"function","modifiers":[],"name":"subnets","nameLocation":"2428:7:24","parameters":{"id":6363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6362,"mutability":"mutable","name":"h","nameLocation":"2444:1:24","nodeType":"VariableDeclaration","scope":6374,"src":"2436:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2436:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2435:11:24"},"returnParameters":{"id":6367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6366,"mutability":"mutable","name":"subnet","nameLocation":"2484:6:24","nodeType":"VariableDeclaration","scope":6374,"src":"2470:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":6365,"nodeType":"UserDefinedTypeName","pathNode":{"id":6364,"name":"Subnet","nameLocations":["2470:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"2470:6:24"},"referencedDeclaration":16226,"src":"2470:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"2469:22:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6395,"nodeType":"FunctionDefinition","src":"2603:384:24","nodes":[],"body":{"id":6394,"nodeType":"Block","src":"2697:290:24","nodes":[],"statements":[{"assignments":[null,6385],"declarations":[null,{"constant":false,"id":6385,"mutability":"mutable","name":"subnet","nameLocation":"2776:6:24","nodeType":"VariableDeclaration","scope":6394,"src":"2761:21:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":6384,"nodeType":"UserDefinedTypeName","pathNode":{"id":6383,"name":"Subnet","nameLocations":["2761:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"2761:6:24"},"referencedDeclaration":16226,"src":"2761:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":6390,"initialValue":{"arguments":[{"id":6388,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6378,"src":"2807:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":6386,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"2786:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2797:9:24","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10980,"src":"2786:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":6389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2786:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2758:58:24"},{"expression":{"expression":{"id":6391,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6385,"src":"2961:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2968:12:24","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":16217,"src":"2961:19:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6382,"id":6393,"nodeType":"Return","src":"2954:26:24"}]},"documentation":{"id":6375,"nodeType":"StructuredDocumentation","src":"2534:64:24","text":"@notice get number of top-down messages for the given subnet"},"functionSelector":"9d3070b5","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetTopDownMsgsLength","nameLocation":"2612:26:24","parameters":{"id":6379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6378,"mutability":"mutable","name":"subnetId","nameLocation":"2655:8:24","nodeType":"VariableDeclaration","scope":6395,"src":"2639:24:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":6377,"nodeType":"UserDefinedTypeName","pathNode":{"id":6376,"name":"SubnetID","nameLocations":["2639:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2639:8:24"},"referencedDeclaration":16209,"src":"2639:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2638:26:24"},"returnParameters":{"id":6382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6395,"src":"2688:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6380,"name":"uint256","nodeType":"ElementaryTypeName","src":"2688:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2687:9:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6430,"nodeType":"FunctionDefinition","src":"3110:299:24","nodes":[],"body":{"id":6429,"nodeType":"Block","src":"3207:202:24","nodes":[],"statements":[{"assignments":[6407,6410],"declarations":[{"constant":false,"id":6407,"mutability":"mutable","name":"registered","nameLocation":"3223:10:24","nodeType":"VariableDeclaration","scope":6429,"src":"3218:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6406,"name":"bool","nodeType":"ElementaryTypeName","src":"3218:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6410,"mutability":"mutable","name":"subnet","nameLocation":"3250:6:24","nodeType":"VariableDeclaration","scope":6429,"src":"3235:21:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":6409,"nodeType":"UserDefinedTypeName","pathNode":{"id":6408,"name":"Subnet","nameLocations":["3235:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"3235:6:24"},"referencedDeclaration":16226,"src":"3235:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":6415,"initialValue":{"arguments":[{"id":6413,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6399,"src":"3281:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":6411,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"3260:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3271:9:24","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10980,"src":"3260:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":6414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3260:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3217:73:24"},{"condition":{"id":6417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3304:11:24","subExpression":{"id":6416,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6407,"src":"3305:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6423,"nodeType":"IfStatement","src":"3300:59:24","trueBody":{"id":6422,"nodeType":"Block","src":"3317:42:24","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":6418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3339:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":6419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3346:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":6420,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3338:10:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":6405,"id":6421,"nodeType":"Return","src":"3331:17:24"}]}},{"expression":{"components":[{"hexValue":"74727565","id":6424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3376:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":6425,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6410,"src":"3382:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3389:12:24","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":16217,"src":"3382:19:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":6427,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3375:27:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"functionReturnParameters":6405,"id":6428,"nodeType":"Return","src":"3368:34:24"}]},"documentation":{"id":6396,"nodeType":"StructuredDocumentation","src":"2993:112:24","text":"@notice Get the latest applied top down nonce\n @param subnetId - The subnet id to fetch messages from"},"functionSelector":"9e530b57","implemented":true,"kind":"function","modifiers":[],"name":"getAppliedTopDownNonce","nameLocation":"3119:22:24","parameters":{"id":6400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6399,"mutability":"mutable","name":"subnetId","nameLocation":"3160:8:24","nodeType":"VariableDeclaration","scope":6430,"src":"3142:26:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":6398,"nodeType":"UserDefinedTypeName","pathNode":{"id":6397,"name":"SubnetID","nameLocations":["3142:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"3142:8:24"},"referencedDeclaration":16209,"src":"3142:8:24","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3141:28:24"},"returnParameters":{"id":6405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6430,"src":"3193:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6401,"name":"bool","nodeType":"ElementaryTypeName","src":"3193:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6430,"src":"3199:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6403,"name":"uint64","nodeType":"ElementaryTypeName","src":"3199:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3192:14:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6439,"nodeType":"FunctionDefinition","src":"3415:107:24","nodes":[],"body":{"id":6438,"nodeType":"Block","src":"3477:45:24","nodes":[],"statements":[{"expression":{"expression":{"id":6435,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"3494:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3496:19:24","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":11137,"src":"3494:21:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6434,"id":6437,"nodeType":"Return","src":"3487:28:24"}]},"functionSelector":"8789f83b","implemented":true,"kind":"function","modifiers":[],"name":"appliedTopDownNonce","nameLocation":"3424:19:24","parameters":{"id":6431,"nodeType":"ParameterList","parameters":[],"src":"3443:2:24"},"returnParameters":{"id":6434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6439,"src":"3469:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6432,"name":"uint64","nodeType":"ElementaryTypeName","src":"3469:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3468:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6462,"nodeType":"FunctionDefinition","src":"3528:168:24","nodes":[],"body":{"id":6461,"nodeType":"Block","src":"3626:70:24","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"expression":{"id":6449,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"3644:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3646:7:24","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":11067,"src":"3644:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":6452,"indexExpression":{"id":6451,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6441,"src":"3654:2:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3644:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage","typeString":"struct CrossMsg storage ref"}},"id":6453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3658:7:24","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3644:21:24","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage","typeString":"struct StorableMsg storage ref"}},{"expression":{"baseExpression":{"expression":{"id":6454,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"3667:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3669:7:24","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":11067,"src":"3667:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":6457,"indexExpression":{"id":6456,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6441,"src":"3677:2:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3667:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage","typeString":"struct CrossMsg storage ref"}},"id":6458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3681:7:24","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":16154,"src":"3667:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3643:46:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_StorableMsg_$16172_storage_$_t_bool_$","typeString":"tuple(struct StorableMsg storage ref,bool)"}},"functionReturnParameters":6448,"id":6460,"nodeType":"Return","src":"3636:53:24"}]},"functionSelector":"8cfd78e7","implemented":true,"kind":"function","modifiers":[],"name":"postbox","nameLocation":"3537:7:24","parameters":{"id":6442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6441,"mutability":"mutable","name":"id","nameLocation":"3553:2:24","nodeType":"VariableDeclaration","scope":6462,"src":"3545:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3545:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3544:12:24"},"returnParameters":{"id":6448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6445,"mutability":"mutable","name":"storableMsg","nameLocation":"3599:11:24","nodeType":"VariableDeclaration","scope":6462,"src":"3580:30:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg"},"typeName":{"id":6444,"nodeType":"UserDefinedTypeName","pathNode":{"id":6443,"name":"StorableMsg","nameLocations":["3580:11:24"],"nodeType":"IdentifierPath","referencedDeclaration":16172,"src":"3580:11:24"},"referencedDeclaration":16172,"src":"3580:11:24","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":6447,"mutability":"mutable","name":"wrapped","nameLocation":"3617:7:24","nodeType":"VariableDeclaration","scope":6462,"src":"3612:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6446,"name":"bool","nodeType":"ElementaryTypeName","src":"3612:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3579:46:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6471,"nodeType":"FunctionDefinition","src":"3702:105:24","nodes":[],"body":{"id":6470,"nodeType":"Block","src":"3763:44:24","nodes":[],"statements":[{"expression":{"expression":{"id":6467,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"3780:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3782:18:24","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"3780:20:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":6466,"id":6469,"nodeType":"Return","src":"3773:27:24"}]},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"3711:18:24","parameters":{"id":6463,"nodeType":"ParameterList","parameters":[],"src":"3729:2:24"},"returnParameters":{"id":6466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6471,"src":"3755:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6464,"name":"uint64","nodeType":"ElementaryTypeName","src":"3755:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3754:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6528,"nodeType":"FunctionDefinition","src":"3920:371:24","nodes":[],"body":{"id":6527,"nodeType":"Block","src":"3983:308:24","nodes":[],"statements":[{"assignments":[6480],"declarations":[{"constant":false,"id":6480,"mutability":"mutable","name":"size","nameLocation":"4001:4:24","nodeType":"VariableDeclaration","scope":6527,"src":"3993:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6479,"name":"uint256","nodeType":"ElementaryTypeName","src":"3993:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6484,"initialValue":{"expression":{"expression":{"id":6481,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4008:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4010:10:24","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":11118,"src":"4008:12:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4021:6:24","memberName":"length","nodeType":"MemberAccess","src":"4008:19:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3993:34:24"},{"assignments":[6489],"declarations":[{"constant":false,"id":6489,"mutability":"mutable","name":"out","nameLocation":"4053:3:24","nodeType":"VariableDeclaration","scope":6527,"src":"4037:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":6487,"nodeType":"UserDefinedTypeName","pathNode":{"id":6486,"name":"Subnet","nameLocations":["4037:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"4037:6:24"},"referencedDeclaration":16226,"src":"4037:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"id":6488,"nodeType":"ArrayTypeName","src":"4037:8:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"id":6496,"initialValue":{"arguments":[{"id":6494,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6480,"src":"4072:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4059:12:24","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$16226_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Subnet memory[] memory)"},"typeName":{"baseType":{"id":6491,"nodeType":"UserDefinedTypeName","pathNode":{"id":6490,"name":"Subnet","nameLocations":["4063:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"4063:6:24"},"referencedDeclaration":16226,"src":"4063:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"id":6492,"nodeType":"ArrayTypeName","src":"4063:8:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}}},"id":6495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:18:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4037:40:24"},{"body":{"id":6523,"nodeType":"Block","src":"4115:150:24","statements":[{"assignments":[6504],"declarations":[{"constant":false,"id":6504,"mutability":"mutable","name":"key","nameLocation":"4137:3:24","nodeType":"VariableDeclaration","scope":6523,"src":"4129:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4129:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6509,"initialValue":{"baseExpression":{"expression":{"id":6505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4143:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4145:10:24","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":11118,"src":"4143:12:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6508,"indexExpression":{"id":6507,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"4156:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4143:15:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4129:29:24"},{"expression":{"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6510,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6489,"src":"4172:3:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"id":6512,"indexExpression":{"id":6511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"4176:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4172:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":6513,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4181:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4183:7:24","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":11052,"src":"4181:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":6516,"indexExpression":{"id":6515,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"4191:3:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4181:14:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage","typeString":"struct Subnet storage ref"}},"src":"4172:23:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_memory_ptr","typeString":"struct Subnet memory"}},"id":6518,"nodeType":"ExpressionStatement","src":"4172:23:24"},{"id":6522,"nodeType":"UncheckedBlock","src":"4209:46:24","statements":[{"expression":{"id":6520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4237:3:24","subExpression":{"id":6519,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"4239:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6521,"nodeType":"ExpressionStatement","src":"4237:3:24"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"4103:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6501,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6480,"src":"4107:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4103:8:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6524,"initializationExpression":{"assignments":[6498],"declarations":[{"constant":false,"id":6498,"mutability":"mutable","name":"i","nameLocation":"4100:1:24","nodeType":"VariableDeclaration","scope":6524,"src":"4092:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6497,"name":"uint256","nodeType":"ElementaryTypeName","src":"4092:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6499,"nodeType":"VariableDeclarationStatement","src":"4092:9:24"},"nodeType":"ForStatement","src":"4087:178:24"},{"expression":{"id":6525,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6489,"src":"4281:3:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"functionReturnParameters":6478,"id":6526,"nodeType":"Return","src":"4274:10:24"}]},"documentation":{"id":6472,"nodeType":"StructuredDocumentation","src":"3813:102:24","text":"@notice returns the list of registered subnets in IPC\n @return subnet - the list of subnets"},"functionSelector":"5d029685","implemented":true,"kind":"function","modifiers":[],"name":"listSubnets","nameLocation":"3929:11:24","parameters":{"id":6473,"nodeType":"ParameterList","parameters":[],"src":"3940:2:24"},"returnParameters":{"id":6478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6528,"src":"3966:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":6475,"nodeType":"UserDefinedTypeName","pathNode":{"id":6474,"name":"Subnet","nameLocations":["3966:6:24"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"3966:6:24"},"referencedDeclaration":16226,"src":"3966:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"id":6476,"nodeType":"ArrayTypeName","src":"3966:8:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$16226_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"src":"3965:17:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6539,"nodeType":"FunctionDefinition","src":"4362:111:24","nodes":[],"body":{"id":6538,"nodeType":"Block","src":"4433:40:24","nodes":[],"statements":[{"expression":{"expression":{"id":6535,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4450:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4452:14:24","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"4450:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":6534,"id":6537,"nodeType":"Return","src":"4443:23:24"}]},"documentation":{"id":6529,"nodeType":"StructuredDocumentation","src":"4297:60:24","text":"@notice get the last membership received from the parent"},"functionSelector":"f3229131","implemented":true,"kind":"function","modifiers":[],"name":"getLastMembership","nameLocation":"4371:17:24","parameters":{"id":6530,"nodeType":"ParameterList","parameters":[],"src":"4388:2:24"},"returnParameters":{"id":6534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6539,"src":"4414:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":6532,"nodeType":"UserDefinedTypeName","pathNode":{"id":6531,"name":"Membership","nameLocations":["4414:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"4414:10:24"},"referencedDeclaration":16341,"src":"4414:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"4413:19:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6550,"nodeType":"FunctionDefinition","src":"4554:129:24","nodes":[],"body":{"id":6549,"nodeType":"Block","src":"4623:60:24","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":6545,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4640:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4642:14:24","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"4640:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":6547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4657:19:24","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"4640:36:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6544,"id":6548,"nodeType":"Return","src":"4633:43:24"}]},"documentation":{"id":6540,"nodeType":"StructuredDocumentation","src":"4479:70:24","text":"@notice get the last configuration number received from the parent"},"functionSelector":"b1ba49b0","implemented":true,"kind":"function","modifiers":[],"name":"getLastConfigurationNumber","nameLocation":"4563:26:24","parameters":{"id":6541,"nodeType":"ParameterList","parameters":[],"src":"4589:2:24"},"returnParameters":{"id":6544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6550,"src":"4615:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6542,"name":"uint64","nodeType":"ElementaryTypeName","src":"4615:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4614:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6561,"nodeType":"FunctionDefinition","src":"4732:117:24","nodes":[],"body":{"id":6560,"nodeType":"Block","src":"4806:43:24","nodes":[],"statements":[{"expression":{"expression":{"id":6557,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4823:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4825:17:24","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"4823:19:24","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":6556,"id":6559,"nodeType":"Return","src":"4816:26:24"}]},"documentation":{"id":6551,"nodeType":"StructuredDocumentation","src":"4689:38:24","text":"@notice get the current membership"},"functionSelector":"6ad21bb0","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentMembership","nameLocation":"4741:20:24","parameters":{"id":6552,"nodeType":"ParameterList","parameters":[],"src":"4761:2:24"},"returnParameters":{"id":6556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6561,"src":"4787:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":6554,"nodeType":"UserDefinedTypeName","pathNode":{"id":6553,"name":"Membership","nameLocations":["4787:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"4787:10:24"},"referencedDeclaration":16341,"src":"4787:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"4786:19:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6572,"nodeType":"FunctionDefinition","src":"4908:135:24","nodes":[],"body":{"id":6571,"nodeType":"Block","src":"4980:63:24","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":6567,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"4997:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4999:17:24","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"4997:19:24","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":6569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5017:19:24","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"4997:39:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6566,"id":6570,"nodeType":"Return","src":"4990:46:24"}]},"documentation":{"id":6562,"nodeType":"StructuredDocumentation","src":"4855:48:24","text":"@notice get the current configuration number"},"functionSelector":"544dddff","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentConfigurationNumber","nameLocation":"4917:29:24","parameters":{"id":6563,"nodeType":"ParameterList","parameters":[],"src":"4946:2:24"},"returnParameters":{"id":6566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6572,"src":"4972:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6564,"name":"uint64","nodeType":"ElementaryTypeName","src":"4972:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4971:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6587,"nodeType":"FunctionDefinition","src":"5130:134:24","nodes":[],"body":{"id":6586,"nodeType":"Block","src":"5213:51:24","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":6581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"5230:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5232:22:24","memberName":"bottomUpCheckpointInfo","nodeType":"MemberAccess","referencedDeclaration":11087,"src":"5230:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo storage ref)"}},"id":6584,"indexExpression":{"id":6583,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"5255:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5230:27:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"functionReturnParameters":6580,"id":6585,"nodeType":"Return","src":"5223:34:24"}]},"documentation":{"id":6573,"nodeType":"StructuredDocumentation","src":"5049:76:24","text":"@notice get the checkpoint information corresponding to the block height"},"functionSelector":"4512ff63","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointInfo","nameLocation":"5139:17:24","parameters":{"id":6576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6575,"mutability":"mutable","name":"h","nameLocation":"5164:1:24","nodeType":"VariableDeclaration","scope":6587,"src":"5157:8:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6574,"name":"uint64","nodeType":"ElementaryTypeName","src":"5157:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5156:10:24"},"returnParameters":{"id":6580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6587,"src":"5190:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo"},"typeName":{"id":6578,"nodeType":"UserDefinedTypeName","pathNode":{"id":6577,"name":"CheckpointInfo","nameLocations":["5190:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"5190:14:24"},"referencedDeclaration":16149,"src":"5190:14:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}},"visibility":"internal"}],"src":"5189:23:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6602,"nodeType":"FunctionDefinition","src":"5354:143:24","nodes":[],"body":{"id":6601,"nodeType":"Block","src":"5432:65:24","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"id":6595,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"5449:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5451:22:24","memberName":"bottomUpCheckpointInfo","nodeType":"MemberAccess","referencedDeclaration":11087,"src":"5449:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo storage ref)"}},"id":6598,"indexExpression":{"id":6597,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"5474:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5449:27:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"id":6599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5477:13:24","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"5449:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6594,"id":6600,"nodeType":"Return","src":"5442:48:24"}]},"documentation":{"id":6588,"nodeType":"StructuredDocumentation","src":"5270:79:24","text":"@notice get the checkpoint current weight corresponding to the block height"},"functionSelector":"f7ceaf76","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointCurrentWeight","nameLocation":"5363:26:24","parameters":{"id":6591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6590,"mutability":"mutable","name":"h","nameLocation":"5397:1:24","nodeType":"VariableDeclaration","scope":6602,"src":"5390:8:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6589,"name":"uint64","nodeType":"ElementaryTypeName","src":"5390:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5389:10:24"},"returnParameters":{"id":6594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6602,"src":"5423:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6592,"name":"uint256","nodeType":"ElementaryTypeName","src":"5423:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5422:9:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6615,"nodeType":"FunctionDefinition","src":"5557:139:24","nodes":[],"body":{"id":6614,"nodeType":"Block","src":"5640:56:24","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6609,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"5657:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5659:21:24","memberName":"incompleteCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11101,"src":"5657:23:24","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":6611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5681:6:24","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":4601,"src":"5657:30:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$4472_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$4472_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":6612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5657:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":6608,"id":6613,"nodeType":"Return","src":"5650:39:24"}]},"documentation":{"id":6603,"nodeType":"StructuredDocumentation","src":"5503:49:24","text":"@notice get the incomplete checkpoint heights"},"functionSelector":"a517218f","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpointHeights","nameLocation":"5566:30:24","parameters":{"id":6604,"nodeType":"ParameterList","parameters":[],"src":"5596:2:24"},"returnParameters":{"id":6608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6615,"src":"5622:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6605,"name":"uint256","nodeType":"ElementaryTypeName","src":"5622:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6606,"nodeType":"ArrayTypeName","src":"5622:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5621:18:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6679,"nodeType":"FunctionDefinition","src":"5749:492:24","nodes":[],"body":{"id":6678,"nodeType":"Block","src":"5837:404:24","nodes":[],"statements":[{"assignments":[6627],"declarations":[{"constant":false,"id":6627,"mutability":"mutable","name":"heights","nameLocation":"5864:7:24","nodeType":"VariableDeclaration","scope":6678,"src":"5847:24:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6625,"name":"uint256","nodeType":"ElementaryTypeName","src":"5847:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6626,"nodeType":"ArrayTypeName","src":"5847:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":6632,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"5874:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5876:21:24","memberName":"incompleteCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11101,"src":"5874:23:24","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":6630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5898:6:24","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":4601,"src":"5874:30:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$4472_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$4472_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":6631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5874:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5847:59:24"},{"assignments":[6634],"declarations":[{"constant":false,"id":6634,"mutability":"mutable","name":"size","nameLocation":"5924:4:24","nodeType":"VariableDeclaration","scope":6678,"src":"5916:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6633,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6637,"initialValue":{"expression":{"id":6635,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"5931:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5939:6:24","memberName":"length","nodeType":"MemberAccess","src":"5931:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5916:29:24"},{"assignments":[6642],"declarations":[{"constant":false,"id":6642,"mutability":"mutable","name":"checkpoints","nameLocation":"5984:11:24","nodeType":"VariableDeclaration","scope":6678,"src":"5956:39:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":6640,"nodeType":"UserDefinedTypeName","pathNode":{"id":6639,"name":"BottomUpCheckpoint","nameLocations":["5956:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"5956:18:24"},"referencedDeclaration":16133,"src":"5956:18:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":6641,"nodeType":"ArrayTypeName","src":"5956:20:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"id":6649,"initialValue":{"arguments":[{"id":6647,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"6023:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5998:24:24","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpCheckpoint memory[] memory)"},"typeName":{"baseType":{"id":6644,"nodeType":"UserDefinedTypeName","pathNode":{"id":6643,"name":"BottomUpCheckpoint","nameLocations":["6002:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"6002:18:24"},"referencedDeclaration":16133,"src":"6002:18:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":6645,"nodeType":"ArrayTypeName","src":"6002:20:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}}},"id":6648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5956:72:24"},{"body":{"id":6674,"nodeType":"Block","src":"6065:142:24","statements":[{"expression":{"id":6668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6656,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6642,"src":"6079:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"id":6658,"indexExpression":{"id":6657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"6091:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6079:14:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":6659,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"6096:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6098:19:24","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"6096:21:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":6667,"indexExpression":{"arguments":[{"baseExpression":{"id":6663,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"6125:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6665,"indexExpression":{"id":6664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"6133:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6125:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6118:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":6661,"name":"uint64","nodeType":"ElementaryTypeName","src":"6118:6:24","typeDescriptions":{}}},"id":6666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6118:18:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6096:41:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"6079:58:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":6669,"nodeType":"ExpressionStatement","src":"6079:58:24"},{"id":6673,"nodeType":"UncheckedBlock","src":"6151:46:24","statements":[{"expression":{"id":6671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6179:3:24","subExpression":{"id":6670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"6181:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":6672,"nodeType":"ExpressionStatement","src":"6179:3:24"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6653,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"6053:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6654,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"6057:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6053:8:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6675,"initializationExpression":{"assignments":[6651],"declarations":[{"constant":false,"id":6651,"mutability":"mutable","name":"i","nameLocation":"6050:1:24","nodeType":"VariableDeclaration","scope":6675,"src":"6043:8:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6650,"name":"uint64","nodeType":"ElementaryTypeName","src":"6043:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":6652,"nodeType":"VariableDeclarationStatement","src":"6043:8:24"},"nodeType":"ForStatement","src":"6038:169:24"},{"expression":{"id":6676,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6642,"src":"6223:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"functionReturnParameters":6622,"id":6677,"nodeType":"Return","src":"6216:18:24"}]},"documentation":{"id":6616,"nodeType":"StructuredDocumentation","src":"5702:42:24","text":"@notice get the incomplete checkpoints"},"functionSelector":"97042766","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpoints","nameLocation":"5758:24:24","parameters":{"id":6617,"nodeType":"ParameterList","parameters":[],"src":"5782:2:24"},"returnParameters":{"id":6622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6679,"src":"5808:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":6619,"nodeType":"UserDefinedTypeName","pathNode":{"id":6618,"name":"BottomUpCheckpoint","nameLocations":["5808:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"5808:18:24"},"referencedDeclaration":16133,"src":"5808:18:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":6620,"nodeType":"ArrayTypeName","src":"5808:20:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$16133_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"src":"5807:29:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6689,"nodeType":"FunctionDefinition","src":"6308:128:24","nodes":[],"body":{"id":6688,"nodeType":"Block","src":"6377:59:24","nodes":[],"statements":[{"expression":{"expression":{"id":6685,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"6394:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6396:33:24","memberName":"bottomUpCheckpointRetentionHeight","nodeType":"MemberAccess","referencedDeclaration":11097,"src":"6394:35:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6684,"id":6687,"nodeType":"Return","src":"6387:42:24"}]},"documentation":{"id":6680,"nodeType":"StructuredDocumentation","src":"6247:56:24","text":"@notice get the bottom-up checkpoint retention index"},"functionSelector":"3e37cfa2","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpRetentionHeight","nameLocation":"6317:26:24","parameters":{"id":6681,"nodeType":"ParameterList","parameters":[],"src":"6343:2:24"},"returnParameters":{"id":6684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6689,"src":"6369:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6682,"name":"uint64","nodeType":"ElementaryTypeName","src":"6369:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6368:8:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6705,"nodeType":"FunctionDefinition","src":"6609:163:24","nodes":[],"body":{"id":6704,"nodeType":"Block","src":"6690:82:24","nodes":[],"statements":[{"expression":{"arguments":[{"id":6699,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6692,"src":"6731:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":6700,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"6744:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6746:18:24","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"6744:20:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6697,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"6707:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6718:12:24","memberName":"weightNeeded","nodeType":"MemberAccess","referencedDeclaration":10998,"src":"6707:23:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":6702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6707:58:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6696,"id":6703,"nodeType":"Return","src":"6700:65:24"}]},"documentation":{"id":6690,"nodeType":"StructuredDocumentation","src":"6442:162:24","text":"@notice Calculate the threshold required for quorum in this subnet\n based on the configured majority percentage and the total weight of the validators."},"functionSelector":"06572c1a","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumThreshold","nameLocation":"6618:18:24","parameters":{"id":6693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6692,"mutability":"mutable","name":"totalWeight","nameLocation":"6645:11:24","nodeType":"VariableDeclaration","scope":6705,"src":"6637:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6691,"name":"uint256","nodeType":"ElementaryTypeName","src":"6637:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6636:21:24"},"returnParameters":{"id":6696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6705,"src":"6681:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"6681:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6680:9:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6791,"nodeType":"FunctionDefinition","src":"6916:733:24","nodes":[],"body":{"id":6790,"nodeType":"Block","src":"7192:457:24","nodes":[],"statements":[{"expression":{"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6723,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"7202:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":6724,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"7207:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7209:19:24","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"7207:21:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":6727,"indexExpression":{"id":6726,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"7229:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7207:24:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"7202:29:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":6729,"nodeType":"ExpressionStatement","src":"7202:29:24"},{"expression":{"id":6735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6730,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6715,"src":"7241:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":6731,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"7248:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7250:22:24","memberName":"bottomUpCheckpointInfo","nodeType":"MemberAccess","referencedDeclaration":11087,"src":"7248:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo storage ref)"}},"id":6734,"indexExpression":{"id":6733,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"7273:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7248:27:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"src":"7241:34:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}},"id":6736,"nodeType":"ExpressionStatement","src":"7241:34:24"},{"expression":{"id":6744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6737,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7285:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":6738,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"7299:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7301:24:24","memberName":"bottomUpSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":11107,"src":"7299:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":6741,"indexExpression":{"id":6740,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"7326:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7299:29:24","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7329:6:24","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":4468,"src":"7299:36:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7299:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"7285:52:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6745,"nodeType":"ExpressionStatement","src":"7285:52:24"},{"assignments":[6747],"declarations":[{"constant":false,"id":6747,"mutability":"mutable","name":"n","nameLocation":"7355:1:24","nodeType":"VariableDeclaration","scope":6790,"src":"7347:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6746,"name":"uint256","nodeType":"ElementaryTypeName","src":"7347:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6750,"initialValue":{"expression":{"id":6748,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7359:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7371:6:24","memberName":"length","nodeType":"MemberAccess","src":"7359:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7347:30:24"},{"expression":{"id":6757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6751,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"7388:10:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6755,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"7413:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7401:11:24","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":6752,"name":"bytes","nodeType":"ElementaryTypeName","src":"7405:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6753,"nodeType":"ArrayTypeName","src":"7405:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":6756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7401:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"7388:27:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":6758,"nodeType":"ExpressionStatement","src":"7388:27:24"},{"body":{"id":6782,"nodeType":"Block","src":"7451:139:24","statements":[{"expression":{"id":6776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6765,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"7465:10:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":6767,"indexExpression":{"id":6766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"7476:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7465:13:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":6768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"7481:1:24","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7483:18:24","memberName":"bottomUpSignatures","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"7481:20:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes storage ref))"}},"id":6771,"indexExpression":{"id":6770,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"7502:1:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7481:23:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":6775,"indexExpression":{"baseExpression":{"id":6772,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7505:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6774,"indexExpression":{"id":6773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"7517:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7505:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7481:39:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"7465:55:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6777,"nodeType":"ExpressionStatement","src":"7465:55:24"},{"id":6781,"nodeType":"UncheckedBlock","src":"7534:46:24","statements":[{"expression":{"id":6779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7562:3:24","subExpression":{"id":6778,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"7564:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6780,"nodeType":"ExpressionStatement","src":"7562:3:24"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"7442:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6763,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"7446:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7442:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6783,"initializationExpression":{"assignments":[6760],"declarations":[{"constant":false,"id":6760,"mutability":"mutable","name":"i","nameLocation":"7439:1:24","nodeType":"VariableDeclaration","scope":6783,"src":"7431:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6759,"name":"uint256","nodeType":"ElementaryTypeName","src":"7431:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6761,"nodeType":"VariableDeclarationStatement","src":"7431:9:24"},"nodeType":"ForStatement","src":"7426:164:24"},{"expression":{"components":[{"id":6784,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"7608:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":6785,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6715,"src":"7612:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}},{"id":6786,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7618:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6787,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"7631:10:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":6788,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7607:35:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$_t_struct$_CheckpointInfo_$16149_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpCheckpoint memory,struct CheckpointInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":6722,"id":6789,"nodeType":"Return","src":"7600:42:24"}]},"documentation":{"id":6706,"nodeType":"StructuredDocumentation","src":"6778:133:24","text":"@notice get the checkpoint signature bundle consisting of the checkpoint, its info, signatories and the corresponding signatures."},"functionSelector":"ad8c4f74","implemented":true,"kind":"function","modifiers":[],"name":"getSignatureBundle","nameLocation":"6925:18:24","parameters":{"id":6709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6708,"mutability":"mutable","name":"h","nameLocation":"6960:1:24","nodeType":"VariableDeclaration","scope":6791,"src":"6953:8:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6707,"name":"uint64","nodeType":"ElementaryTypeName","src":"6953:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6943:24:24"},"returnParameters":{"id":6722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6712,"mutability":"mutable","name":"ch","nameLocation":"7054:2:24","nodeType":"VariableDeclaration","scope":6791,"src":"7028:28:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":6711,"nodeType":"UserDefinedTypeName","pathNode":{"id":6710,"name":"BottomUpCheckpoint","nameLocations":["7028:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"7028:18:24"},"referencedDeclaration":16133,"src":"7028:18:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":6715,"mutability":"mutable","name":"info","nameLocation":"7092:4:24","nodeType":"VariableDeclaration","scope":6791,"src":"7070:26:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo"},"typeName":{"id":6714,"nodeType":"UserDefinedTypeName","pathNode":{"id":6713,"name":"CheckpointInfo","nameLocations":["7070:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"7070:14:24"},"referencedDeclaration":16149,"src":"7070:14:24","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}},"visibility":"internal"},{"constant":false,"id":6718,"mutability":"mutable","name":"signatories","nameLocation":"7127:11:24","nodeType":"VariableDeclaration","scope":6791,"src":"7110:28:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6716,"name":"address","nodeType":"ElementaryTypeName","src":"7110:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6717,"nodeType":"ArrayTypeName","src":"7110:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6721,"mutability":"mutable","name":"signatures","nameLocation":"7167:10:24","nodeType":"VariableDeclaration","scope":6791,"src":"7152:25:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6719,"name":"bytes","nodeType":"ElementaryTypeName","src":"7152:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6720,"nodeType":"ArrayTypeName","src":"7152:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7014:173:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6817,"nodeType":"FunctionDefinition","src":"7870:288:24","nodes":[],"body":{"id":6816,"nodeType":"Block","src":"8026:132:24","nodes":[],"statements":[{"expression":{"id":6809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":6802,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6795,"src":"8037:6:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6803,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6797,"src":"8045:5:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6804,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8052:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":6805,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8036:27:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"tuple(bool,uint64,struct BottomUpCheckpoint memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6806,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"8066:10:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8077:28:24","memberName":"getCurrentBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":10310,"src":"8066:39:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"function () view returns (bool,uint64,struct BottomUpCheckpoint memory)"}},"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8066:41:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"tuple(bool,uint64,struct BottomUpCheckpoint memory)"}},"src":"8036:71:24","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6810,"nodeType":"ExpressionStatement","src":"8036:71:24"},{"expression":{"components":[{"id":6811,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6795,"src":"8125:6:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6812,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6797,"src":"8133:5:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6813,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8140:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":6814,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8124:27:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"tuple(bool,uint64,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":6801,"id":6815,"nodeType":"Return","src":"8117:34:24"}]},"documentation":{"id":6792,"nodeType":"StructuredDocumentation","src":"7655:210:24","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"functionSelector":"d6c5c397","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"7879:28:24","parameters":{"id":6793,"nodeType":"ParameterList","parameters":[],"src":"7907:2:24"},"returnParameters":{"id":6801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6795,"mutability":"mutable","name":"exists","nameLocation":"7962:6:24","nodeType":"VariableDeclaration","scope":6817,"src":"7957:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6794,"name":"bool","nodeType":"ElementaryTypeName","src":"7957:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6797,"mutability":"mutable","name":"epoch","nameLocation":"7977:5:24","nodeType":"VariableDeclaration","scope":6817,"src":"7970:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6796,"name":"uint64","nodeType":"ElementaryTypeName","src":"7970:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":6800,"mutability":"mutable","name":"checkpoint","nameLocation":"8010:10:24","nodeType":"VariableDeclaration","scope":6817,"src":"7984:36:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":6799,"nodeType":"UserDefinedTypeName","pathNode":{"id":6798,"name":"BottomUpCheckpoint","nameLocations":["7984:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"7984:18:24"},"referencedDeclaration":16133,"src":"7984:18:24","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"7956:65:24"},"scope":6818,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6818],"name":"GatewayGetterFacet","nameLocation":"569:18:24","scope":6819,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":24} \ No newline at end of file diff --git a/contracts/out/GatewayManagerFacet.sol/GatewayManagerFacet.json b/contracts/out/GatewayManagerFacet.sol/GatewayManagerFacet.json deleted file mode 100644 index 642653bd74..0000000000 --- a/contracts/out/GatewayManagerFacet.sol/GatewayManagerFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AlreadyRegisteredSubnet","inputs":[]},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"NotEmptySubnetCircSupply","inputs":[]},{"type":"error","name":"NotEnoughFee","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughFundsToRelease","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611bb9908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816318f44b7014610ee35750806341c0e1b514610d6f57806345f5448514610cba5780635a627dbc14610c375780639ba5358014610440578063d8e25572146103005763f207564e1461006c57600080fd5b6020806003193601126102825760043590610087823461128e565b9160135483106102ee576100d29061009d6112d7565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b835233906004840161152f565b0381855af492831561028e576000936102c9575b506100f083611a6e565b906102b75760048101956001600160401b0396878651166001600160401b0319825416179055600582018686015190815191898311610245579088839261013d8299979a9896958461156e565b01906000528660002060005b83811061029a57505050508560029161019c975560038101600160801b60ff60801b19825416179055436001820155015560405180809581946390ba52cf60e01b835286600484015260248301906114d4565b03915af491821561028e5760009261025b575b5050601054600160401b81101561024557600181018060105581101561022f5760106000527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720155601554906102146001600160401b0360881b918360881c166115a4565b60881b1667ffffffffffffffff60881b199190911617601555005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b90809250813d8311610287575b61027281836112b6565b81010312610282575138806101af565b600080fd5b503d610268565b6040513d6000823e3d90fd5b82516001600160a01b0316818301558a9890920191600101610149565b604051631b538cdf60e11b8152600490fd5b6102e79193503d806000833e6102df81836112b6565b8101906114ac565b91386100e6565b604051631036b5ad60e31b8152600490fd5b346102825760208060031936011261028257600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009590600182541461042e5760018255821561041c57610354336119d6565b901561040a578161036a600461038b9301611368565b60405180938192632cff562160e11b835284600484015260248301906114d4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561028e576000926103cc575b6000846103c9876001600160a01b0387166115e4565b55005b90809250813d8311610403575b6103e381836112b6565b81010312610282576000926103fa6103c9926113f3565b918194506103b3565b503d6103d9565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b60031960403682011261028257600435906001600160401b03821161028257604081833603011261028257602435906014548210610c25578134106102ee573415610c13576104d492826104966000943461128e565b906040519586948594632e82508d60e21b865260a060048701526104bc60a487016118a5565b9133602488015286830301604487015260040161183a565b9160648401526084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561028e57600091610bf0575b506001600160401b03601654168015610bda576001600160401b0361052f82824316046115a4565b16026001600160401b038116908103610bc4576001600160401b0360155460081c16606083510152600052600a6020526040600020805490600160401b821015610245576001820180825582101561022f576000526020600020908251805180516001600160401b038151166001600160401b0319600d86028701541617600d850286015560206001600d8602870101910151908151916001600160401b038311610245576020906105e1848461156e565b0190600052602060002060005b838110610ba75750505050602090816002600d86028701019101519060ff82511660ff1982541617905501518051906001600160401b038211610245576003600d85028601015490600182811c92168015610b9d575b60208310146109d45781601f849311610b63575b50602090601f8311600114610ae757600092610adc575b50508160011b916000199060031b1c1916176003600d8402850101555b60208181015180518051600d8602870160048101805467ffffffffffffffff19166001600160401b039384161790559190930151805192936005909201918311610245576020906106dd848461156e565b0190600052602060002060005b838110610abf5750505050602090816006600d86028701019101519060ff82511660ff1982541617905501518051906001600160401b038211610245576007600d85028601015490600182811c92168015610ab5575b60208310146109d45781601f849311610a7b575b50602090601f83116001146109ff576000926109f4575b50508160011b916000199060031b1c1916176007600d8402850101555b60408101516008600d8402850101556009600d83028401016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a600d830284010160a08201518051906001600160401b038211610245578254600181811c911680156109ea575b60208210146109d457601f8111610997575b50602090601f83116001146109235793600d9383600c979460c09460209a98600092610918575b50508160011b916000199060031b1c19161790555b0151600b83830285010155020101910151151560ff8019835416911617905560155468ffffffffffffffff006108996001600160401b038360081c166115a4565b60081b169068ffffffffffffffff001916176015553447106109065760008080803460635af13d15610901573d6108cf816115c9565b906108dd60405192836112b6565b8152600060203d92013e5b156108ef57005b604051633204506f60e01b8152600490fd5b6108e8565b60405163356680b760e01b8152600490fd5b015190508b80610843565b90601f198316918460005260206000209260005b81811061097f57508460c09460209a9894600d9894600c9b9860019510610966575b505050811b019055610858565b015160001960f88460031b161c191690558b8080610959565b92936020600181928786015181550195019301610937565b6109c490846000526020600020601f850160051c810191602086106109ca575b601f0160051c0190611557565b8761081c565b90915081906109b7565b634e487b7160e01b600052602260045260246000fd5b90607f169061080a565b01519050868061076b565b92506007600d86028701016000526020600020906000935b601f1984168510610a60576001945083601f19811610610a47575b505050811b016007600d840285010155610788565b015160001960f88460031b161c19169055868080610a32565b81810151835560209485019460019093019290910190610a17565b610aaf906007600d88028901016000526020600020601f850160051c810191602086106109ca57601f0160051c0190611557565b87610754565b91607f1691610740565b82516001600160a01b0316818301556020909201916001016106ea565b01519050868061066f565b92506003600d86028701016000526020600020906000935b601f1984168510610b48576001945083601f19811610610b2f575b505050811b016003600d84028501015561068c565b015160001960f88460031b161c19169055868080610b1a565b81810151835560209485019460019093019290910190610aff565b610b97906003600d88028901016000526020600020601f850160051c810191602086106109ca57601f0160051c0190611557565b87610658565b91607f1691610644565b82516001600160a01b0316818301556020909201916001016105ee565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b610c0d91503d806000833e610c0581836112b6565b810190611735565b81610507565b6040516360ec4e6b60e11b8152600490fd5b6040516334472ad760e11b8152600490fd5b60003660031901126102825734156102ee57610c52336119d6565b901561040a576003610c653483546115bc565b91828155019081549060ff8260801c166006811015610ca457600214610c8757005b6013541115610c93575b005b60ff60801b1916600160801b179055005b634e487b7160e01b600052602160045260246000fd5b346102825760208060031936011261028257600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009590600182541461042e5760018255821561041c57610d0e336119d6565b901561040a578054848110610d5d5761036a600461038b93610d3188879561128e565b80825560135411610d43575b01611368565b60038101805460ff60801b1916600160811b179055610d3d565b6040516379b33e7960e01b8152600490fd5b3461028257600036600319011261028257610d89336119d6565b901561040a576002810154610ed157805490601554906001600160401b0390600019828460881c1601918211610bc45767ffffffffffffffff60881b1990921660889190911b67ffffffffffffffff60881b1617601555610dec90600401611368565b90610e15604051926390ba52cf60e01b84528380602093849384600484015260248301906114d4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561028e57600090610ea2575b610c9193506000526000815260056040600020600081556000600182015560006002820155600060038201556000600482015501908154906000835581610e87575b505050336115e4565b610e9a9260005260002090810190611557565b828080610e7e565b508083813d8311610eca575b610eb881836112b6565b8101031261028257610c919251610e3c565b503d610eae565b604051637c67c70160e11b8152600490fd5b60031990604036830112610282576001600160401b0391600435838111610282578036036040838201126102825760249384359086821161028257604085833603011261028257341561127f5750604051926379185f5960e11b845260a0600485015260e484019281600401358881168091036102825760a48601528187013590602219018112156102825701856004820135910192878211610282578160051b3603841361028257908085939492604060c486015252610104830191906000905b80821061124d57505050610fce829160009433898501528784830301604485015260040161183a565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561028e57600091611232575b5060209182825101515190600061104e73__$a0fe38a9a81205afccc10810b09a4d3f45$__9361105c604051948593849363089032d560e01b85526040600486015260448501906114d4565b90838203018a8401526118a5565b0381855af490811561028e57600091611217575b5061107a81611a6e565b92901561040a576110e79583600387950180548a6110a08183168060608c5101526115a4565b16906001600160401b0319161790556110c4600260408851015192019182546115bc565b90556040518097819482936304e384ff60e21b84528760048501528301906114d4565b03915af4801561028e576000906111c3575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096935060405192839281845260c06111a282519860408588015261114a8a5160e060608a0152610140890190611949565b611165868c015191605f1992838b83030160808c0152611949565b9160408c015160a08a015260608c0151168489015263ffffffff60e01b60808c01511660e089015260a08b01519088830301610100890152611924565b9701516101208501520151151560408301526001600160a01b0316930390a2005b508183813d8311611210575b6111d981836112b6565b810103126102825761120b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096936113f3565b6110f9565b503d6111cf565b61122c91503d806000833e6102df81836112b6565b86611070565b61124791503d806000833e610c0581836112b6565b84611002565b919493509184356001600160a01b03811691908290036102825760019181526020809101950192018593949291610fa5565b6360ec4e6b60e11b8152600490fd5b91908203918211610bc457565b604081019081106001600160401b0382111761024557604052565b90601f801991011681019081106001600160401b0382111761024557604052565b604051906112e48261129b565b816001600160401b03601154168152604051809160125480835283602080940160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260005b8682821061134957505050611345925003846112b6565b0152565b85546001600160a01b031684526001958601958995509301920161132e565b906040516113758161129b565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106113c05750505050611345925003846112b6565b83546001600160a01b03168552899550909301929181019181016113a8565b51906001600160401b038216820361028257565b51906001600160a01b038216820361028257565b91909160408184031261028257604051926114218461129b565b8361142b836113df565b8152602091828401516001600160401b0394858211610282570181601f82011215610282578051948511610245578460051b906040519561146e868401886112b6565b865284808701928201019283116102825784809101915b83831061149457505050500152565b819061149f846113f3565b8152019101908490611485565b906020828203126102825781516001600160401b038111610282576114d19201611407565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611512575050505090565b83516001600160a01b031685529381019392810192600101611504565b906115476020919493946040845260408401906114d4565b6001600160a01b03909416910152565b818110611562575050565b60008155600101611557565b90600160401b81116102455781549080835581811061158c57505050565b6115a29260005260206000209182019101611557565b565b9060016001600160401b0380931601918211610bc457565b91908201809211610bc457565b6001600160401b03811161024557601f01601f191660200190565b814710610906576000918291829182916001600160a01b03165af13d1561162f573d61160f816115c9565b9061161d60405192836112b6565b8152600060203d92013e5b156108ef57565b611628565b60005b8381106116475750506000910152565b8181015183820152602001611637565b81601f8201121561028257805161166d816115c9565b9261167b60405194856112b6565b81845260208284010111610282576114d19160208085019101611634565b919060408382031261028257604051926116b28461129b565b838151916001600160401b039283811161028257846116d2918301611407565b8252602081015190838211610282570160408185031261028257604051936116f98561129b565b815160ff811681036102825785526020820151938411610282576020936117209201611657565b828401520152565b5190811515820361028257565b906020828203126102825781516001600160401b039283821161028257019160409283818403126102825783519361176c8561129b565b81518381116102825782019360e0858203126102825781519160e0830183811086821117610245578152855185811161028257826117ab918801611699565b8352602086015185811161028257826117c5918801611699565b602084015280860151908301526117de606086016113df565b606083015260808501516001600160e01b03198116810361028257608083015260a0850151938411610282578461181e60c0926020966118329801611657565b60a0840152015160c0820152845201611728565b602082015290565b803560ff81168091036102825782526020810135601e1982360301811215610282570190602082359201916001600160401b038111610282578036038313610282578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b60408101906001600160401b036011541681526060602091604083820152601254809452019160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444916000905b828210611904575050505090565b83546001600160a01b0316855293840193600193840193909101906118f6565b9060209161193d81518092818552858086019101611634565b601f01601f1916010190565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106119b957505050936040838193816114d197980151908281860391015260ff81511684520151938201520190611924565b82516001600160a01b031688529685019691850191600101611985565b6001600160a01b03811615611a5c576000611a0e916119f36112d7565b60405163aa5106cb60e01b815293849283926004840161152f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561028e57611a3f91600091611a43575b50611a6e565b9091565b611a56913d8091833e6102df81836112b6565b38611a39565b6040516370e4510960e01b8152600490fd5b611aac73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906114d4565b0381865af490811561028e57600091611b54575b5090611b03916000526000815280604060002093611ae060048601611368565b906040518080968194630c133d1360e31b835286600484015260248301906114d4565b03915af490811561028e57600091611b1d575b5090501591565b82813d8311611b4d575b611b3181836112b6565b81010312611b4a5750611b4390611728565b8038611b16565b80fd5b503d611b27565b908282813d8311611b7c575b611b6a81836112b6565b81010312611b4a575051611b03611ac0565b503d611b6056fea2646970667358221220454abc47d4ae3ff27b51e44554a29df4dbfe5b059e46c35a9086fcc3adf32f4c64736f6c63430008130033","sourceMap":"943:5490:25:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1279,"length":20},{"start":4090,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":190,"length":20},{"start":939,"length":20},{"start":3637,"length":20},{"start":4144,"length":20},{"start":6702,"length":20},{"start":6799,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c90816318f44b7014610ee35750806341c0e1b514610d6f57806345f5448514610cba5780635a627dbc14610c375780639ba5358014610440578063d8e25572146103005763f207564e1461006c57600080fd5b6020806003193601126102825760043590610087823461128e565b9160135483106102ee576100d29061009d6112d7565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b835233906004840161152f565b0381855af492831561028e576000936102c9575b506100f083611a6e565b906102b75760048101956001600160401b0396878651166001600160401b0319825416179055600582018686015190815191898311610245579088839261013d8299979a9896958461156e565b01906000528660002060005b83811061029a57505050508560029161019c975560038101600160801b60ff60801b19825416179055436001820155015560405180809581946390ba52cf60e01b835286600484015260248301906114d4565b03915af491821561028e5760009261025b575b5050601054600160401b81101561024557600181018060105581101561022f5760106000527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720155601554906102146001600160401b0360881b918360881c166115a4565b60881b1667ffffffffffffffff60881b199190911617601555005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b90809250813d8311610287575b61027281836112b6565b81010312610282575138806101af565b600080fd5b503d610268565b6040513d6000823e3d90fd5b82516001600160a01b0316818301558a9890920191600101610149565b604051631b538cdf60e11b8152600490fd5b6102e79193503d806000833e6102df81836112b6565b8101906114ac565b91386100e6565b604051631036b5ad60e31b8152600490fd5b346102825760208060031936011261028257600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009590600182541461042e5760018255821561041c57610354336119d6565b901561040a578161036a600461038b9301611368565b60405180938192632cff562160e11b835284600484015260248301906114d4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561028e576000926103cc575b6000846103c9876001600160a01b0387166115e4565b55005b90809250813d8311610403575b6103e381836112b6565b81010312610282576000926103fa6103c9926113f3565b918194506103b3565b503d6103d9565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b60031960403682011261028257600435906001600160401b03821161028257604081833603011261028257602435906014548210610c25578134106102ee573415610c13576104d492826104966000943461128e565b906040519586948594632e82508d60e21b865260a060048701526104bc60a487016118a5565b9133602488015286830301604487015260040161183a565b9160648401526084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561028e57600091610bf0575b506001600160401b03601654168015610bda576001600160401b0361052f82824316046115a4565b16026001600160401b038116908103610bc4576001600160401b0360155460081c16606083510152600052600a6020526040600020805490600160401b821015610245576001820180825582101561022f576000526020600020908251805180516001600160401b038151166001600160401b0319600d86028701541617600d850286015560206001600d8602870101910151908151916001600160401b038311610245576020906105e1848461156e565b0190600052602060002060005b838110610ba75750505050602090816002600d86028701019101519060ff82511660ff1982541617905501518051906001600160401b038211610245576003600d85028601015490600182811c92168015610b9d575b60208310146109d45781601f849311610b63575b50602090601f8311600114610ae757600092610adc575b50508160011b916000199060031b1c1916176003600d8402850101555b60208181015180518051600d8602870160048101805467ffffffffffffffff19166001600160401b039384161790559190930151805192936005909201918311610245576020906106dd848461156e565b0190600052602060002060005b838110610abf5750505050602090816006600d86028701019101519060ff82511660ff1982541617905501518051906001600160401b038211610245576007600d85028601015490600182811c92168015610ab5575b60208310146109d45781601f849311610a7b575b50602090601f83116001146109ff576000926109f4575b50508160011b916000199060031b1c1916176007600d8402850101555b60408101516008600d8402850101556009600d83028401016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a600d830284010160a08201518051906001600160401b038211610245578254600181811c911680156109ea575b60208210146109d457601f8111610997575b50602090601f83116001146109235793600d9383600c979460c09460209a98600092610918575b50508160011b916000199060031b1c19161790555b0151600b83830285010155020101910151151560ff8019835416911617905560155468ffffffffffffffff006108996001600160401b038360081c166115a4565b60081b169068ffffffffffffffff001916176015553447106109065760008080803460635af13d15610901573d6108cf816115c9565b906108dd60405192836112b6565b8152600060203d92013e5b156108ef57005b604051633204506f60e01b8152600490fd5b6108e8565b60405163356680b760e01b8152600490fd5b015190508b80610843565b90601f198316918460005260206000209260005b81811061097f57508460c09460209a9894600d9894600c9b9860019510610966575b505050811b019055610858565b015160001960f88460031b161c191690558b8080610959565b92936020600181928786015181550195019301610937565b6109c490846000526020600020601f850160051c810191602086106109ca575b601f0160051c0190611557565b8761081c565b90915081906109b7565b634e487b7160e01b600052602260045260246000fd5b90607f169061080a565b01519050868061076b565b92506007600d86028701016000526020600020906000935b601f1984168510610a60576001945083601f19811610610a47575b505050811b016007600d840285010155610788565b015160001960f88460031b161c19169055868080610a32565b81810151835560209485019460019093019290910190610a17565b610aaf906007600d88028901016000526020600020601f850160051c810191602086106109ca57601f0160051c0190611557565b87610754565b91607f1691610740565b82516001600160a01b0316818301556020909201916001016106ea565b01519050868061066f565b92506003600d86028701016000526020600020906000935b601f1984168510610b48576001945083601f19811610610b2f575b505050811b016003600d84028501015561068c565b015160001960f88460031b161c19169055868080610b1a565b81810151835560209485019460019093019290910190610aff565b610b97906003600d88028901016000526020600020601f850160051c810191602086106109ca57601f0160051c0190611557565b87610658565b91607f1691610644565b82516001600160a01b0316818301556020909201916001016105ee565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b610c0d91503d806000833e610c0581836112b6565b810190611735565b81610507565b6040516360ec4e6b60e11b8152600490fd5b6040516334472ad760e11b8152600490fd5b60003660031901126102825734156102ee57610c52336119d6565b901561040a576003610c653483546115bc565b91828155019081549060ff8260801c166006811015610ca457600214610c8757005b6013541115610c93575b005b60ff60801b1916600160801b179055005b634e487b7160e01b600052602160045260246000fd5b346102825760208060031936011261028257600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009590600182541461042e5760018255821561041c57610d0e336119d6565b901561040a578054848110610d5d5761036a600461038b93610d3188879561128e565b80825560135411610d43575b01611368565b60038101805460ff60801b1916600160811b179055610d3d565b6040516379b33e7960e01b8152600490fd5b3461028257600036600319011261028257610d89336119d6565b901561040a576002810154610ed157805490601554906001600160401b0390600019828460881c1601918211610bc45767ffffffffffffffff60881b1990921660889190911b67ffffffffffffffff60881b1617601555610dec90600401611368565b90610e15604051926390ba52cf60e01b84528380602093849384600484015260248301906114d4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561028e57600090610ea2575b610c9193506000526000815260056040600020600081556000600182015560006002820155600060038201556000600482015501908154906000835581610e87575b505050336115e4565b610e9a9260005260002090810190611557565b828080610e7e565b508083813d8311610eca575b610eb881836112b6565b8101031261028257610c919251610e3c565b503d610eae565b604051637c67c70160e11b8152600490fd5b60031990604036830112610282576001600160401b0391600435838111610282578036036040838201126102825760249384359086821161028257604085833603011261028257341561127f5750604051926379185f5960e11b845260a0600485015260e484019281600401358881168091036102825760a48601528187013590602219018112156102825701856004820135910192878211610282578160051b3603841361028257908085939492604060c486015252610104830191906000905b80821061124d57505050610fce829160009433898501528784830301604485015260040161183a565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561028e57600091611232575b5060209182825101515190600061104e73__$a0fe38a9a81205afccc10810b09a4d3f45$__9361105c604051948593849363089032d560e01b85526040600486015260448501906114d4565b90838203018a8401526118a5565b0381855af490811561028e57600091611217575b5061107a81611a6e565b92901561040a576110e79583600387950180548a6110a08183168060608c5101526115a4565b16906001600160401b0319161790556110c4600260408851015192019182546115bc565b90556040518097819482936304e384ff60e21b84528760048501528301906114d4565b03915af4801561028e576000906111c3575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096935060405192839281845260c06111a282519860408588015261114a8a5160e060608a0152610140890190611949565b611165868c015191605f1992838b83030160808c0152611949565b9160408c015160a08a015260608c0151168489015263ffffffff60e01b60808c01511660e089015260a08b01519088830301610100890152611924565b9701516101208501520151151560408301526001600160a01b0316930390a2005b508183813d8311611210575b6111d981836112b6565b810103126102825761120b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096936113f3565b6110f9565b503d6111cf565b61122c91503d806000833e6102df81836112b6565b86611070565b61124791503d806000833e610c0581836112b6565b84611002565b919493509184356001600160a01b03811691908290036102825760019181526020809101950192018593949291610fa5565b6360ec4e6b60e11b8152600490fd5b91908203918211610bc457565b604081019081106001600160401b0382111761024557604052565b90601f801991011681019081106001600160401b0382111761024557604052565b604051906112e48261129b565b816001600160401b03601154168152604051809160125480835283602080940160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260005b8682821061134957505050611345925003846112b6565b0152565b85546001600160a01b031684526001958601958995509301920161132e565b906040516113758161129b565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106113c05750505050611345925003846112b6565b83546001600160a01b03168552899550909301929181019181016113a8565b51906001600160401b038216820361028257565b51906001600160a01b038216820361028257565b91909160408184031261028257604051926114218461129b565b8361142b836113df565b8152602091828401516001600160401b0394858211610282570181601f82011215610282578051948511610245578460051b906040519561146e868401886112b6565b865284808701928201019283116102825784809101915b83831061149457505050500152565b819061149f846113f3565b8152019101908490611485565b906020828203126102825781516001600160401b038111610282576114d19201611407565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611512575050505090565b83516001600160a01b031685529381019392810192600101611504565b906115476020919493946040845260408401906114d4565b6001600160a01b03909416910152565b818110611562575050565b60008155600101611557565b90600160401b81116102455781549080835581811061158c57505050565b6115a29260005260206000209182019101611557565b565b9060016001600160401b0380931601918211610bc457565b91908201809211610bc457565b6001600160401b03811161024557601f01601f191660200190565b814710610906576000918291829182916001600160a01b03165af13d1561162f573d61160f816115c9565b9061161d60405192836112b6565b8152600060203d92013e5b156108ef57565b611628565b60005b8381106116475750506000910152565b8181015183820152602001611637565b81601f8201121561028257805161166d816115c9565b9261167b60405194856112b6565b81845260208284010111610282576114d19160208085019101611634565b919060408382031261028257604051926116b28461129b565b838151916001600160401b039283811161028257846116d2918301611407565b8252602081015190838211610282570160408185031261028257604051936116f98561129b565b815160ff811681036102825785526020820151938411610282576020936117209201611657565b828401520152565b5190811515820361028257565b906020828203126102825781516001600160401b039283821161028257019160409283818403126102825783519361176c8561129b565b81518381116102825782019360e0858203126102825781519160e0830183811086821117610245578152855185811161028257826117ab918801611699565b8352602086015185811161028257826117c5918801611699565b602084015280860151908301526117de606086016113df565b606083015260808501516001600160e01b03198116810361028257608083015260a0850151938411610282578461181e60c0926020966118329801611657565b60a0840152015160c0820152845201611728565b602082015290565b803560ff81168091036102825782526020810135601e1982360301811215610282570190602082359201916001600160401b038111610282578036038313610282578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b60408101906001600160401b036011541681526060602091604083820152601254809452019160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444916000905b828210611904575050505090565b83546001600160a01b0316855293840193600193840193909101906118f6565b9060209161193d81518092818552858086019101611634565b601f01601f1916010190565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106119b957505050936040838193816114d197980151908281860391015260ff81511684520151938201520190611924565b82516001600160a01b031688529685019691850191600101611985565b6001600160a01b03811615611a5c576000611a0e916119f36112d7565b60405163aa5106cb60e01b815293849283926004840161152f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561028e57611a3f91600091611a43575b50611a6e565b9091565b611a56913d8091833e6102df81836112b6565b38611a39565b6040516370e4510960e01b8152600490fd5b611aac73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906114d4565b0381865af490811561028e57600091611b54575b5090611b03916000526000815280604060002093611ae060048601611368565b906040518080968194630c133d1360e31b835286600484015260248301906114d4565b03915af490811561028e57600091611b1d575b5090501591565b82813d8311611b4d575b611b3181836112b6565b81010312611b4a5750611b4390611728565b8038611b16565b80fd5b503d611b27565b908282813d8311611b7c575b611b6a81836112b6565b81010312611b4a575051611b03611ac0565b503d611b6056fea2646970667358221220454abc47d4ae3ff27b51e44554a29df4dbfe5b059e46c35a9086fcc3adf32f4c64736f6c63430008130033","sourceMap":"943:5490:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1520:9;:29;:9;;:29;:::i;:::-;943:5490;1576:10;943:5490;1563:23;;1559:77;;1673:40;943:5490;;;:::i;:::-;1673:28;943:5490;1673:28;943:5490;;;;;;;;;;1673:40;;1702:10;1673:40;943:5490;1673:40;;;:::i;:::-;;;;;;;;;;;943:5490;1673:40;;;943:5490;1767:30;;;;:::i;:::-;1808:73;;;943:5490;1891:9;;943:5490;-1:-1:-1;;;;;943:5490:25;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;2039:17;943:5490;;;;;1956:13;;943:5490;;;;;;;;;;;;;2017:12;943:5490;1995:19;;943:5490;2039:17;943:5490;;;;;;;;;;;2105:17;;;943:5490;2105:17;;943:5490;;;;;;:::i;:::-;2105:17;;;;;;;;;943:5490;2105:17;;;943:5490;;;2087:12;943:5490;-1:-1:-1;;;943:5490:25;;;;;;;;;2087:12;943:5490;;;;;;2087:12;943:5490;;;;;2134:14;943:5490;;2134:19;-1:-1:-1;;;;;943:5490:25;;;;;;;2134:19;:::i;:::-;943:5490;;;-1:-1:-1;;;;943:5490:25;;;;;2134:14;943:5490;;;;;;;;;;;;;;;;;;;;;;;;;;2105:17;;;;;;;;;;;;;;;;:::i;:::-;;;943:5490;;;;;2105:17;;;;943:5490;;;;2105:17;;;;;;943:5490;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;1808:73;943:5490;;-1:-1:-1;;;1845:25:25;;943:5490;;1845:25;1673:40;;;;;;;943:5490;1673:40;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1559:77;943:5490;;-1:-1:-1;;;1609:16:25;;943:5490;;1609:16;943:5490;;;;;;;;;;;;;;;247:48:41;;943:5490:25;;;;582:20:41;578:50;;943:5490:25;;;3595:11;;3591:68;;3712:32;3733:10;3712:32;:::i;:::-;3758:11;;3754:70;;3842:9;943:5490;;;3842:9;;943:5490;:::i;:::-;;;;;;;;;;3842:20;;;943:5490;3842:20;;943:5490;;;;;;:::i;:::-;3842:20;:18;;:20;;;;;;;943:5490;3842:20;;;943:5490;;;3874:6;943:5490;-1:-1:-1;;;;;943:5490:25;;3874:6;:::i;:::-;943:5490;;3842:20;;;;;;;;;;;;;;;;:::i;:::-;;;943:5490;;;;;;;3874:6;943:5490;;:::i;:::-;3842:20;;;;;;;;;;;3754:70;943:5490;;-1:-1:-1;;;3792:21:25;;943:5490;;3792:21;3591:68;943:5490;;-1:-1:-1;;;3629:19:25;;943:5490;;3629:19;578:50:41;943:5490:25;;-1:-1:-1;;;611:17:41;;943:5490:25;;611:17:41;943:5490:25;-1:-1:-1;;943:5490:25;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;4162:16:39;943:5490:25;4156:22:39;;4152:74;;4239:9;;:15;4235:69;;4239:9;5914:14:25;5910:138;;943:5490;4239:9:39;;6224:15:25;943:5490;4239:9:39;;6224:15:25;:::i;:::-;943:5490;;;;;;;;;;;6084:188;;943:5490;;6084:188;;943:5490;;;;;;:::i;:::-;6173:10;;943:5490;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6084:188;:14;;:188;;;;;;;943:5490;6084:188;;;943:5490;;-1:-1:-1;;;;;9070:21:38;943:5490:25;;;;;;-1:-1:-1;;;;;10895:39:38;9056:12;;;943:5490:25;;10895:39:38;:::i;:::-;943:5490:25;;-1:-1:-1;;;;;943:5490:25;;;;;;;-1:-1:-1;;;;;9132:15:38;943:5490:25;;;;;9103:20:38;;:26;943:5490:25;;;9158:18:38;943:5490:25;;;;;;;;-1:-1:-1;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;943:5490:25;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;9158:18:38;943:5490:25;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9132:15:38;943:5490:25;;9212:20:38;-1:-1:-1;;;;;943:5490:25;;;;9212:20:38;:::i;:::-;943:5490:25;;;;;;;;9132:15:38;943:5490:25;4239:9:39;13330:21:0;:31;13326:63;;943:5490:25;4239:9:39;;;;943:5490:25;13419:35:0;;943:5490:25;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;13468:8:0;13464:33;;943:5490:25;13464:33:0;943:5490:25;;-1:-1:-1;;;13485:12:0;;943:5490:25;;13485:12:0;943:5490:25;;;13326:63:0;943:5490:25;;-1:-1:-1;;;13370:19:0;;943:5490:25;;13370:19:0;943:5490:25;;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;6138:13;943:5490;;;;;;;;;;;;;;;;;6084:188;;;;;;943:5490;6084:188;;;;;;:::i;:::-;;;;;:::i;:::-;;;;5910:138;943:5490;;-1:-1:-1;;;6015:22:25;;943:5490;;6015:22;4152:74:39;943:5490:25;;-1:-1:-1;;;4201:14:39;;943:5490:25;;4201:14:39;943:5490:25;;;-1:-1:-1;;943:5490:25;;;;2282:9;:14;2278:68;;2399:32;2420:10;2399:32;:::i;:::-;2446:11;;2442:70;;943:5490;2522:25;2282:9;943:5490;;2522:25;:::i;:::-;943:5490;;;;2562:13;943:5490;;;;;;;;;;;;;;;2579:15;2562:32;2558:156;;943:5490;2558:156;2630:10;943:5490;-1:-1:-1;2614:26:25;2610:94;;2558:156;943:5490;2610:94;-1:-1:-1;;;;943:5490:25;-1:-1:-1;;;943:5490:25;;;2610:94;943:5490;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:41;;943:5490:25;;;;582:20:41;578:50;;943:5490:25;;;2988:11;;2984:68;;3105:32;3126:10;3105:32;:::i;:::-;3152:11;;3148:70;;943:5490;;3231:21;;;3227:84;;943:5490;;;3321:22;;;;;;:::i;:::-;943:5490;;;3373:10;943:5490;-1:-1:-1;3354:87:25;;943:5490;3458:9;943:5490;:::i;3354:87::-;943:5490;3399:13;;943:5490;;-1:-1:-1;;;;943:5490:25;-1:-1:-1;;;943:5490:25;;;3354:87;;3227:84;943:5490;;-1:-1:-1;;;3275:25:25;;943:5490;;3275:25;943:5490;;;;;;-1:-1:-1;;943:5490:25;;;;4040:32;4061:10;4040:32;:::i;:::-;4087:11;;4083:70;;4224:17;;;943:5490;4220:86;;943:5490;;;4355:14;943:5490;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;-1:-1:-1;;;;943:5490:25;;;;;;;;-1:-1:-1;;;943:5490:25;;4355:14;943:5490;;;;4402:9;943:5490;:::i;:::-;;;;;;;;;4402:18;;;;;;;;;943:5490;4402:18;;943:5490;;;;;;:::i;:::-;4402:18;:16;;:18;;;;;;943:5490;4402:18;;;943:5490;4462:5;943:5490;;;;;;;;;;;;;;;4373:1;943:5490;;;;4224:17;943:5490;;;;;;;;;;;;;;;;;;;;;;;;;4061:10;;;;4462:5;:::i;943:5490::-;;;;;;;;;;;;:::i;:::-;;;;;;4402:18;;;;;;;;;;;;;;;:::i;:::-;;;943:5490;;;;4462:5;943:5490;;4402:18;;;;;;;4220:86;943:5490;;-1:-1:-1;;;4269:26:25;;943:5490;;4269:26;943:5490;-1:-1:-1;;943:5490:25;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5003:9;:14;4999:135;;943:5490;;;;;;;5170:220;;943:5490;;5170:220;;943:5490;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5251:10;;;943:5490;5251:10;;943:5490;5251:10;;943:5490;;;;;;;;;;;;;;;;:::i;:::-;5003:9;943:5490;;;;;;;;;5170:220;:14;;:220;;;;;;;943:5490;5170:220;;;943:5490;;;8162:20:38;;;;:23;;:32;:37;943:5490:25;;8162:37:38;943:5490:25;;;;;;;;;;;;8162:52:38;;943:5490:25;;8162:52:38;;943:5490:25;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;8162:52:38;;;;;;;;;;943:5490:25;8162:52:38;;;943:5490:25;8268:19:38;;;;:::i;:::-;8302:11;;;8298:70;;943:5490:25;8400:19:38;;943:5490:25;8400:19:38;;;943:5490:25;;;8503:16:38;943:5490:25;;;8430:20:38;943:5490:25;8430:20:38;;:26;943:5490:25;8503:16:38;:::i;:::-;943:5490:25;;-1:-1:-1;;;;;943:5490:25;;;;;8529:47:38;:17;943:5490:25;8550:20:38;;:26;943:5490:25;8529:17:38;;943:5490:25;;;8529:47:38;:::i;:::-;943:5490:25;;;;;;;;;;;;;8619:21:38;;;943:5490:25;8619:21:38;;943:5490:25;;;;;:::i;:::-;8619:21:38;;;;;;;;943:5490:25;8619:21:38;;;943:5490:25;8592:73:38;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;8592:73:38;;;943:5490:25;8619:21:38;;;;;;;;;;;;;;;:::i;:::-;;;943:5490:25;;;;;8592:73:38;943:5490:25;;:::i;:::-;8619:21:38;;;;;;;8162:52;;;;;;943:5490:25;8162:52:38;;;;;;:::i;:::-;;;;5170:220:25;;;;;;943:5490;5170:220;;;;;;:::i;:::-;;;;943:5490;;;;-1:-1:-1;943:5490:25;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:135;-1:-1:-1;;;5101:22:25;;943:5490;;5101:22;943:5490;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1673:13:25;943:5490;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:5490:25;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:5490:25;;-1:-1:-1;943:5490:25;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;:::o;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;943:5490:25;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;943:5490:25;;;;;;;;-1:-1:-1;;;943:5490:25;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;943:5490:25;;-1:-1:-1;943:5490:25;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;943:5490:25;;;;;;-1:-1:-1;;943:5490:25;;;;:::o;13246:258:0:-;13330:21;;:31;13326:63;;13419:35;;;;;;;;-1:-1:-1;;;;;943:5490:25;13419:35:0;;943:5490:25;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:0;943:5490:25;;;;;;13468:8:0;13464:33;;13246:258::o;943:5490:25:-;;;;;;;;;;;-1:-1:-1;;943:5490:25;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:5490:25;;;;;;;;-1:-1:-1;;943:5490:25;;;;:::o;:::-;;;;;-1:-1:-1;;;;;8200:13:38;943:5490:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:5490:25;;;-1:-1:-1;943:5490:25;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;943:5490:25;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;943:5490:25;;;;;;;;;;;;;;;9454:372:38;-1:-1:-1;;;;;943:5490:25;;9637:19:38;9633:78;;3832:45:39;9747:35:38;943:5490:25;;;:::i;:::-;;;-1:-1:-1;;;9747:35:38;;943:5490:25;;;;;9747:35:38;;;;:::i;:::-;;:28;;:35;;;;;;9800:19;9747:35;3832:45:39;9747:35:38;;;9454:372;9800:19;;:::i;:::-;9793:26;;9454:372::o;9747:35::-;;;;;;;;;;;;:::i;:::-;;;;9633:78;943:5490:25;;-1:-1:-1;;;9679:21:38;;;;;10022:272;943:5490:25;10231:15:38;943:5490:25;;;;;;;10231:17:38;;;;;;;;;;;;943:5490:25;;;;;;:::i;:::-;10231:17:38;;;;;;;;;;3832:45:39;10231:17:38;;;10022:272;943:5490:25;;;;3832:45:39;943:5490:25;3832:45:39;943:5490:25;;;;3832:45:39;943:5490:25;10268:9:38;943:5490:25;10231:17:38;10268:9;;943:5490:25;:::i;:::-;;;;;;;;;;;;10268:19:38;;;10231:17;10268:19;;943:5490:25;;;;;;:::i;:::-;10268:19:38;;;;;;;;;3832:45:39;10268:19:38;;;10022:272;10267:20;;;;10022:272;:::o;10268:19::-;;;;;;;;;;;;;:::i;:::-;;;943:5490:25;;;;;;;;:::i;:::-;10268:19:38;;;;943:5490:25;;;10268:19:38;;;;;10231:17;;;;;;;;;;;;;;;:::i;:::-;;;943:5490:25;;;;-1:-1:-1;943:5490:25;;10231:17:38;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1251,"length":20},{"start":4062,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":162,"length":20},{"start":911,"length":20},{"start":3609,"length":20},{"start":4116,"length":20},{"start":6674,"length":20},{"start":6771,"length":20}]}}},"methodIdentifiers":{"addStake()":"5a627dbc","fund((uint64,address[]),(uint8,bytes))":"18f44b70","kill()":"41c0e1b5","register(uint256)":"f207564e","release((uint8,bytes),uint256)":"9ba53580","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"params\":{\"subnetId\":\": the destination subnet for the funds.\",\"to\":\": the address to which to credit funds in the destination subnet.\"}},\"register(uint256)\":{\"details\":\"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds).\"},\"release((uint8,bytes),uint256)\":{\"params\":{\"fee\":\": the fee that validators on the parent subnet get to keep for including this message.\",\"to\":\": the address to which to credit funds in the parent subnet.\"}},\"releaseStake(uint256)\":{\"details\":\"it can be used to release the stake or reward of the validator\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund() credits the received value to the specified address in the specified child subnet. There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.\"},\"kill()\":{\"notice\":\"kill an existing subnet. It's balance must be empty\"},\"register(uint256)\":{\"notice\":\"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes),uint256)\":{\"notice\":\"release() burns the received value and releases them from this subnet onto the parent by committing a bottom-up message.\"},\"releaseStake(uint256)\":{\"notice\":\"release amount for an existing subnetrelease collateral for an existing subnet\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xaa7ba4261154207478831c11cb115e5bce2270835ecb5fbdb499ce55febaa448\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://79f6ac586ec4363903383816c754231e87a5e2f38187319d5766037b039d3e51\",\"dweb:/ipfs/QmZLFg3bBGiRHhraue2tfxUpS7ZWDvTt5tVsRTfzXLJFhL\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e\",\"dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyRegisteredSubnet"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[],"type":"error","name":"NotEmptySubnetCircSupply"},{"inputs":[],"type":"error","name":"NotEnoughFee"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughFundsToRelease"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"}],"devdoc":{"kind":"dev","methods":{"fund((uint64,address[]),(uint8,bytes))":{"params":{"subnetId":": the destination subnet for the funds.","to":": the address to which to credit funds in the destination subnet."}},"register(uint256)":{"details":"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"release((uint8,bytes),uint256)":{"params":{"fee":": the fee that validators on the parent subnet get to keep for including this message.","to":": the address to which to credit funds in the parent subnet."}},"releaseStake(uint256)":{"details":"it can be used to release the stake or reward of the validator"}},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"addStake - add collateral for an existing subnet"},"fund((uint64,address[]),(uint8,bytes))":{"notice":"fund() credits the received value to the specified address in the specified child subnet. There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free."},"kill()":{"notice":"kill an existing subnet. It's balance must be empty"},"register(uint256)":{"notice":"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake"},"release((uint8,bytes),uint256)":{"notice":"release() burns the received value and releases them from this subnet onto the parent by committing a bottom-up message."},"releaseStake(uint256)":{"notice":"release amount for an existing subnetrelease collateral for an existing subnet"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayManagerFacet.sol":"GatewayManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xaa7ba4261154207478831c11cb115e5bce2270835ecb5fbdb499ce55febaa448","urls":["bzz-raw://79f6ac586ec4363903383816c754231e87a5e2f38187319d5766037b039d3e51","dweb:/ipfs/QmZLFg3bBGiRHhraue2tfxUpS7ZWDvTt5tVsRTfzXLJFhL"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710","urls":["bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e","dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayManagerFacet.sol","id":7298,"exportedSymbols":{"AlreadyRegisteredSubnet":[6053],"BURNT_FUNDS_ACTOR":[5535],"CannotReleaseZero":[6057],"CrossMsg":[16155],"CrossMsgHelper":[9299],"FilAddress":[298],"FvmAddress":[16179],"GatewayActorModifiers":[11226],"GatewayManagerFacet":[7297],"InvalidCrossMsgValue":[6099],"LibGateway":[11023],"Membership":[16341],"NotEmptySubnetCircSupply":[6133],"NotEnoughFunds":[6143],"NotEnoughFundsToRelease":[6145],"NotRegisteredSubnet":[6155],"ReentrancyGuard":[11446],"Status":[6047],"Subnet":[16226],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"46:6388:25","nodes":[{"id":6820,"nodeType":"PragmaDirective","src":"46:23:25","nodes":[],"literals":["solidity","0.8",".19"]},{"id":6822,"nodeType":"ImportDirective","src":"71:72:25","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":6821,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11226,"src":"79:21:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6824,"nodeType":"ImportDirective","src":"144:61:25","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":5557,"symbolAliases":[{"foreign":{"id":6823,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"152:17:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6826,"nodeType":"ImportDirective","src":"206:51:25","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":6825,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"214:8:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6828,"nodeType":"ImportDirective","src":"258:43:25","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../enums/Status.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":6048,"symbolAliases":[{"foreign":{"id":6827,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"266:6:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6830,"nodeType":"ImportDirective","src":"302:53:25","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":6829,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"310:10:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6833,"nodeType":"ImportDirective","src":"356:55:25","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":6831,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"364:8:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6832,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16226,"src":"374:6:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6835,"nodeType":"ImportDirective","src":"412:49:25","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":6834,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"420:10:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6843,"nodeType":"ImportDirective","src":"462:193:25","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":6836,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"470:23:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6837,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"495:17:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6838,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"514:14:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6839,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"530:23:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6840,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"555:24:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6841,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"581:19:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6842,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"602:20:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6845,"nodeType":"ImportDirective","src":"656:49:25","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":11024,"symbolAliases":[{"foreign":{"id":6844,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"664:10:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6847,"nodeType":"ImportDirective","src":"706:57:25","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":6846,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"714:14:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6849,"nodeType":"ImportDirective","src":"764:57:25","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":9300,"symbolAliases":[{"foreign":{"id":6848,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"772:14:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6851,"nodeType":"ImportDirective","src":"822:56:25","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":6850,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"830:10:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6853,"nodeType":"ImportDirective","src":"879:62:25","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":7298,"sourceUnit":11447,"symbolAliases":[{"foreign":{"id":6852,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11446,"src":"887:15:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7297,"nodeType":"ContractDefinition","src":"943:5490:25","nodes":[{"id":6860,"nodeType":"UsingForDirective","src":"1020:37:25","nodes":[],"global":false,"libraryName":{"id":6858,"name":"FilAddress","nameLocations":["1026:10:25"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"1026:10:25"},"typeName":{"id":6859,"name":"address","nodeType":"ElementaryTypeName","src":"1041:15:25","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":6864,"nodeType":"UsingForDirective","src":"1062:34:25","nodes":[],"global":false,"libraryName":{"id":6861,"name":"SubnetIDHelper","nameLocations":["1068:14:25"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"1068:14:25"},"typeName":{"id":6863,"nodeType":"UserDefinedTypeName","pathNode":{"id":6862,"name":"SubnetID","nameLocations":["1087:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1087:8:25"},"referencedDeclaration":16209,"src":"1087:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":6961,"nodeType":"FunctionDefinition","src":"1427:733:25","nodes":[],"body":{"id":6960,"nodeType":"Block","src":"1489:671:25","nodes":[],"statements":[{"assignments":[6871],"declarations":[{"constant":false,"id":6871,"mutability":"mutable","name":"collateral","nameLocation":"1507:10:25","nodeType":"VariableDeclaration","scope":6960,"src":"1499:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6870,"name":"uint256","nodeType":"ElementaryTypeName","src":"1499:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6876,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6872,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1520:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:5:25","memberName":"value","nodeType":"MemberAccess","src":"1520:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6874,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"1532:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1520:29:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1499:50:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6877,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6871,"src":"1563:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6878,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"1576:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1578:8:25","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":11125,"src":"1576:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1563:23:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6885,"nodeType":"IfStatement","src":"1559:77:25","trueBody":{"id":6884,"nodeType":"Block","src":"1588:48:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6881,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1609:14:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1609:16:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6883,"nodeType":"RevertStatement","src":"1602:23:25"}]}},{"assignments":[6888],"declarations":[{"constant":false,"id":6888,"mutability":"mutable","name":"subnetId","nameLocation":"1662:8:25","nodeType":"VariableDeclaration","scope":6960,"src":"1646:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":6887,"nodeType":"UserDefinedTypeName","pathNode":{"id":6886,"name":"SubnetID","nameLocations":["1646:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1646:8:25"},"referencedDeclaration":16209,"src":"1646:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":6895,"initialValue":{"arguments":[{"expression":{"id":6892,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1702:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1706:6:25","memberName":"sender","nodeType":"MemberAccess","src":"1702:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":6889,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"1673:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1675:11:25","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"1673:13:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":6891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1687:14:25","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":14293,"src":"1673:28:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":6894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:40:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"1646:67:25"},{"assignments":[6897,6900],"declarations":[{"constant":false,"id":6897,"mutability":"mutable","name":"registered","nameLocation":"1730:10:25","nodeType":"VariableDeclaration","scope":6960,"src":"1725:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6896,"name":"bool","nodeType":"ElementaryTypeName","src":"1725:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6900,"mutability":"mutable","name":"subnet","nameLocation":"1757:6:25","nodeType":"VariableDeclaration","scope":6960,"src":"1742:21:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":6899,"nodeType":"UserDefinedTypeName","pathNode":{"id":6898,"name":"Subnet","nameLocations":["1742:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"1742:6:25"},"referencedDeclaration":16226,"src":"1742:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":6905,"initialValue":{"arguments":[{"id":6903,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6888,"src":"1788:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":6901,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"1767:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1778:9:25","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10980,"src":"1767:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":6904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1767:30:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"1724:73:25"},{"condition":{"id":6906,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"1812:10:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6911,"nodeType":"IfStatement","src":"1808:73:25","trueBody":{"id":6910,"nodeType":"Block","src":"1824:57:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6907,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"1845:23:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6909,"nodeType":"RevertStatement","src":"1838:32:25"}]}},{"expression":{"id":6916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6912,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"1891:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1898:2:25","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":16225,"src":"1891:9:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6915,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6888,"src":"1903:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"src":"1891:20:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":6917,"nodeType":"ExpressionStatement","src":"1891:20:25"},{"expression":{"id":6922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6918,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"1921:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1928:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"1921:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6921,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6871,"src":"1936:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1921:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6923,"nodeType":"ExpressionStatement","src":"1921:25:25"},{"expression":{"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6924,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"1956:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1963:6:25","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16222,"src":"1956:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6927,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"1972:6:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$6047_$","typeString":"type(enum Status)"}},"id":6928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1979:6:25","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":6042,"src":"1972:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"src":"1956:29:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"id":6930,"nodeType":"ExpressionStatement","src":"1956:29:25"},{"expression":{"id":6936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6931,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"1995:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2002:12:25","memberName":"genesisEpoch","nodeType":"MemberAccess","referencedDeclaration":16213,"src":"1995:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6934,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2017:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2023:6:25","memberName":"number","nodeType":"MemberAccess","src":"2017:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1995:34:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6937,"nodeType":"ExpressionStatement","src":"1995:34:25"},{"expression":{"id":6942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6938,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"2039:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2046:10:25","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":16215,"src":"2039:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6941,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"2059:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2039:37:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6943,"nodeType":"ExpressionStatement","src":"2039:37:25"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6949,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6888,"src":"2105:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":6950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2114:6:25","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":14219,"src":"2105:15:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":6951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2105:17:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6944,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"2087:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2089:10:25","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":11118,"src":"2087:12:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2100:4:25","memberName":"push","nodeType":"MemberAccess","src":"2087:17:25","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2087:36:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6953,"nodeType":"ExpressionStatement","src":"2087:36:25"},{"expression":{"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6954,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"2134:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":6956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2136:12:25","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":11140,"src":"2134:14:25","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2134:19:25","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":6959,"nodeType":"ExpressionStatement","src":"2134:19:25"}]},"documentation":{"id":6865,"nodeType":"StructuredDocumentation","src":"1102:320:25","text":"@notice register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\n @dev The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the\n subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"functionSelector":"f207564e","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"1436:8:25","parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6867,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"1453:17:25","nodeType":"VariableDeclaration","scope":6961,"src":"1445:25:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6866,"name":"uint256","nodeType":"ElementaryTypeName","src":"1445:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1444:27:25"},"returnParameters":{"id":6869,"nodeType":"ParameterList","parameters":[],"src":"1489:0:25"},"scope":7297,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":7021,"nodeType":"FunctionDefinition","src":"2231:489:25","nodes":[],"body":{"id":7020,"nodeType":"Block","src":"2268:452:25","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6965,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2282:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2286:5:25","memberName":"value","nodeType":"MemberAccess","src":"2282:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":6967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2295:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2282:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6973,"nodeType":"IfStatement","src":"2278:68:25","trueBody":{"id":6972,"nodeType":"Block","src":"2298:48:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6969,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"2319:14:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:16:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6971,"nodeType":"RevertStatement","src":"2312:23:25"}]}},{"assignments":[6975,6978],"declarations":[{"constant":false,"id":6975,"mutability":"mutable","name":"registered","nameLocation":"2362:10:25","nodeType":"VariableDeclaration","scope":7020,"src":"2357:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6974,"name":"bool","nodeType":"ElementaryTypeName","src":"2357:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6978,"mutability":"mutable","name":"subnet","nameLocation":"2389:6:25","nodeType":"VariableDeclaration","scope":7020,"src":"2374:21:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":6977,"nodeType":"UserDefinedTypeName","pathNode":{"id":6976,"name":"Subnet","nameLocations":["2374:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"2374:6:25"},"referencedDeclaration":16226,"src":"2374:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":6984,"initialValue":{"arguments":[{"expression":{"id":6981,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2420:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2424:6:25","memberName":"sender","nodeType":"MemberAccess","src":"2420:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6979,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"2399:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":6980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2410:9:25","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10943,"src":"2399:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":6983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2399:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2356:75:25"},{"condition":{"id":6986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2446:11:25","subExpression":{"id":6985,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6975,"src":"2447:10:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6991,"nodeType":"IfStatement","src":"2442:70:25","trueBody":{"id":6990,"nodeType":"Block","src":"2459:53:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6987,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"2480:19:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2480:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6989,"nodeType":"RevertStatement","src":"2473:28:25"}]}},{"expression":{"id":6997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6992,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6978,"src":"2522:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":6994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2529:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"2522:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":6995,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2538:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2542:5:25","memberName":"value","nodeType":"MemberAccess","src":"2538:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2522:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6998,"nodeType":"ExpressionStatement","src":"2522:25:25"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6999,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6978,"src":"2562:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2569:6:25","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16222,"src":"2562:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7001,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"2579:6:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$6047_$","typeString":"type(enum Status)"}},"id":7002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2586:8:25","memberName":"Inactive","nodeType":"MemberAccess","referencedDeclaration":6043,"src":"2579:15:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"src":"2562:32:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7019,"nodeType":"IfStatement","src":"2558:156:25","trueBody":{"id":7018,"nodeType":"Block","src":"2596:118:25","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7004,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6978,"src":"2614:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2621:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"2614:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":7006,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"2630:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2632:8:25","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":11125,"src":"2630:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2614:26:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7017,"nodeType":"IfStatement","src":"2610:94:25","trueBody":{"id":7016,"nodeType":"Block","src":"2642:62:25","statements":[{"expression":{"id":7014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7009,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6978,"src":"2660:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2667:6:25","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16222,"src":"2660:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":7012,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"2676:6:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$6047_$","typeString":"type(enum Status)"}},"id":7013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2683:6:25","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":6042,"src":"2676:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"src":"2660:29:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"id":7015,"nodeType":"ExpressionStatement","src":"2660:29:25"}]}}]}}]},"documentation":{"id":6962,"nodeType":"StructuredDocumentation","src":"2166:60:25","text":"@notice addStake - add collateral for an existing subnet"},"functionSelector":"5a627dbc","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"2240:8:25","parameters":{"id":6963,"nodeType":"ParameterList","parameters":[],"src":"2248:2:25"},"returnParameters":{"id":6964,"nodeType":"ParameterList","parameters":[],"src":"2268:0:25"},"scope":7297,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":7096,"nodeType":"FunctionDefinition","src":"2914:590:25","nodes":[],"body":{"id":7095,"nodeType":"Block","src":"2974:530:25","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7029,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"2988:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2998:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2988:11:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7036,"nodeType":"IfStatement","src":"2984:68:25","trueBody":{"id":7035,"nodeType":"Block","src":"3001:51:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7032,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"3022:17:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3022:19:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7034,"nodeType":"RevertStatement","src":"3015:26:25"}]}},{"assignments":[7038,7041],"declarations":[{"constant":false,"id":7038,"mutability":"mutable","name":"registered","nameLocation":"3068:10:25","nodeType":"VariableDeclaration","scope":7095,"src":"3063:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7037,"name":"bool","nodeType":"ElementaryTypeName","src":"3063:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7041,"mutability":"mutable","name":"subnet","nameLocation":"3095:6:25","nodeType":"VariableDeclaration","scope":7095,"src":"3080:21:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":7040,"nodeType":"UserDefinedTypeName","pathNode":{"id":7039,"name":"Subnet","nameLocations":["3080:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"3080:6:25"},"referencedDeclaration":16226,"src":"3080:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":7047,"initialValue":{"arguments":[{"expression":{"id":7044,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3126:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3130:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3126:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7042,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"3105:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3116:9:25","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10943,"src":"3105:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":7046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3105:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3062:75:25"},{"condition":{"id":7049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3152:11:25","subExpression":{"id":7048,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7038,"src":"3153:10:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7054,"nodeType":"IfStatement","src":"3148:70:25","trueBody":{"id":7053,"nodeType":"Block","src":"3165:53:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7050,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"3186:19:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7052,"nodeType":"RevertStatement","src":"3179:28:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7055,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7041,"src":"3231:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3238:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"3231:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7057,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"3246:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3231:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7063,"nodeType":"IfStatement","src":"3227:84:25","trueBody":{"id":7062,"nodeType":"Block","src":"3254:57:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7059,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"3275:23:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3275:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7061,"nodeType":"RevertStatement","src":"3268:32:25"}]}},{"expression":{"id":7068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7064,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7041,"src":"3321:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3328:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"3321:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":7067,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"3337:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3321:22:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7069,"nodeType":"ExpressionStatement","src":"3321:22:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7070,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7041,"src":"3358:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3365:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"3358:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"3373:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3375:8:25","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":11125,"src":"3373:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3358:25:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7083,"nodeType":"IfStatement","src":"3354:87:25","trueBody":{"id":7082,"nodeType":"Block","src":"3385:56:25","statements":[{"expression":{"id":7080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7075,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7041,"src":"3399:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3406:6:25","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16222,"src":"3399:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":7078,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"3415:6:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$6047_$","typeString":"type(enum Status)"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3422:8:25","memberName":"Inactive","nodeType":"MemberAccess","referencedDeclaration":6043,"src":"3415:15:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"src":"3399:31:25","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"id":7081,"nodeType":"ExpressionStatement","src":"3399:31:25"}]}},{"expression":{"arguments":[{"id":7092,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"3490:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":7086,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7041,"src":"3458:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3465:2:25","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":16225,"src":"3458:9:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":7088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3468:8:25","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":14323,"src":"3458:18:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":7089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3458:20:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3450:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7084,"name":"address","nodeType":"ElementaryTypeName","src":"3450:8:25","stateMutability":"payable","typeDescriptions":{}}},"id":7090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:29:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3480:9:25","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":290,"src":"3450:39:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:47:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7094,"nodeType":"ExpressionStatement","src":"3450:47:25"}]},"documentation":{"id":7022,"nodeType":"StructuredDocumentation","src":"2726:183:25","text":"@notice release amount for an existing subnet\n @dev it can be used to release the stake or reward of the validator\n @notice release collateral for an existing subnet"},"functionSelector":"45f54485","implemented":true,"kind":"function","modifiers":[{"id":7027,"kind":"modifierInvocation","modifierName":{"id":7026,"name":"nonReentrant","nameLocations":["2961:12:25"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"2961:12:25"},"nodeType":"ModifierInvocation","src":"2961:12:25"}],"name":"releaseStake","nameLocation":"2923:12:25","parameters":{"id":7025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7024,"mutability":"mutable","name":"amount","nameLocation":"2944:6:25","nodeType":"VariableDeclaration","scope":7096,"src":"2936:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7023,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2935:16:25"},"returnParameters":{"id":7028,"nodeType":"ParameterList","parameters":[],"src":"2974:0:25"},"scope":7297,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":7141,"nodeType":"FunctionDefinition","src":"3510:378:25","nodes":[],"body":{"id":7140,"nodeType":"Block","src":"3581:307:25","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7103,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7098,"src":"3595:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3605:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3595:11:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7110,"nodeType":"IfStatement","src":"3591:68:25","trueBody":{"id":7109,"nodeType":"Block","src":"3608:51:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7106,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"3629:17:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3629:19:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7108,"nodeType":"RevertStatement","src":"3622:26:25"}]}},{"assignments":[7112,7115],"declarations":[{"constant":false,"id":7112,"mutability":"mutable","name":"registered","nameLocation":"3675:10:25","nodeType":"VariableDeclaration","scope":7140,"src":"3670:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7111,"name":"bool","nodeType":"ElementaryTypeName","src":"3670:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7115,"mutability":"mutable","name":"subnet","nameLocation":"3702:6:25","nodeType":"VariableDeclaration","scope":7140,"src":"3687:21:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":7114,"nodeType":"UserDefinedTypeName","pathNode":{"id":7113,"name":"Subnet","nameLocations":["3687:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"3687:6:25"},"referencedDeclaration":16226,"src":"3687:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":7121,"initialValue":{"arguments":[{"expression":{"id":7118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3733:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3733:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7116,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"3712:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3723:9:25","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10943,"src":"3712:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":7120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3669:75:25"},{"condition":{"id":7123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3758:11:25","subExpression":{"id":7122,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7112,"src":"3759:10:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7128,"nodeType":"IfStatement","src":"3754:70:25","trueBody":{"id":7127,"nodeType":"Block","src":"3771:53:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7124,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"3792:19:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3792:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7126,"nodeType":"RevertStatement","src":"3785:28:25"}]}},{"expression":{"arguments":[{"id":7137,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7098,"src":"3874:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":7131,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7115,"src":"3842:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3849:2:25","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":16225,"src":"3842:9:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":7133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3852:8:25","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":14323,"src":"3842:18:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":7134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:20:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3834:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7129,"name":"address","nodeType":"ElementaryTypeName","src":"3834:8:25","stateMutability":"payable","typeDescriptions":{}}},"id":7135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:29:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3864:9:25","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":290,"src":"3834:39:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":7138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:47:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7139,"nodeType":"ExpressionStatement","src":"3834:47:25"}]},"functionSelector":"d8e25572","implemented":true,"kind":"function","modifiers":[{"id":7101,"kind":"modifierInvocation","modifierName":{"id":7100,"name":"nonReentrant","nameLocations":["3568:12:25"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"3568:12:25"},"nodeType":"ModifierInvocation","src":"3568:12:25"}],"name":"releaseRewardForRelayer","nameLocation":"3519:23:25","parameters":{"id":7099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7098,"mutability":"mutable","name":"amount","nameLocation":"3551:6:25","nodeType":"VariableDeclaration","scope":7141,"src":"3543:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7097,"name":"uint256","nodeType":"ElementaryTypeName","src":"3543:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3542:16:25"},"returnParameters":{"id":7102,"nodeType":"ParameterList","parameters":[],"src":"3581:0:25"},"scope":7297,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":7202,"nodeType":"FunctionDefinition","src":"3962:513:25","nodes":[],"body":{"id":7201,"nodeType":"Block","src":"3987:488:25","nodes":[],"statements":[{"assignments":[7146,7149],"declarations":[{"constant":false,"id":7146,"mutability":"mutable","name":"registered","nameLocation":"4003:10:25","nodeType":"VariableDeclaration","scope":7201,"src":"3998:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7145,"name":"bool","nodeType":"ElementaryTypeName","src":"3998:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7149,"mutability":"mutable","name":"subnet","nameLocation":"4030:6:25","nodeType":"VariableDeclaration","scope":7201,"src":"4015:21:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":7148,"nodeType":"UserDefinedTypeName","pathNode":{"id":7147,"name":"Subnet","nameLocations":["4015:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"4015:6:25"},"referencedDeclaration":16226,"src":"4015:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":7155,"initialValue":{"arguments":[{"expression":{"id":7152,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4061:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4065:6:25","memberName":"sender","nodeType":"MemberAccess","src":"4061:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7150,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"4040:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4051:9:25","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10943,"src":"4040:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":7154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3997:75:25"},{"condition":{"id":7157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4087:11:25","subExpression":{"id":7156,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7146,"src":"4088:10:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7162,"nodeType":"IfStatement","src":"4083:70:25","trueBody":{"id":7161,"nodeType":"Block","src":"4100:53:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7158,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"4121:19:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7160,"nodeType":"RevertStatement","src":"4114:28:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7163,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7149,"src":"4224:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4231:10:25","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":16215,"src":"4224:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4245:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4224:22:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7171,"nodeType":"IfStatement","src":"4220:86:25","trueBody":{"id":7170,"nodeType":"Block","src":"4248:58:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7167,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"4269:24:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4269:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7169,"nodeType":"RevertStatement","src":"4262:33:25"}]}},{"assignments":[7173],"declarations":[{"constant":false,"id":7173,"mutability":"mutable","name":"stake","nameLocation":"4324:5:25","nodeType":"VariableDeclaration","scope":7201,"src":"4316:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7172,"name":"uint256","nodeType":"ElementaryTypeName","src":"4316:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7176,"initialValue":{"expression":{"id":7174,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7149,"src":"4332:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4339:5:25","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":16211,"src":"4332:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4316:28:25"},{"expression":{"id":7181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7177,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4355:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4357:12:25","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":11140,"src":"4355:14:25","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4373:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4355:19:25","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":7182,"nodeType":"ExpressionStatement","src":"4355:19:25"},{"expression":{"id":7190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4385:36:25","subExpression":{"baseExpression":{"expression":{"id":7183,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4392:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4394:7:25","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":11052,"src":"4392:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":7189,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":7185,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7149,"src":"4402:6:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4409:2:25","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":16225,"src":"4402:9:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":7187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4412:6:25","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":14219,"src":"4402:16:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4402:18:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4392:29:25","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage","typeString":"struct Subnet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7191,"nodeType":"ExpressionStatement","src":"4385:36:25"},{"expression":{"arguments":[{"id":7198,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7173,"src":"4462:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":7194,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4440:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4444:6:25","memberName":"sender","nodeType":"MemberAccess","src":"4440:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4432:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7192,"name":"address","nodeType":"ElementaryTypeName","src":"4432:8:25","stateMutability":"payable","typeDescriptions":{}}},"id":7196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4432:19:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4452:9:25","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":290,"src":"4432:29:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":7199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4432:36:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7200,"nodeType":"ExpressionStatement","src":"4432:36:25"}]},"documentation":{"id":7142,"nodeType":"StructuredDocumentation","src":"3894:63:25","text":"@notice kill an existing subnet. It's balance must be empty"},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[],"name":"kill","nameLocation":"3971:4:25","parameters":{"id":7143,"nodeType":"ParameterList","parameters":[],"src":"3975:2:25"},"returnParameters":{"id":7144,"nodeType":"ParameterList","parameters":[],"src":"3987:0:25"},"scope":7297,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":7242,"nodeType":"FunctionDefinition","src":"4906:575:25","nodes":[],"body":{"id":7241,"nodeType":"Block","src":"4989:492:25","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7212,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5003:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5007:5:25","memberName":"value","nodeType":"MemberAccess","src":"5003:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5016:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5003:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7220,"nodeType":"IfStatement","src":"4999:135:25","trueBody":{"id":7219,"nodeType":"Block","src":"5019:115:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7216,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"5101:20:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5101:22:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7218,"nodeType":"RevertStatement","src":"5094:29:25"}]}},{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"mutability":"mutable","name":"crossMsg","nameLocation":"5159:8:25","nodeType":"VariableDeclaration","scope":7241,"src":"5143:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":7222,"nodeType":"UserDefinedTypeName","pathNode":{"id":7221,"name":"CrossMsg","nameLocations":["5143:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"5143:8:25"},"referencedDeclaration":16155,"src":"5143:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":7234,"initialValue":{"arguments":[{"id":7226,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7206,"src":"5221:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":7227,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5251:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5255:6:25","memberName":"sender","nodeType":"MemberAccess","src":"5251:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7229,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7209,"src":"5279:2:25","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":7230,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5302:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5306:5:25","memberName":"value","nodeType":"MemberAccess","src":"5302:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":7232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5330:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":7224,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"5170:14:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$9299_$","typeString":"type(library CrossMsgHelper)"}},"id":7225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5185:13:25","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":9087,"src":"5170:28:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$16179_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$16155_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":7233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5213:6:25","5243:6:25","5275:2:25","5295:5:25","5325:3:25"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"5170:220:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"5143:247:25"},{"expression":{"arguments":[{"id":7238,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"5465:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":7235,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"5437:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5448:16:25","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":10852,"src":"5437:27:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5437:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7240,"nodeType":"ExpressionStatement","src":"5437:37:25"}]},"documentation":{"id":7203,"nodeType":"StructuredDocumentation","src":"4481:420:25","text":"@notice fund() credits the received value to the specified address in the specified child subnet.\n There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero,\n i.e. funding a subnet is free.\n @param subnetId: the destination subnet for the funds.\n @param to: the address to which to credit funds in the destination subnet."},"functionSelector":"18f44b70","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"4915:4:25","parameters":{"id":7210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7206,"mutability":"mutable","name":"subnetId","nameLocation":"4938:8:25","nodeType":"VariableDeclaration","scope":7242,"src":"4920:26:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":7205,"nodeType":"UserDefinedTypeName","pathNode":{"id":7204,"name":"SubnetID","nameLocations":["4920:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"4920:8:25"},"referencedDeclaration":16209,"src":"4920:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":7209,"mutability":"mutable","name":"to","nameLocation":"4968:2:25","nodeType":"VariableDeclaration","scope":7242,"src":"4948:22:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":7208,"nodeType":"UserDefinedTypeName","pathNode":{"id":7207,"name":"FvmAddress","nameLocations":["4948:10:25"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"4948:10:25"},"referencedDeclaration":16179,"src":"4948:10:25","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"4919:52:25"},"returnParameters":{"id":7211,"nodeType":"ParameterList","parameters":[],"src":"4989:0:25"},"scope":7297,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":7296,"nodeType":"FunctionDefinition","src":"5815:616:25","nodes":[],"body":{"id":7295,"nodeType":"Block","src":"5900:531:25","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7254,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5914:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5918:5:25","memberName":"value","nodeType":"MemberAccess","src":"5914:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5927:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5914:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7262,"nodeType":"IfStatement","src":"5910:138:25","trueBody":{"id":7261,"nodeType":"Block","src":"5930:118:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7258,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"6015:20:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:22:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7260,"nodeType":"RevertStatement","src":"6008:29:25"}]}},{"assignments":[7265],"declarations":[{"constant":false,"id":7265,"mutability":"mutable","name":"crossMsg","nameLocation":"6073:8:25","nodeType":"VariableDeclaration","scope":7295,"src":"6057:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":7264,"nodeType":"UserDefinedTypeName","pathNode":{"id":7263,"name":"CrossMsg","nameLocations":["6057:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"6057:8:25"},"referencedDeclaration":16155,"src":"6057:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":7279,"initialValue":{"arguments":[{"expression":{"id":7268,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"6138:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6140:11:25","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"6138:13:25","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":7270,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6173:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6177:6:25","memberName":"sender","nodeType":"MemberAccess","src":"6173:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7272,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7246,"src":"6201:2:25","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7273,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6224:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6228:5:25","memberName":"value","nodeType":"MemberAccess","src":"6224:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7275,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"6236:3:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6224:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7277,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"6258:3:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7266,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"6084:14:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$9299_$","typeString":"type(library CrossMsgHelper)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6099:16:25","memberName":"createReleaseMsg","nodeType":"MemberAccess","referencedDeclaration":9044,"src":"6084:31:25","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$16179_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$16155_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":7278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6130:6:25","6165:6:25","6197:2:25","6217:5:25","6253:3:25"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"6084:188:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"6057:215:25"},{"expression":{"arguments":[{"id":7283,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7265,"src":"6312:8:25","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":7280,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"6283:10:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6294:17:25","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":10900,"src":"6283:28:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":7284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:38:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7285,"nodeType":"ExpressionStatement","src":"6283:38:25"},{"expression":{"arguments":[{"expression":{"id":7291,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6414:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6418:5:25","memberName":"value","nodeType":"MemberAccess","src":"6414:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":7288,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"6385:17:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6377:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7286,"name":"address","nodeType":"ElementaryTypeName","src":"6377:8:25","stateMutability":"payable","typeDescriptions":{}}},"id":7289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6377:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6404:9:25","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":290,"src":"6377:36:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":7293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6377:47:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7294,"nodeType":"ExpressionStatement","src":"6377:47:25"}]},"documentation":{"id":7243,"nodeType":"StructuredDocumentation","src":"5487:323:25","text":"@notice release() burns the received value and releases them from this subnet onto the parent by committing a bottom-up message.\n @param to: the address to which to credit funds in the parent subnet.\n @param fee: the fee that validators on the parent subnet get to keep for including this message."},"functionSelector":"9ba53580","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7251,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"5895:3:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7252,"kind":"modifierInvocation","modifierName":{"id":7250,"name":"validFee","nameLocations":["5886:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":11225,"src":"5886:8:25"},"nodeType":"ModifierInvocation","src":"5886:13:25"}],"name":"release","nameLocation":"5824:7:25","parameters":{"id":7249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7246,"mutability":"mutable","name":"to","nameLocation":"5852:2:25","nodeType":"VariableDeclaration","scope":7296,"src":"5832:22:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":7245,"nodeType":"UserDefinedTypeName","pathNode":{"id":7244,"name":"FvmAddress","nameLocations":["5832:10:25"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"5832:10:25"},"referencedDeclaration":16179,"src":"5832:10:25","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":7248,"mutability":"mutable","name":"fee","nameLocation":"5864:3:25","nodeType":"VariableDeclaration","scope":7296,"src":"5856:11:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7247,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5831:37:25"},"returnParameters":{"id":7253,"nodeType":"ParameterList","parameters":[],"src":"5900:0:25"},"scope":7297,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":6854,"name":"GatewayActorModifiers","nameLocations":["975:21:25"],"nodeType":"IdentifierPath","referencedDeclaration":11226,"src":"975:21:25"},"id":6855,"nodeType":"InheritanceSpecifier","src":"975:21:25"},{"baseName":{"id":6856,"name":"ReentrancyGuard","nameLocations":["998:15:25"],"nodeType":"IdentifierPath","referencedDeclaration":11446,"src":"998:15:25"},"id":6857,"nodeType":"InheritanceSpecifier","src":"998:15:25"}],"canonicalName":"GatewayManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[7297,11446,11226],"name":"GatewayManagerFacet","nameLocation":"952:19:25","scope":7298,"usedErrors":[4,8,6053,6057,6081,6099,6133,6141,6143,6145,6155,11394]}],"license":"MIT OR Apache-2.0"},"id":25} \ No newline at end of file diff --git a/contracts/out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json b/contracts/out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json deleted file mode 100644 index dbdde620cb..0000000000 --- a/contracts/out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendCrossMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotSendCrossMsgToItself","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgFromSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"NotEnoughFee","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611b25908161001c8239f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c806325bf0db6146103065763c13175ef1461003657600080fd5b6003199060203683018113610302576001600160401b039380358581116102fe5780820194848183360301126102fa5761007c60c06100758880610486565b0135611aba565b846100878780610486565b01356100a060c06100988980610486565b0135346104a0565b036102ea576100ee846100cf6100bf6100b98a80610486565b806104c3565b6100ca3691806104c3565b610570565b875163c836244d60e01b8152868101899052928391604483019061062f565b848282030160248301526060898201918c6011541681528a85820152601254809352019060128d527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444908d5b8181106102c8575050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102be578991610291575b50156102815784519661017f886104d8565b86358181116102755760e090840192833603011261027d578551916101a383610509565b84810135828111610279576101bd9086369184010161076b565b83526024810135828111610279576101da9086369184010161076b565b868401526044810135878401526101f360648201610545565b606084015260848101356001600160e01b03198116810361027957608084015260a48101359182116102755761023260c4926024963691840101610724565b60a0840152013560c0820152865201359081151582036102715784610267926102609261026e970152610bb8565b9280610486565b01356119a3565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6102b19150853d87116102b7575b6102a98183610524565b810190610617565b3861016d565b503d61029f565b86513d8b823e3d90fd5b82546001600160a01b031684528a95879550909301926001928301920161013a565b84516360ec4e6b60e11b81528390fd5b8780fd5b8680fd5b8480fd5b506020806003193601126104825761040a833580865260038352838620906103c2600b8301549261033684611aba565b60ff600c885192610346846104d8565b895161035181610509565b61035a82610955565b81526103678c8301610955565b818b01526008820180548c83015260098301546001600160401b038116606084015260a01b6001600160e01b0319166080830152976103a8600a84016108af565b60a083015260c08201528452015416151586820152610bb8565b91549087526003845286600c8682206103da81610a27565b6103e5898201610a27565b8260088201558260098201556103fd600a82016109de565b82600b82015501556119a3565b610416601454346104a0565b8061041f578480f35b804710610473578480808093335af1903d1561046d57843d9161044183610709565b9261044e86519485610524565b83523d92013e5b156104605780808480f35b51633204506f60e01b8152fd5b50610455565b50505163356680b760e01b8152fd5b8380fd5b90359060de198136030182121561049b570190565b600080fd5b919082039182116104ad57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561049b570190565b604081019081106001600160401b038211176104f357604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104f357604052565b90601f801991011681019081106001600160401b038211176104f357604052565b35906001600160401b038216820361049b57565b6001600160401b0381116104f35760051b60200190565b919060408382031261049b5760405192610589846104d8565b8361059382610545565b815260209182810135906001600160401b03821161049b57019280601f8501121561049b5783356105c381610559565b946105d16040519687610524565b818652848087019260051b82010192831161049b578401905b8282106105f8575050500152565b81356001600160a01b038116810361049b5781529084019084016105ea565b9081602091031261049b5751801515810361049b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061066d575050505090565b83516001600160a01b03168552938101939281019260010161065f565b60408101906001600160401b036011541681526060602091604083820152601254809452019160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444916000905b8282106106e9575050505090565b83546001600160a01b0316855293840193600193840193909101906106db565b6001600160401b0381116104f357601f01601f191660200190565b81601f8201121561049b5780359061073b82610709565b926107496040519485610524565b8284526020838301011161049b57816000926020809301838601378301015290565b919060408382031261049b5760405192610784846104d8565b838135916001600160401b039283811161049b57846107a4918301610570565b825260208101359083821161049b570160408185031261049b57604051936107cb856104d8565b813560ff8116810361049b578552602082013593841161049b576020936107f29201610724565b828401520152565b90604051610807816104d8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210610856575050505061085292500384610524565b0152565b83546001600160a01b031685528995509093019291810191810161083a565b90600182811c921680156108a5575b602083101461088f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610884565b90604051918260008254926108c384610875565b90818452600194858116908160001461093257506001146108ef575b50506108ed92500383610524565b565b9093915060005260209081600020936000915b81831061091a5750506108ed935082010138806108df565b85548884018501529485019487945091830191610902565b9150506108ed94506020925060ff191682840152151560051b82010138806108df565b9060405191610963836104d8565b60208361096f836107fa565b81526107f2600360405194610983866104d8565b60ff6002820154168652016108af565b81811061099e575050565b60008155600101610993565b90600160401b81116104f3578154908083558181106109c857505050565b6108ed9260005260206000209182019101610993565b6109e88154610875565b90816109f2575050565b81601f60009311600114610a04575055565b908083918252610a23601f60208420940160051c840160018501610993565b5555565b60036108ed91600081556001810180546000825580610a50575b505060006002820155016109de565b610a6591600052602060002090810190610993565b3880610a41565b919082519283825260005b848110610a98575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610a77565b60406020610ae89381610ac685518584528584019061062f565b940151908281860391015260ff81511684520151918160208201520190610a6c565b90565b51906001600160a01b038216820361049b57565b906020808383031261049b5782516001600160401b039384821161049b57019260408484031261049b5760405193610b36856104d8565b8051828116810361049b5785528281015191821161049b57019180601f8401121561049b578251610b6681610559565b93610b746040519586610524565b818552838086019260051b82010192831161049b5783809101915b838310610ba0575050505082015290565b8190610bab84610aeb565b8152019101908390610b8f565b60208151015151604051630c133d1360e31b81526020600482015260208180610be4602482018661062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be57600091611984575b506119725760405163c836244d60e01b81526040600482015260208180610c4a610c39604483018761062f565b82810360031901602484015261068a565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be57600091611953575b5061194157610d309082516020815151916040518095819263f47ad7eb60e01b83526040600484015260c0610d16610ccf610cba845160e06044890152610124880190610aac565b84890151878203604319016064890152610aac565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610a6c565b91015161010484015282810360031901602484015261068a565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49283156110be576000936118fe575b5060009160028410156118ea578290600185146117d9575b5050506111ba5715611170575b610da86020825101515160405191829163089032d560e01b835260406004840152604483019061062f565b600319828203016024830152606060408201916001600160401b0360115416815260406020820152601254809352019060126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449060005b81811061114e575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be5760009161112d575b506040516390ba52cf60e01b81526020600482018190528180610e5f602482018661062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be576000916110fb575b506000526000602052604060002090610ec86020610ea7600485016107fa565b60405180938192630c133d1360e31b8352846004840152602483019061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be576000916110dc575b506110ca576003820180546001600160401b03610f1581831680606089510152611a15565b16906001600160401b031916179055600260408451015192019081549283018093116104ad57610f649260209255604051809381926304e384ff60e21b8352846004840152602483019061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156110be57600090611062575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969150604051809160208252602085519560408285015260c061103e610fde895160e06060890152610140880190611a2d565b610ff9858b015191605f1992838a83030160808b0152611a2d565b9060408b015160a08901526001600160401b0360608c0151168489015263ffffffff60e01b60808c01511660e089015260a08b01519088830301610100890152610a6c565b9701516101208501520151151560408301526001600160a01b0316930390a2600090565b6020823d6020116110b6575b8161107b60209383610524565b810103126110b357506110ae7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709691610aeb565b610f8b565b80fd5b3d915061106e565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6110f5915060203d6020116102b7576102a98183610524565b38610ef0565b906020823d602011611125575b8161111560209383610524565b810103126110b357505138610e87565b3d9150611108565b611148913d8091833e6111408183610524565b810190610aff565b38610e39565b82546001600160a01b0316845285945060209093019260019283019201610e02565b6015546001600160401b038160481c166001600160401b0381146104ad57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601555610d7d565b50906001600160401b036016541680156117c3576001600160401b036111e38282431604611a15565b16026001600160401b0381169081036104ad576001600160401b0360155460081c16606084510152600052600a602052604060002091825492600160401b8410156104f357600184018082558410156117ad576000526020600020815193845180516001600160401b038151166001600160401b0319600d85028601541617600d840285015560206001600d8502860101910151908151916001600160401b0383116104f35760209061129684846109aa565b0190600052602060002060005b8381106117905750505050602090816002600d85028601019101519060ff82511660ff1982541617905501518051906001600160401b0382116104f35781906112f46003600d860287010154610875565b601f8111611756575b50602090601f83116001146116da576000926116cf575b50508160011b916000199060031b1c1916176003600d8302840101555b60208581015180518051600d8502860160048101805467ffffffffffffffff19166001600160401b0393841617905591909301518051929360059092019183116104f35760209061138284846109aa565b0190600052602060002060005b8381106116b25750505050602090816006600d85028601019101519060ff82511660ff1982541617905501518051906001600160401b0382116104f35781906113e06007600d860287010154610875565b601f8111611678575b50602090601f83116001146115fc576000926115f1575b50508160011b916000199060031b1c1916176007600d8302840101555b6040850151600d820283016008810191909155606086015160098201805460808901516bffffffffffffffffffffffff199091166001600160401b039384161760a091821c6bffffffff000000000000000016179091558701518051909792600a019181116104f3576114908254610875565b601f81116115b4575b506020601f82116001146115405792600c9594928260c093600d9660409b9c600092611535575b50508160011b916000199060031b1c19161790555b0151600b838302850101550201016020820151151560ff8019835416911617905560155468ffffffffffffffff006115186001600160401b038360081c16611a15565b60081b169068ffffffffffffffff00191617601555510151151590565b0151905038806114c0565b601f198216988360005260206000209960005b81811061159c57508360409a9b600d9794600c9a99979460c09760019510611583575b505050811b0190556114d5565b015160001960f88460031b161c19169055388080611576565b838301518c556001909b019a60209384019301611553565b6115e190836000526020600020601f840160051c810191602085106115e7575b601f0160051c0190610993565b38611499565b90915081906115d4565b015190503880611400565b92506007600d85028601016000526020600020906000935b601f198416851061165d576001945083601f19811610611644575b505050811b016007600d83028401015561141d565b015160001960f88460031b161c1916905538808061162f565b81810151835560209485019460019093019290910190611614565b6116ac906007600d87028801016000526020600020601f850160051c810191602086106115e757601f0160051c0190610993565b386113e9565b82516001600160a01b03168183015560209092019160010161138f565b015190503880611314565b92506003600d85028601016000526020600020906000935b601f198416851061173b576001945083601f19811610611722575b505050811b016003600d830284010155611331565b015160001960f88460031b161c1916905538808061170d565b818101518355602094850194600190930192909101906116f2565b61178a906003600d87028801016000526020600020601f850160051c810191602086106115e757601f0160051c0190610993565b386112fd565b82516001600160a01b0316818301556020909201916001016112a3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b611803906118156040519485938493631ccc893360e11b855260406004860152604485019061062f565b8381036003190160248501529061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156118df57610c3961186a9260209285916118c5575b50604051938492839263c836244d60e01b845260406004850152604484019061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156118b9579161189a575b5015388181610d70565b6118b3915060203d6020116102b7576102a98183610524565b38611890565b604051903d90823e3d90fd5b6118d991503d8087833e6111408183610524565b38611846565b6040513d84823e3d90fd5b634e487b7160e01b83526021600452602483fd5b6020939193813d602011611939575b8161191a60209383610524565b8101031261193557519060028210156110b357509138610d58565b5080fd5b3d915061190d565b604051632f3335ff60e21b8152600490fd5b61196c915060203d6020116102b7576102a98183610524565b38610c72565b60405163c5f563eb60e01b8152600490fd5b61199d915060203d6020116102b7576102a98183610524565b38610c0c565b906119ab5750565b804710611a035760008080809360635af13d156119fe573d6119cc81610709565b906119da6040519283610524565b8152600060203d92013e5b156119ec57565b604051633204506f60e01b8152600490fd5b6119e5565b60405163356680b760e01b8152600490fd5b9060016001600160401b03809316019182116104ad57565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110611a9d5750505093604083819381610ae897980151908281860391015260ff81511684520151938201520190610a6c565b82516001600160a01b031688529685019691850191600101611a69565b6014548110611add573410611acb57565b604051631036b5ad60e31b8152600490fd5b6040516334472ad760e11b8152600490fdfea2646970667358221220014b11e715d39276d7083f52f53c798af9d1532178cfbc9da5e67996d2dfe6c664736f6c63430008130033","sourceMap":"737:4201:26:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3408,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":358,"length":20},{"start":3076,"length":20},{"start":3178,"length":20},{"start":3633,"length":20},{"start":3711,"length":20},{"start":3816,"length":20},{"start":3972,"length":20},{"start":6197,"length":20},{"start":6282,"length":20}]}}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c806325bf0db6146103065763c13175ef1461003657600080fd5b6003199060203683018113610302576001600160401b039380358581116102fe5780820194848183360301126102fa5761007c60c06100758880610486565b0135611aba565b846100878780610486565b01356100a060c06100988980610486565b0135346104a0565b036102ea576100ee846100cf6100bf6100b98a80610486565b806104c3565b6100ca3691806104c3565b610570565b875163c836244d60e01b8152868101899052928391604483019061062f565b848282030160248301526060898201918c6011541681528a85820152601254809352019060128d527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444908d5b8181106102c8575050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102be578991610291575b50156102815784519661017f886104d8565b86358181116102755760e090840192833603011261027d578551916101a383610509565b84810135828111610279576101bd9086369184010161076b565b83526024810135828111610279576101da9086369184010161076b565b868401526044810135878401526101f360648201610545565b606084015260848101356001600160e01b03198116810361027957608084015260a48101359182116102755761023260c4926024963691840101610724565b60a0840152013560c0820152865201359081151582036102715784610267926102609261026e970152610bb8565b9280610486565b01356119a3565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6102b19150853d87116102b7575b6102a98183610524565b810190610617565b3861016d565b503d61029f565b86513d8b823e3d90fd5b82546001600160a01b031684528a95879550909301926001928301920161013a565b84516360ec4e6b60e11b81528390fd5b8780fd5b8680fd5b8480fd5b506020806003193601126104825761040a833580865260038352838620906103c2600b8301549261033684611aba565b60ff600c885192610346846104d8565b895161035181610509565b61035a82610955565b81526103678c8301610955565b818b01526008820180548c83015260098301546001600160401b038116606084015260a01b6001600160e01b0319166080830152976103a8600a84016108af565b60a083015260c08201528452015416151586820152610bb8565b91549087526003845286600c8682206103da81610a27565b6103e5898201610a27565b8260088201558260098201556103fd600a82016109de565b82600b82015501556119a3565b610416601454346104a0565b8061041f578480f35b804710610473578480808093335af1903d1561046d57843d9161044183610709565b9261044e86519485610524565b83523d92013e5b156104605780808480f35b51633204506f60e01b8152fd5b50610455565b50505163356680b760e01b8152fd5b8380fd5b90359060de198136030182121561049b570190565b600080fd5b919082039182116104ad57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561049b570190565b604081019081106001600160401b038211176104f357604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104f357604052565b90601f801991011681019081106001600160401b038211176104f357604052565b35906001600160401b038216820361049b57565b6001600160401b0381116104f35760051b60200190565b919060408382031261049b5760405192610589846104d8565b8361059382610545565b815260209182810135906001600160401b03821161049b57019280601f8501121561049b5783356105c381610559565b946105d16040519687610524565b818652848087019260051b82010192831161049b578401905b8282106105f8575050500152565b81356001600160a01b038116810361049b5781529084019084016105ea565b9081602091031261049b5751801515810361049b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061066d575050505090565b83516001600160a01b03168552938101939281019260010161065f565b60408101906001600160401b036011541681526060602091604083820152601254809452019160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444916000905b8282106106e9575050505090565b83546001600160a01b0316855293840193600193840193909101906106db565b6001600160401b0381116104f357601f01601f191660200190565b81601f8201121561049b5780359061073b82610709565b926107496040519485610524565b8284526020838301011161049b57816000926020809301838601378301015290565b919060408382031261049b5760405192610784846104d8565b838135916001600160401b039283811161049b57846107a4918301610570565b825260208101359083821161049b570160408185031261049b57604051936107cb856104d8565b813560ff8116810361049b578552602082013593841161049b576020936107f29201610724565b828401520152565b90604051610807816104d8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210610856575050505061085292500384610524565b0152565b83546001600160a01b031685528995509093019291810191810161083a565b90600182811c921680156108a5575b602083101461088f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610884565b90604051918260008254926108c384610875565b90818452600194858116908160001461093257506001146108ef575b50506108ed92500383610524565b565b9093915060005260209081600020936000915b81831061091a5750506108ed935082010138806108df565b85548884018501529485019487945091830191610902565b9150506108ed94506020925060ff191682840152151560051b82010138806108df565b9060405191610963836104d8565b60208361096f836107fa565b81526107f2600360405194610983866104d8565b60ff6002820154168652016108af565b81811061099e575050565b60008155600101610993565b90600160401b81116104f3578154908083558181106109c857505050565b6108ed9260005260206000209182019101610993565b6109e88154610875565b90816109f2575050565b81601f60009311600114610a04575055565b908083918252610a23601f60208420940160051c840160018501610993565b5555565b60036108ed91600081556001810180546000825580610a50575b505060006002820155016109de565b610a6591600052602060002090810190610993565b3880610a41565b919082519283825260005b848110610a98575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610a77565b60406020610ae89381610ac685518584528584019061062f565b940151908281860391015260ff81511684520151918160208201520190610a6c565b90565b51906001600160a01b038216820361049b57565b906020808383031261049b5782516001600160401b039384821161049b57019260408484031261049b5760405193610b36856104d8565b8051828116810361049b5785528281015191821161049b57019180601f8401121561049b578251610b6681610559565b93610b746040519586610524565b818552838086019260051b82010192831161049b5783809101915b838310610ba0575050505082015290565b8190610bab84610aeb565b8152019101908390610b8f565b60208151015151604051630c133d1360e31b81526020600482015260208180610be4602482018661062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be57600091611984575b506119725760405163c836244d60e01b81526040600482015260208180610c4a610c39604483018761062f565b82810360031901602484015261068a565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be57600091611953575b5061194157610d309082516020815151916040518095819263f47ad7eb60e01b83526040600484015260c0610d16610ccf610cba845160e06044890152610124880190610aac565b84890151878203604319016064890152610aac565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610a6c565b91015161010484015282810360031901602484015261068a565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49283156110be576000936118fe575b5060009160028410156118ea578290600185146117d9575b5050506111ba5715611170575b610da86020825101515160405191829163089032d560e01b835260406004840152604483019061062f565b600319828203016024830152606060408201916001600160401b0360115416815260406020820152601254809352019060126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449060005b81811061114e575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be5760009161112d575b506040516390ba52cf60e01b81526020600482018190528180610e5f602482018661062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be576000916110fb575b506000526000602052604060002090610ec86020610ea7600485016107fa565b60405180938192630c133d1360e31b8352846004840152602483019061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156110be576000916110dc575b506110ca576003820180546001600160401b03610f1581831680606089510152611a15565b16906001600160401b031916179055600260408451015192019081549283018093116104ad57610f649260209255604051809381926304e384ff60e21b8352846004840152602483019061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156110be57600090611062575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969150604051809160208252602085519560408285015260c061103e610fde895160e06060890152610140880190611a2d565b610ff9858b015191605f1992838a83030160808b0152611a2d565b9060408b015160a08901526001600160401b0360608c0151168489015263ffffffff60e01b60808c01511660e089015260a08b01519088830301610100890152610a6c565b9701516101208501520151151560408301526001600160a01b0316930390a2600090565b6020823d6020116110b6575b8161107b60209383610524565b810103126110b357506110ae7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709691610aeb565b610f8b565b80fd5b3d915061106e565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6110f5915060203d6020116102b7576102a98183610524565b38610ef0565b906020823d602011611125575b8161111560209383610524565b810103126110b357505138610e87565b3d9150611108565b611148913d8091833e6111408183610524565b810190610aff565b38610e39565b82546001600160a01b0316845285945060209093019260019283019201610e02565b6015546001600160401b038160481c166001600160401b0381146104ad57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601555610d7d565b50906001600160401b036016541680156117c3576001600160401b036111e38282431604611a15565b16026001600160401b0381169081036104ad576001600160401b0360155460081c16606084510152600052600a602052604060002091825492600160401b8410156104f357600184018082558410156117ad576000526020600020815193845180516001600160401b038151166001600160401b0319600d85028601541617600d840285015560206001600d8502860101910151908151916001600160401b0383116104f35760209061129684846109aa565b0190600052602060002060005b8381106117905750505050602090816002600d85028601019101519060ff82511660ff1982541617905501518051906001600160401b0382116104f35781906112f46003600d860287010154610875565b601f8111611756575b50602090601f83116001146116da576000926116cf575b50508160011b916000199060031b1c1916176003600d8302840101555b60208581015180518051600d8502860160048101805467ffffffffffffffff19166001600160401b0393841617905591909301518051929360059092019183116104f35760209061138284846109aa565b0190600052602060002060005b8381106116b25750505050602090816006600d85028601019101519060ff82511660ff1982541617905501518051906001600160401b0382116104f35781906113e06007600d860287010154610875565b601f8111611678575b50602090601f83116001146115fc576000926115f1575b50508160011b916000199060031b1c1916176007600d8302840101555b6040850151600d820283016008810191909155606086015160098201805460808901516bffffffffffffffffffffffff199091166001600160401b039384161760a091821c6bffffffff000000000000000016179091558701518051909792600a019181116104f3576114908254610875565b601f81116115b4575b506020601f82116001146115405792600c9594928260c093600d9660409b9c600092611535575b50508160011b916000199060031b1c19161790555b0151600b838302850101550201016020820151151560ff8019835416911617905560155468ffffffffffffffff006115186001600160401b038360081c16611a15565b60081b169068ffffffffffffffff00191617601555510151151590565b0151905038806114c0565b601f198216988360005260206000209960005b81811061159c57508360409a9b600d9794600c9a99979460c09760019510611583575b505050811b0190556114d5565b015160001960f88460031b161c19169055388080611576565b838301518c556001909b019a60209384019301611553565b6115e190836000526020600020601f840160051c810191602085106115e7575b601f0160051c0190610993565b38611499565b90915081906115d4565b015190503880611400565b92506007600d85028601016000526020600020906000935b601f198416851061165d576001945083601f19811610611644575b505050811b016007600d83028401015561141d565b015160001960f88460031b161c1916905538808061162f565b81810151835560209485019460019093019290910190611614565b6116ac906007600d87028801016000526020600020601f850160051c810191602086106115e757601f0160051c0190610993565b386113e9565b82516001600160a01b03168183015560209092019160010161138f565b015190503880611314565b92506003600d85028601016000526020600020906000935b601f198416851061173b576001945083601f19811610611722575b505050811b016003600d830284010155611331565b015160001960f88460031b161c1916905538808061170d565b818101518355602094850194600190930192909101906116f2565b61178a906003600d87028801016000526020600020601f850160051c810191602086106115e757601f0160051c0190610993565b386112fd565b82516001600160a01b0316818301556020909201916001016112a3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b611803906118156040519485938493631ccc893360e11b855260406004860152604485019061062f565b8381036003190160248501529061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156118df57610c3961186a9260209285916118c5575b50604051938492839263c836244d60e01b845260406004850152604484019061062f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156118b9579161189a575b5015388181610d70565b6118b3915060203d6020116102b7576102a98183610524565b38611890565b604051903d90823e3d90fd5b6118d991503d8087833e6111408183610524565b38611846565b6040513d84823e3d90fd5b634e487b7160e01b83526021600452602483fd5b6020939193813d602011611939575b8161191a60209383610524565b8101031261193557519060028210156110b357509138610d58565b5080fd5b3d915061190d565b604051632f3335ff60e21b8152600490fd5b61196c915060203d6020116102b7576102a98183610524565b38610c72565b60405163c5f563eb60e01b8152600490fd5b61199d915060203d6020116102b7576102a98183610524565b38610c0c565b906119ab5750565b804710611a035760008080809360635af13d156119fe573d6119cc81610709565b906119da6040519283610524565b8152600060203d92013e5b156119ec57565b604051633204506f60e01b8152600490fd5b6119e5565b60405163356680b760e01b8152600490fd5b9060016001600160401b03809316019182116104ad57565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110611a9d5750505093604083819381610ae897980151908281860391015260ff81511684520151938201520190610a6c565b82516001600160a01b031688529685019691850191600101611a69565b6014548110611add573410611acb57565b604051631036b5ad60e31b8152600490fd5b6040516334472ad760e11b8152600490fdfea2646970667358221220014b11e715d39276d7083f52f53c798af9d1532178cfbc9da5e67996d2dfe6c664736f6c63430008130033","sourceMap":"737:4201:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;737:4201:26;;;;;;-1:-1:-1;737:4201:26;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;4592:3:39;1298:20:26;:16;;;;:::i;:::-;:20;737:4201;4592:3:39;:::i;:::-;1334:16:26;;;;;:::i;:::-;:22;737:4201;1360:32;1298:20;1372:16;;;;:::i;:::-;:20;737:4201;1360:9;:32;:::i;:::-;1334:58;1330:118;;737:4201;1629:16;737:4201;1629:21;:16;;;;:::i;:::-;:21;;:::i;:::-;:30;737:4201;1629:30;;;:::i;:::-;737:4201;:::i;:::-;;;-1:-1:-1;;;1629:52:26;;;;;737:4201;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1667:13;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;1629:52;;;;;;:37;;:52;;;;;;;;;;;737:4201;1628:53;;1624:118;;737:4201;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1298:20;737:4201;;;;;;;;;;;;;;;;1883:16;737:4201;1818:29;737:4201;1919:10;737:4201;;;1818:29;:::i;:::-;1883:16;;;:::i;:::-;:22;737:4201;1919:10;:::i;:::-;737:4201;;;;;;;;;;;;;;;;;;1624:118;737:4201;;-1:-1:-1;;;1704:27:26;;737:4201;;1704:27;1629:52;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;737:4201;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;1330:118;737:4201;;-1:-1:-1;;;1415:22:26;;737:4201;;1415:22;737:4201;;;;;;;;;;;;;;;;;;;;;;;2682:10;737:4201;;;;;;;;;;;2218:20;2268:29;2218:20;;;737:4201;2218:20;;;;:::i;:::-;737:4201;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;-1:-1:-1;;;;;;737:4201:26;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;2268:29;:::i;:::-;737:4201;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;2218:20;737:4201;;;;;2682:10;:::i;:::-;2728:28;2740:16;737:4201;2728:9;:28;:::i;:::-;2824:17;2820:91;;737:4201;;;2820:91;13330:21:0;;:31;13326:63;;2865:10:26;;;;;;13419:35:0;;737:4201:26;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13468:8:0;13464:33;;2820:91:26;;737:4201;;;13464:33:0;737:4201:26;-1:-1:-1;;;13485:12:0;;;737:4201:26;;;;13326:63:0;-1:-1:-1;;737:4201:26;-1:-1:-1;;;13370:19:0;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;:::o;:::-;-1:-1:-1;;;;;737:4201:26;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3593:13:26;737:4201;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:4201:26;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;-1:-1:-1;;737:4201:26;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:4201:26;;-1:-1:-1;737:4201:26;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:4201:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;737:4201:26;;;;-1:-1:-1;737:4201:26;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;737:4201:26;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;737:4201:26;;-1:-1:-1;737:4201:26;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;3220:1240;3345:23;:20;;:23;;:32;737:4201;;;;;3391:12;;3345:23;3391:12;;;737:4201;3345:23;737:4201;;;;;;;;:::i;:::-;3391:12;:10;;:12;;;;;;;737:4201;3391:12;;;3220:1240;3387:76;;;737:4201;;;;;3583:24;;737:4201;3391:12;3583:24;;737:4201;3345:23;737:4201;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;737:4201:26;;;;;;:::i;:::-;3583:24;3391:10;;3583:24;;;;;;;737:4201;3583:24;;;3220:1240;3579:90;;;737:4201;3702:20;;;3345:23;3702:25;;:34;737:4201;;;;;;;;;;3769:45;;737:4201;3391:12;3769:45;;737:4201;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;737:4201:26;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;-1:-1:-1;;;;;;737:4201:26;;;;;;;;;;;;-1:-1:-1;;737:4201:26;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;737:4201:26;;;;;;:::i;:::-;3769:45;:30;;:45;;;;;;;737:4201;3769:45;;;3220:1240;3882:25;737:4201;;;;;;;;3922:32;;3935:19;3922:32;;3918:130;;3220:1240;4058:211;;;;;4283:31;4279:85;;3220:1240;737:4201;3345:23;8162:20:38;;:23;;:32;737:4201:26;;;;;;;;8162:52:38;;737:4201:26;3391:12;8162:52:38;;737:4201:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8200:13:38;737:4201:26;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;;;;;;;8162:52:38;;;;;737:4201:26;8162:52:38;;3391:10:26;;8162:52:38;;;;;;;737:4201:26;8162:52:38;;;737:4201:26;-1:-1:-1;737:4201:26;;-1:-1:-1;;;10231:17:38;;3345:23:26;3391:12;10231:17:38;;737:4201:26;;;;;;;;;;;:::i;:::-;10231:17:38;3391:10:26;;10231:17:38;;;;;;;737:4201:26;10231:17:38;;;737:4201:26;;;;;3345:23;737:4201;;;;10268:9:38;737:4201:26;3345:23;737:4201;3391:12;10268:9:38;;737:4201:26;:::i;:::-;;;;;;;;;;10268:19:38;;;3391:12:26;10268:19:38;;737:4201:26;;;;;;:::i;:::-;10268:19:38;3391:10:26;;10268:19:38;;;;;;;737:4201:26;10268:19:38;;;737:4201:26;10267:20:38;8298:70;;737:4201:26;8400:19:38;;737:4201:26;;-1:-1:-1;;;;;8503:16:38;737:4201:26;;;8430:20:38;737:4201:26;8430:20:38;;:26;737:4201:26;8503:16:38;:::i;:::-;737:4201:26;;-1:-1:-1;;;;;737:4201:26;;;;;;;8550:20:38;;:26;737:4201:26;8529:17:38;;737:4201:26;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;8619:21:38;;;3391:12:26;8619:21:38;;737:4201:26;;;;;;:::i;:::-;8619:21:38;3391:10:26;;8619:21:38;;;;;;737:4201:26;8619:21:38;;;737:4201:26;8592:73:38;737:4201:26;;;;;;3345:23;737:4201;;3345:23;737:4201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;8592:73:38;;;737:4201:26;3220:1240;:::o;8619:21:38:-;3345:23:26;8619:21:38;;3345:23:26;8619:21:38;;;;;;3345:23:26;8619:21:38;;;:::i;:::-;;;737:4201:26;;;;;;8592:73:38;737:4201:26;;:::i;:::-;8619:21:38;;737:4201:26;;;8619:21:38;;;-1:-1:-1;8619:21:38;;;737:4201:26;;;;;;;;;8298:70:38;737:4201:26;;-1:-1:-1;;;8336:21:38;;3391:12:26;;8336:21:38;10268:19;;;;3345:23:26;10268:19:38;3345:23:26;10268:19:38;;;;;;;:::i;:::-;;;;10231:17;;3345:23:26;10231:17:38;;3345:23:26;10231:17:38;;;;;;3345:23:26;10231:17:38;;;:::i;:::-;;;737:4201:26;;;;;;10231:17:38;;;;;;-1:-1:-1;10231:17:38;;8162:52;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;737:4201:26;;;-1:-1:-1;;;;;737:4201:26;;;;;-1:-1:-1;3345:23:26;737:4201;;;;3935:19;737:4201;;;;;;;4279:85;4332:21;737:4201;-1:-1:-1;;;;;737:4201:26;;;;-1:-1:-1;;;;;737:4201:26;;;;3935:19;-1:-1:-1;;;737:4201:26;;;;;;-1:-1:-1;;;737:4201:26;;;4332:21;737:4201;4279:85;;4058:211;737:4201;;-1:-1:-1;;;;;9070:21:38;737:4201:26;;;;;;-1:-1:-1;;;;;10895:39:38;9056:12;;;737:4201:26;;10895:39:38;:::i;:::-;737:4201:26;;-1:-1:-1;;;;;737:4201:26;;;;;;;-1:-1:-1;;;;;9132:15:38;737:4201:26;;;;;9103:20:38;;:26;737:4201:26;;;9158:18:38;3345:23:26;737:4201;;;;;;;;-1:-1:-1;;;737:4201:26;;;;;3935:19;737:4201;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;3345:23;3935:19;737:4201;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;3345:23;737:4201;;;;;:::i;:::-;;;;;3345:23;737:4201;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;3391:12;737:4201;;;;-1:-1:-1;;737:4201:26;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;:::i;:::-;;;;;3345:23;737:4201;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;737:4201:26;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;9158:18:38;737:4201:26;;;;;;;;;;:::i;:::-;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;9132:15:38;737:4201:26;;9212:20:38;-1:-1:-1;;;;;737:4201:26;;;;9212:20:38;:::i;:::-;737:4201:26;;;;;;;;9132:15:38;737:4201:26;4226:20;:26;737:4201;4226:31;;4205:53;:::o;737:4201::-;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3935:19;737:4201;;;;3345:23;737:4201;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;737:4201:26;;;;;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;;-1:-1:-1;;737:4201:26;;;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;3345:23;737:4201;;;;3935:19;737:4201;;;;;;;-1:-1:-1;737:4201:26;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;;-1:-1:-1;;737:4201:26;;;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;3935:19;737:4201;;;;;;;;;;;;;;;;;;;;;;3345:23;737:4201;;;;;;;;;;3345:23;737:4201;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;3345:23;737:4201;;;;3935:19;737:4201;;;;;;;;;;3391:12;737:4201;;;;;;;;;;;3391:12;737:4201;;;;3918:130;737:4201;;;;;;;;;;;;;3994:21;;737:4201;3391:12;3994:21;;737:4201;;;;;;:::i;:::-;;;;-1:-1:-1;;737:4201:26;;;;;;;:::i;:::-;3994:21;3391:10;;3994:21;;;;;;;737:4201;;3994:21;3345:23;3994:21;;;;;3918:130;737:4201;;;;;;;;;;;3994:43;;737:4201;3391:12;3994:43;;737:4201;;;;;;:::i;:::-;3994:43;3391:10;;3994:43;;;;;;;;;;3918:130;3993:44;;3918:130;;;;;3994:43;;;;3345:23;3994:43;3345:23;3994:43;;;;;;;:::i;:::-;;;;;737:4201;;;;;;;;;;3994:21;;;;;;;;;;;;;:::i;:::-;;;;;737:4201;;;;;;;;;;-1:-1:-1;;;737:4201:26;;;3391:12;737:4201;;;;3769:45;3345:23;3769:45;;;;;3345:23;3769:45;;;;;;3345:23;3769:45;;;:::i;:::-;;;737:4201;;;;;;;;;;;;3769:45;;;;;737:4201;;;;3769:45;;;-1:-1:-1;3769:45:26;;3579:90;737:4201;;-1:-1:-1;;;3630:28:26;;3391:12;;3630:28;3583:24;;;;3345:23;3583:24;3345:23;3583:24;;;;;;;:::i;:::-;;;;3387:76;737:4201;;-1:-1:-1;;;3426:26:26;;3391:12;;3426:26;3391:12;;;;3345:23;3391:12;3345:23;3391:12;;;;;;;:::i;:::-;;;;4773:163;;4850:80;;4773:163;:::o;4850:80::-;13330:21:0;;:31;13326:63;;13419:35;;;;;737:4201:26;13419:35:0;;737:4201:26;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:0;737:4201:26;;;;;;13468:8:0;13464:33;;4773:163:26:o;13464:33:0:-;737:4201:26;;-1:-1:-1;;;13485:12:0;;;;;737:4201:26;;;13326:63:0;737:4201:26;;-1:-1:-1;;;13370:19:0;;;;;737:4201:26;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;737:4201:26;;;;;;;;;;;;;;;4094:216:39;4162:16;737:4201:26;4156:22:39;;4152:74;;4239:9;:15;4235:69;;4094:216::o;4235:69::-;737:4201:26;;-1:-1:-1;;;4277:16:39;;;;;4152:74;737:4201:26;;-1:-1:-1;;;4201:14:39;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3380,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":330,"length":20},{"start":3048,"length":20},{"start":3150,"length":20},{"start":3605,"length":20},{"start":3683,"length":20},{"start":3788,"length":20},{"start":3944,"length":20},{"start":6169,"length":20},{"start":6254,"length":20}]}}},"methodIdentifiers":{"propagate(bytes32)":"25bf0db6","sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"c13175ef"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendCrossMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"details\":\"propagates the populated cross net message for the given cid\",\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"sends an arbitrary cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\",\"params\":{\"crossMsg\":\"- a cross-message to send\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayMessengerFacet.sol\":\"GatewayMessengerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x2d892e83312990f8085a1b7d2a9aa1e934869056b0200073f0714ebd944aafc5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://549d4055d30fdef6a46b23c5778cbd934cfcd1a16545d5314e4d560cce2e1d70\",\"dweb:/ipfs/QmXvLRyVxfJvdKKahxzm7ryC4faUt5zBtk9bGVXvk94Jrj\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e\",\"dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x002287b88a61e04e89ce6aebd47858c2e4a366615f5b880f445987ead7633b49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://80426a9802c6e825a93d05671e8f03c640d91e386ab8555efe69c02e22cda269\",\"dweb:/ipfs/QmcVMK9PUeTZRmm1k56regE5PGXrKDgg5XrtrgPH72qhTR\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotSendCrossMsgToItself"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgFromSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[],"type":"error","name":"NotEnoughFee"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendCrossMessage"}],"devdoc":{"kind":"dev","methods":{"propagate(bytes32)":{"details":"propagates the populated cross net message for the given cid","params":{"msgCid":"- the cid of the cross-net message"}},"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"details":"sends an arbitrary cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.","params":{"crossMsg":"- a cross-message to send"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayMessengerFacet.sol":"GatewayMessengerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x2d892e83312990f8085a1b7d2a9aa1e934869056b0200073f0714ebd944aafc5","urls":["bzz-raw://549d4055d30fdef6a46b23c5778cbd934cfcd1a16545d5314e4d560cce2e1d70","dweb:/ipfs/QmXvLRyVxfJvdKKahxzm7ryC4faUt5zBtk9bGVXvk94Jrj"],"license":"UNLICENSED"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710","urls":["bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e","dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0x002287b88a61e04e89ce6aebd47858c2e4a366615f5b880f445987ead7633b49","urls":["bzz-raw://80426a9802c6e825a93d05671e8f03c640d91e386ab8555efe69c02e22cda269","dweb:/ipfs/QmcVMK9PUeTZRmm1k56regE5PGXrKDgg5XrtrgPH72qhTR"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayMessengerFacet.sol","id":7593,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[5535],"CannotSendCrossMsgToItself":[6059],"CrossMsg":[16155],"FilAddress":[298],"GatewayActorModifiers":[11226],"GatewayMessengerFacet":[7592],"IPCMsgType":[6038],"InvalidCrossMsgDstSubnet":[6093],"InvalidCrossMsgFromSubnet":[6095],"InvalidCrossMsgValue":[6099],"LibGateway":[11023],"StorableMsg":[16172],"StorableMsgHelper":[14019],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"39:4900:26","nodes":[{"id":7299,"nodeType":"PragmaDirective","src":"39:23:26","nodes":[],"literals":["solidity","0.8",".19"]},{"id":7301,"nodeType":"ImportDirective","src":"64:72:26","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":7300,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11226,"src":"72:21:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7303,"nodeType":"ImportDirective","src":"137:61:26","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":5557,"symbolAliases":[{"foreign":{"id":7302,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"145:17:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7306,"nodeType":"ImportDirective","src":"199:64:26","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":7304,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"207:8:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7305,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"217:11:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7308,"nodeType":"ImportDirective","src":"264:51:26","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":6039,"symbolAliases":[{"foreign":{"id":7307,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"272:10:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7310,"nodeType":"ImportDirective","src":"316:47:26","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":7309,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"324:8:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7315,"nodeType":"ImportDirective","src":"364:142:26","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":7311,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"372:25:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7312,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"399:24:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7313,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6059,"src":"425:26:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7314,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"453:20:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7317,"nodeType":"ImportDirective","src":"507:57:26","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":7316,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"515:14:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7319,"nodeType":"ImportDirective","src":"565:49:26","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":11024,"symbolAliases":[{"foreign":{"id":7318,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"573:10:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7321,"nodeType":"ImportDirective","src":"615:63:26","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":14020,"symbolAliases":[{"foreign":{"id":7320,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14019,"src":"623:17:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7323,"nodeType":"ImportDirective","src":"679:56:26","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":7593,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":7322,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"687:10:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7592,"nodeType":"ContractDefinition","src":"737:4201:26","nodes":[{"id":7328,"nodeType":"UsingForDirective","src":"799:37:26","nodes":[],"global":false,"libraryName":{"id":7326,"name":"FilAddress","nameLocations":["805:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"805:10:26"},"typeName":{"id":7327,"name":"address","nodeType":"ElementaryTypeName","src":"820:15:26","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":7332,"nodeType":"UsingForDirective","src":"841:34:26","nodes":[],"global":false,"libraryName":{"id":7329,"name":"SubnetIDHelper","nameLocations":["847:14:26"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"847:14:26"},"typeName":{"id":7331,"nodeType":"UserDefinedTypeName","pathNode":{"id":7330,"name":"SubnetID","nameLocations":["866:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"866:8:26"},"referencedDeclaration":16209,"src":"866:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":7336,"nodeType":"UsingForDirective","src":"880:40:26","nodes":[],"global":false,"libraryName":{"id":7333,"name":"StorableMsgHelper","nameLocations":["886:17:26"],"nodeType":"IdentifierPath","referencedDeclaration":14019,"src":"886:17:26"},"typeName":{"id":7335,"nodeType":"UserDefinedTypeName","pathNode":{"id":7334,"name":"StorableMsg","nameLocations":["908:11:26"],"nodeType":"IdentifierPath","referencedDeclaration":16172,"src":"908:11:26"},"referencedDeclaration":16172,"src":"908:11:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"}}},{"id":7391,"nodeType":"FunctionDefinition","src":"1218:720:26","nodes":[],"body":{"id":7390,"nodeType":"Block","src":"1320:618:26","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7348,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1334:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1343:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"1334:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1351:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"1334:22:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7351,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1360:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1364:5:26","memberName":"value","nodeType":"MemberAccess","src":"1360:9:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":7353,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1372:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1381:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"1372:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:3:26","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":16171,"src":"1372:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1360:32:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1334:58:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7362,"nodeType":"IfStatement","src":"1330:118:26","trueBody":{"id":7361,"nodeType":"Block","src":"1394:54:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7358,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"1415:20:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:22:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7360,"nodeType":"RevertStatement","src":"1408:29:26"}]}},{"condition":{"id":7371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1628:53:26","subExpression":{"arguments":[{"expression":{"id":7368,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"1667:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1669:11:26","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"1667:13:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":7363,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1629:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1638:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"1629:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1646:4:26","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":16158,"src":"1629:21:26","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":7366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1651:8:26","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"1629:30:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":7367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:26","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14383,"src":"1629:37:26","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":7370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1629:52:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7376,"nodeType":"IfStatement","src":"1624:118:26","trueBody":{"id":7375,"nodeType":"Block","src":"1683:59:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7372,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"1704:25:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1704:27:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7374,"nodeType":"RevertStatement","src":"1697:34:26"}]}},{"assignments":[7378],"declarations":[{"constant":false,"id":7378,"mutability":"mutable","name":"shouldBurn","nameLocation":"1805:10:26","nodeType":"VariableDeclaration","scope":7390,"src":"1800:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7377,"name":"bool","nodeType":"ElementaryTypeName","src":"1800:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7382,"initialValue":{"arguments":[{"id":7380,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1838:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}],"id":7379,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7571,"src":"1818:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":7381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1818:29:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1800:47:26"},{"expression":{"arguments":[{"expression":{"expression":{"id":7384,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1883:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1892:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"1883:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1900:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"1883:22:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7387,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7378,"src":"1919:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7383,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7591,"src":"1858:20:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1880:1:26","1907:10:26"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"1858:73:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7389,"nodeType":"ExpressionStatement","src":"1858:73:26"}]},"documentation":{"id":7337,"nodeType":"StructuredDocumentation","src":"926:287:26","text":" @dev sends an arbitrary cross-message from the local subnet to the destination subnet.\n IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\n @param crossMsg - a cross-message to send"},"functionSelector":"c13175ef","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"expression":{"id":7343,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1298:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1307:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"1298:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1315:3:26","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":16171,"src":"1298:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7346,"kind":"modifierInvocation","modifierName":{"id":7342,"name":"validFee","nameLocations":["1289:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":11225,"src":"1289:8:26"},"nodeType":"ModifierInvocation","src":"1289:30:26"}],"name":"sendCrossMessage","nameLocation":"1227:16:26","parameters":{"id":7341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7340,"mutability":"mutable","name":"crossMsg","nameLocation":"1262:8:26","nodeType":"VariableDeclaration","scope":7391,"src":"1244:26:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":7339,"nodeType":"UserDefinedTypeName","pathNode":{"id":7338,"name":"CrossMsg","nameLocations":["1244:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1244:8:26"},"referencedDeclaration":16155,"src":"1244:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1243:28:26"},"returnParameters":{"id":7347,"nodeType":"ParameterList","parameters":[],"src":"1320:0:26"},"scope":7592,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":7457,"nodeType":"FunctionDefinition","src":"2089:828:26","nodes":[],"body":{"id":7456,"nodeType":"Block","src":"2141:776:26","nodes":[],"statements":[{"assignments":[7399],"declarations":[{"constant":false,"id":7399,"mutability":"mutable","name":"crossMsg","nameLocation":"2168:8:26","nodeType":"VariableDeclaration","scope":7456,"src":"2151:25:26","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"},"typeName":{"id":7398,"nodeType":"UserDefinedTypeName","pathNode":{"id":7397,"name":"CrossMsg","nameLocations":["2151:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2151:8:26"},"referencedDeclaration":16155,"src":"2151:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":7404,"initialValue":{"baseExpression":{"expression":{"id":7400,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"2179:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2181:7:26","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":11067,"src":"2179:9:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":7403,"indexExpression":{"id":7402,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7394,"src":"2189:6:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2179:17:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2151:45:26"},{"expression":{"arguments":[{"expression":{"expression":{"id":7406,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"2218:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":7407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2227:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2218:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage","typeString":"struct StorableMsg storage ref"}},"id":7408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2235:3:26","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":16171,"src":"2218:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7405,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"2206:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":7409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2206:33:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7410,"nodeType":"ExpressionStatement","src":"2206:33:26"},{"assignments":[7412],"declarations":[{"constant":false,"id":7412,"mutability":"mutable","name":"shouldBurn","nameLocation":"2255:10:26","nodeType":"VariableDeclaration","scope":7456,"src":"2250:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7411,"name":"bool","nodeType":"ElementaryTypeName","src":"2250:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7416,"initialValue":{"arguments":[{"id":7414,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"2288:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg storage pointer"}],"id":7413,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7571,"src":"2268:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":7415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:29:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2250:47:26"},{"assignments":[7418],"declarations":[{"constant":false,"id":7418,"mutability":"mutable","name":"v","nameLocation":"2571:1:26","nodeType":"VariableDeclaration","scope":7456,"src":"2563:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7417,"name":"uint256","nodeType":"ElementaryTypeName","src":"2563:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7422,"initialValue":{"expression":{"expression":{"id":7419,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"2575:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":7420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2584:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"2575:16:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage","typeString":"struct StorableMsg storage ref"}},"id":7421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2592:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"2575:22:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2563:34:26"},{"expression":{"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2607:24:26","subExpression":{"baseExpression":{"expression":{"id":7423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"2614:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2616:7:26","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":11067,"src":"2614:9:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":7426,"indexExpression":{"id":7425,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7394,"src":"2624:6:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2614:17:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage","typeString":"struct CrossMsg storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7428,"nodeType":"ExpressionStatement","src":"2607:24:26"},{"expression":{"arguments":[{"id":7430,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7418,"src":"2667:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7431,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"2682:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7429,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7591,"src":"2642:20:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":7432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2664:1:26","2670:10:26"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"2642:52:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7433,"nodeType":"ExpressionStatement","src":"2642:52:26"},{"assignments":[7435],"declarations":[{"constant":false,"id":7435,"mutability":"mutable","name":"feeRemainder","nameLocation":"2713:12:26","nodeType":"VariableDeclaration","scope":7456,"src":"2705:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7434,"name":"uint256","nodeType":"ElementaryTypeName","src":"2705:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7441,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7436,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2728:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2732:5:26","memberName":"value","nodeType":"MemberAccess","src":"2728:9:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":7438,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"2740:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2742:14:26","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":11128,"src":"2740:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2728:28:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2705:51:26"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7442,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7435,"src":"2824:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2840:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2824:17:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7455,"nodeType":"IfStatement","src":"2820:91:26","trueBody":{"id":7454,"nodeType":"Block","src":"2843:68:26","statements":[{"expression":{"arguments":[{"id":7451,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7435,"src":"2887:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":7447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2865:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2869:6:26","memberName":"sender","nodeType":"MemberAccess","src":"2865:10:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2857:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7445,"name":"address","nodeType":"ElementaryTypeName","src":"2857:8:26","stateMutability":"payable","typeDescriptions":{}}},"id":7449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2857:19:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2877:9:26","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":290,"src":"2857:29:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":7452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2857:43:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7453,"nodeType":"ExpressionStatement","src":"2857:43:26"}]}}]},"documentation":{"id":7392,"nodeType":"StructuredDocumentation","src":"1944:140:26","text":" @dev propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message"},"functionSelector":"25bf0db6","implemented":true,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"2098:9:26","parameters":{"id":7395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7394,"mutability":"mutable","name":"msgCid","nameLocation":"2116:6:26","nodeType":"VariableDeclaration","scope":7457,"src":"2108:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2108:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2107:16:26"},"returnParameters":{"id":7396,"nodeType":"ParameterList","parameters":[],"src":"2141:0:26"},"scope":7592,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":7571,"nodeType":"FunctionDefinition","src":"3220:1240:26","nodes":[],"body":{"id":7570,"nodeType":"Block","src":"3314:1146:26","nodes":[],"statements":[{"assignments":[7468],"declarations":[{"constant":false,"id":7468,"mutability":"mutable","name":"to","nameLocation":"3340:2:26","nodeType":"VariableDeclaration","scope":7570,"src":"3324:18:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":7467,"nodeType":"UserDefinedTypeName","pathNode":{"id":7466,"name":"SubnetID","nameLocations":["3324:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"3324:8:26"},"referencedDeclaration":16209,"src":"3324:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":7473,"initialValue":{"expression":{"expression":{"expression":{"id":7469,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7461,"src":"3345:12:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":7470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3358:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3345:20:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":7471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3366:2:26","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"3345:23:26","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":7472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3369:8:26","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"3345:32:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"3324:53:26"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7474,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7468,"src":"3391:2:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":7475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:26","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"3391:10:26","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":7476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3391:12:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7481,"nodeType":"IfStatement","src":"3387:76:26","trueBody":{"id":7480,"nodeType":"Block","src":"3405:58:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7477,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"3426:24:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:26:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7479,"nodeType":"RevertStatement","src":"3419:33:26"}]}},{"condition":{"arguments":[{"expression":{"id":7484,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"3593:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3595:11:26","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"3593:13:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":7482,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7468,"src":"3583:2:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":7483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3586:6:26","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14383,"src":"3583:9:26","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":7486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:24:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7491,"nodeType":"IfStatement","src":"3579:90:26","trueBody":{"id":7490,"nodeType":"Block","src":"3609:60:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7487,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6059,"src":"3630:26:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3630:28:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7489,"nodeType":"RevertStatement","src":"3623:35:26"}]}},{"assignments":[7494],"declarations":[{"constant":false,"id":7494,"mutability":"mutable","name":"from","nameLocation":"3695:4:26","nodeType":"VariableDeclaration","scope":7570,"src":"3679:20:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":7493,"nodeType":"UserDefinedTypeName","pathNode":{"id":7492,"name":"SubnetID","nameLocations":["3679:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"3679:8:26"},"referencedDeclaration":16209,"src":"3679:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":7499,"initialValue":{"expression":{"expression":{"expression":{"id":7495,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7461,"src":"3702:12:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":7496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3715:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3702:20:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":7497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:4:26","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":16158,"src":"3702:25:26","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":7498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3728:8:26","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"3702:34:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"3679:57:26"},{"assignments":[7502],"declarations":[{"constant":false,"id":7502,"mutability":"mutable","name":"applyType","nameLocation":"3757:9:26","nodeType":"VariableDeclaration","scope":7570,"src":"3746:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"typeName":{"id":7501,"nodeType":"UserDefinedTypeName","pathNode":{"id":7500,"name":"IPCMsgType","nameLocations":["3746:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":6038,"src":"3746:10:26"},"referencedDeclaration":6038,"src":"3746:10:26","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":7509,"initialValue":{"arguments":[{"expression":{"id":7506,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"3800:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3802:11:26","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"3800:13:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":7503,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7461,"src":"3769:12:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":7504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3782:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3769:20:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":7505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3790:9:26","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":14002,"src":"3769:30:26","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$16172_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_enum$_IPCMsgType_$6038_$attached_to$_t_struct$_StorableMsg_$16172_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":7508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3769:45:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"3746:68:26"},{"assignments":[7511],"declarations":[{"constant":false,"id":7511,"mutability":"mutable","name":"shouldCommitBottomUp","nameLocation":"3887:20:26","nodeType":"VariableDeclaration","scope":7570,"src":"3882:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7510,"name":"bool","nodeType":"ElementaryTypeName","src":"3882:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7512,"nodeType":"VariableDeclarationStatement","src":"3882:25:26"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"id":7516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7513,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"3922:9:26","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7514,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"3935:10:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$6038_$","typeString":"type(enum IPCMsgType)"}},"id":7515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3946:8:26","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":6037,"src":"3935:19:26","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"src":"3922:32:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7530,"nodeType":"IfStatement","src":"3918:130:26","trueBody":{"id":7529,"nodeType":"Block","src":"3956:92:26","statements":[{"expression":{"id":7527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7517,"name":"shouldCommitBottomUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7511,"src":"3970:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3993:44:26","subExpression":{"arguments":[{"expression":{"id":7523,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4023:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4025:11:26","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"4023:13:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[{"id":7520,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7494,"src":"4010:4:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":7518,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7468,"src":"3994:2:26","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":7519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3997:12:26","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":14504,"src":"3994:15:26","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":7521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:21:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":7522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4016:6:26","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14383,"src":"3994:28:26","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":7525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:43:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3970:67:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7528,"nodeType":"ExpressionStatement","src":"3970:67:26"}]}},{"condition":{"id":7531,"name":"shouldCommitBottomUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7511,"src":"4062:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7548,"nodeType":"IfStatement","src":"4058:211:26","trueBody":{"id":7547,"nodeType":"Block","src":"4084:185:26","statements":[{"expression":{"arguments":[{"id":7535,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7461,"src":"4127:12:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":7532,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"4098:10:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4109:17:26","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":10900,"src":"4098:28:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":7536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4098:42:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7537,"nodeType":"ExpressionStatement","src":"4098:42:26"},{"expression":{"components":[{"id":7544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7538,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7464,"src":"4213:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7539,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7461,"src":"4226:12:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":7540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4239:7:26","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"4226:20:26","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":7541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4247:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"4226:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4256:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4226:31:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4213:44:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4212:46:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7465,"id":7546,"nodeType":"Return","src":"4205:53:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"id":7552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7549,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"4283:9:26","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7550,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"4296:10:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$6038_$","typeString":"type(enum IPCMsgType)"}},"id":7551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4307:7:26","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":6036,"src":"4296:18:26","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"src":"4283:31:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7558,"nodeType":"IfStatement","src":"4279:85:26","trueBody":{"id":7557,"nodeType":"Block","src":"4316:48:26","statements":[{"expression":{"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4330:23:26","subExpression":{"expression":{"id":7553,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4332:1:26","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4334:19:26","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":11137,"src":"4332:21:26","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":7556,"nodeType":"ExpressionStatement","src":"4330:23:26"}]}},{"expression":{"arguments":[{"id":7562,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7461,"src":"4402:12:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":7559,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"4374:10:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4385:16:26","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":10852,"src":"4374:27:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":7563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4374:41:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7564,"nodeType":"ExpressionStatement","src":"4374:41:26"},{"expression":{"components":[{"id":7567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7565,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7464,"src":"4434:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4447:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4434:18:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7568,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4433:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7465,"id":7569,"nodeType":"Return","src":"4426:27:26"}]},"documentation":{"id":7458,"nodeType":"StructuredDocumentation","src":"2923:292:26","text":" @dev Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt.\n It also validates that destination subnet ID is not empty\n and not equal to the current network."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCrossMessage","nameLocation":"3229:19:26","parameters":{"id":7462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7461,"mutability":"mutable","name":"crossMessage","nameLocation":"3265:12:26","nodeType":"VariableDeclaration","scope":7571,"src":"3249:28:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":7460,"nodeType":"UserDefinedTypeName","pathNode":{"id":7459,"name":"CrossMsg","nameLocations":["3249:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"3249:8:26"},"referencedDeclaration":16155,"src":"3249:8:26","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"3248:30:26"},"returnParameters":{"id":7465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7464,"mutability":"mutable","name":"shouldBurn","nameLocation":"3302:10:26","nodeType":"VariableDeclaration","scope":7571,"src":"3297:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7463,"name":"bool","nodeType":"ElementaryTypeName","src":"3297:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3296:17:26"},"scope":7592,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7591,"nodeType":"FunctionDefinition","src":"4773:163:26","nodes":[],"body":{"id":7590,"nodeType":"Block","src":"4840:96:26","nodes":[],"statements":[{"condition":{"id":7579,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"4854:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7589,"nodeType":"IfStatement","src":"4850:80:26","trueBody":{"id":7588,"nodeType":"Block","src":"4866:64:26","statements":[{"expression":{"arguments":[{"id":7585,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"4917:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":7582,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"4888:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7580,"name":"address","nodeType":"ElementaryTypeName","src":"4880:8:26","stateMutability":"payable","typeDescriptions":{}}},"id":7583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:26:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4907:9:26","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":290,"src":"4880:36:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":7586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7587,"nodeType":"ExpressionStatement","src":"4880:39:26"}]}}]},"documentation":{"id":7572,"nodeType":"StructuredDocumentation","src":"4466:302:26","text":" @dev Performs transaction side-effects from the commitment of a cross-net message. Like\n burning funds when bottom-up messages are propagated.\n @param v - the value of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds"},"implemented":true,"kind":"function","modifiers":[],"name":"_crossMsgSideEffects","nameLocation":"4782:20:26","parameters":{"id":7577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7574,"mutability":"mutable","name":"v","nameLocation":"4811:1:26","nodeType":"VariableDeclaration","scope":7591,"src":"4803:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7573,"name":"uint256","nodeType":"ElementaryTypeName","src":"4803:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7576,"mutability":"mutable","name":"shouldBurn","nameLocation":"4819:10:26","nodeType":"VariableDeclaration","scope":7591,"src":"4814:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7575,"name":"bool","nodeType":"ElementaryTypeName","src":"4814:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4802:28:26"},"returnParameters":{"id":7578,"nodeType":"ParameterList","parameters":[],"src":"4840:0:26"},"scope":7592,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":7324,"name":"GatewayActorModifiers","nameLocations":["771:21:26"],"nodeType":"IdentifierPath","referencedDeclaration":11226,"src":"771:21:26"},"id":7325,"nodeType":"InheritanceSpecifier","src":"771:21:26"}],"canonicalName":"GatewayMessengerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[7592,11226],"name":"GatewayMessengerFacet","nameLocation":"746:21:26","scope":7593,"usedErrors":[4,8,6059,6093,6095,6099,6141,6143,6155]}],"license":"UNLICENSED"},"id":26} \ No newline at end of file diff --git a/contracts/out/GatewayRouterFacet.sol/GatewayRouterFacet.json b/contracts/out/GatewayRouterFacet.sol/GatewayRouterFacet.json deleted file mode 100644 index 3d593258fc..0000000000 --- a/contracts/out/GatewayRouterFacet.sol/GatewayRouterFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addCheckpointSignature","inputs":[{"name":"height","type":"uint64","internalType":"uint64"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applyCrossMessages","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applyFinalityChanges","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"commitBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"hasCommittedBefore","type":"bool","internalType":"bool"},{"name":"previousFinality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpCheckpoints","inputs":[{"name":"newRetentionHeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeValidatorChanges","inputs":[{"name":"changeRequests","type":"tuple[]","internalType":"struct StakingChangeRequest[]","components":[{"name":"change","type":"tuple","internalType":"struct StakingChange","components":[{"name":"op","type":"uint8","internalType":"enum StakingOperation"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"validator","type":"address","internalType":"address"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"QuorumReached","inputs":[{"name":"height","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"checkpoint","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"quorumWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumWeightUpdated","inputs":[{"name":"height","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"checkpoint","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CheckpointAlreadyExists","inputs":[]},{"type":"error","name":"CheckpointAlreadyProcessed","inputs":[]},{"type":"error","name":"CheckpointNotCreated","inputs":[]},{"type":"error","name":"FailedAddIncompleteCheckpoint","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteCheckpoint","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointSource","inputs":[]},{"type":"error","name":"InvalidConfigurationNumber","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSubnet","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughSubnetCircSupply","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ParentFinalityAlreadyCommitted","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotActive","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657614a06908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630df14461146113c057806311196974146112fc5780632a04f22014610e5e578063a656ca5b146109cb578063ae00c29814610727578063c62eb4d5146106ae578063e49a547d1461066d5763f456b39e1461007457600080fd5b346105eb576003196040368201126105eb576001600160401b03600435116105eb5760a081600435360301126105eb576024356001600160401b0381116105eb576100c3903690600401611517565b61010060206100df366100da600480350180611547565b611570565b60405180938192632cff562160e11b83528460048401526024830190611627565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156104cb57600091610633575b50336001600160a01b039091160361062157331561060f5760405161014c8161141e565b6001600160401b0360115416815260405180602060125491828152019060126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449060005b8181106105f05750505091816101b06000936101d795038261146f565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611627565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156104cb5760009061050a575b61020e91506132d0565b9390156104f95761024d9061022b366100da600480350180611547565b9060405192839263c836244d60e01b8452604060048501526044840190611627565b90828203016024830152604081016001600160401b03600488015416825260606005880192604060208201528354809352019160005260206000209060005b8181106104d7575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156104cb5760009161049c575b501561048a5760ff600384015460801c1692600684101561047457600180940361046257600080946000905b8482106104215750506103046002918661175b565b91019283549382851061040f5761032161033d9361034396611768565b9055610335366100da600480350180611547565b923691611804565b90611ca3565b610351602460043501611964565b6040516001600160401b03602082019263f9002bb160e01b845216602482015282604482015260448152608081018181106001600160401b038211176103f957806040528347106103e4576103da6000808686865191335af13d156103dc573d906103bb826114a7565b916103c9604051938461146f565b82523d6000602084013e5b33611978565b005b6060906103d4565b60249163cd78605960e01b8252608430910152fd5b634e487b7160e01b600052604160045260246000fd5b604051631d36ca1560e21b8152600490fd5b61045a610449839894604061044161043b86978b8d611719565b80611746565b01359061175b565b9360c061044161043b8b8a8c611719565b9601906102ef565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516303b5db8360e11b8152600490fd5b6104be915060203d6020116104c4575b6104b6818361146f565b810190611682565b386102c3565b503d6104ac565b6040513d6000823e3d90fd5b82546001600160a01b031684528594506020909301926001928301920161028c565b6040516208ed5b60e31b8152600490fd5b503d806000833e61051b818361146f565b8101906020818303126105eb578051906001600160401b0382116105eb5701906040828203126105eb57604051916105528361141e565b80516001600160401b03811681036105eb5783526020810151906001600160401b0382116105eb57019080601f830112156105eb57815161059281611490565b926105a0604051948561146f565b81845260208085019260051b8201019283116105eb57602001905b8282106105d357505050602082015261020e90610204565b602080916105e084611613565b8152019101906105bb565b600080fd5b82546001600160a01b0316845260209093019260019283019201610193565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011610665575b8161064e6020938361146f565b810103126105eb5761065f90611613565b38610128565b3d9150610641565b346105eb5760203660031901126105eb576004356001600160401b0381116105eb576106a06103da913690600401611517565b906106a9613442565b6134cd565b346105eb5760203660031901126105eb576001600160401b036004358181116105eb576106df903690600401611517565b916106e8613442565b6040519160208301918211838310176103f9576103da9361033d9260405260008452604051936107178561141e565b6000855260208501523691611804565b346105eb5760203660031901126105eb576107406113f4565b610748613442565b6001600160401b03600b5416806001600160401b03831611156109b9575b6001600160401b0382166001600160401b038216101561099b576001600160401b038116600052600860205260006004604082208281556107a960018201611de8565b8260029181838201558160056003928284820155828782015501556001600160401b038616825260096020528160408120938185558160018601558401558201550155600e6020526040600020805490600081558161097a575b50506001600160401b038116600052600a602052604060002080549060008155816108fa575b50506001600160401b038116600052600e6020526040600020604051808260208294549384815201906000526020600020926000905b8082106108de5750506108749250038261146f565b80519060005b828110610895575050506001016001600160401b0316610766565b6001600160401b0384166000908152600f60205260409020600191906001600160a01b036108c383866119f0565b51166000526020526108d86040600020612a4f565b0161087a565b916001919350602082918654815201940192018492939161085f565b600d82810204820361096457600052602060002090600d028101905b81811015610829578061092a600d92612a98565b61093660048201612a98565b6000600882015560006009820155610950600a8201612a4f565b6000600b8201556000600c82015501610916565b634e487b7160e01b600052601160045260246000fd5b6000526020600020908101905b818110156108035760008155600101610987565b600b805467ffffffffffffffff19166001600160401b038416179055005b604051636819a3a960e01b8152600490fd5b346105eb576003196060368201126105eb576001600160401b03600435116105eb5760a06004353603918201126105eb57604435610a07613442565b610a15602460043501611964565b6001600160401b0380600b5416911610610e4c57610a37602460043501611964565b6001600160401b03601654168015610e36576001600160401b038092160616610e24576001600160401b036002610a8e610a75602460043501611964565b6001600160401b03166000526008602052604060002090565b015416610e12578015610e005760ff601554168181810204810361096457610acb6001600160401b03610ac5602460043501611964565b1661288b565b15610dee57604051602080820152926042190160048035013512156105eb5760043560043560040135019260a060408201526101208101936001600160401b03610b176004830161140a565b1660e08301526024810135602219823603018112156105eb5701602460048201359101946001600160401b0382116105eb578160051b360386136105eb5781906040610100850152526101408201949060005b818110610dc857505050610bd981606494956001600160401b03610b9260246004350161140a565b1660608301526044600435013560808301526001600160401b03610bb9876004350161140a565b1660a08301526004356084013560c083015203601f19810183528261146f565b602081519101209260405193610bee85611439565b8452602435602085015202046040820152600060608201526000608082015260405190610c1a82611439565b6001600160401b0360043560040135116105eb57610c413660048035808201350101611570565b8252610c5160246004350161140a565b918260208201526040810192604460043501358452610c7460646004350161140a565b9060608301918252610caf6001600160401b036080850192608460043501358452166001600160401b03166000526008602052604060002090565b91835160206001600160401b03825116916001600160401b0319928387541617865501519687516001600160401b0381116103f95760019860208a880191610cf78484611e0c565b0190600052602060002060005b838110610dac57506103da8b600460808d610d738e8e60058f8f8f8f6001600160401b03602060028801980151169687838254161790555160038601556001600160401b038a860192511690825416179055519101556001600160401b03166000526009602052604060002090565b938151855560208201519085015560408101516002850155606081015160038501550151151591019060ff801983541691151516179055565b82516001600160a01b0316818301556020909201918b01610d04565b909195602080600192838060a01b03610de08b61155c565b168152019701929101610b6a565b60405163ee6c026760e01b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b634e487b7160e01b600052601260045260246000fd5b6040516376afb88d60e01b8152600490fd5b346105eb5760803660031901126105eb57610e776113f4565b602435906001600160401b0382116105eb57366023830112156105eb57816004013591610ea383611490565b92610eb1604051948561146f565b8084526024602085019160051b830101913683116105eb57602401905b8282106112ec575050506064356001600160401b0381116105eb57610ef79036906004016114f9565b916001600160401b03600b54166001600160401b03831610610e4c57610f30826001600160401b03166000526008602052604060002090565b610f4d836001600160401b03166000526009602052604060002090565b906001600160401b03600282015416156112da57610f6c858354612788565b506004819692961015610474576112c8576001600160401b0381166000908152600e602090815260408083206001600160a01b03891684526001019091529020546112b657604080516001600160a01b0387166020820190815260443582840152918152610fdb60608261146f565b5190206040516020810191825260208152610ff58161141e565b51902095600184015496956000965b86518810156110515761101788886119f0565b5190818110156110405760005260205260406000205b9660001981146109645760010196611004565b90600052602052604060002061102d565b8803611294576001600160401b038316600052600e60205261107f60018060a01b0382166040600020612908565b15611282576001600160401b038316600052600f60205260406000209060018060a01b03166000526020526040600020908051906001600160401b0382116103f95781906110d7826110d18654611a04565b86611e40565b602090601f831160011461121c57600092611211575b50508160011b916000199060031b1c19161790555b6003830191611114604435845461175b565b808455600285015481101561112557005b600485018054909160ff82166111bf575060ff1916600117905560020154611155906001600160401b0316612965565b156111ad576111a87f6e19758a6cc7e71b17c341543844325f2a6ad8294af979c7b386fc4d3814e93493549254604051938493846040919493926001600160401b03606083019616825260208201520152565b0390a1005b604051637e5145ed60e01b8152600490fd5b94505050506111a87f24836090f2da17128f839618852e98c2586a5693517e15f15497223bd26c6045935492604051938493846040919493926001600160401b03606083019616825260208201520152565b0151905086806110ed565b6000858152602081209350601f198516905b81811061126a5750908460019594939210611251575b505050811b019055611102565b015160001960f88460031b161c19169055868080611244565b9293602060018192878601518155019501930161122e565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610ece565b346105eb5760403660031901126105eb576040516113198161141e565b60008152600060208092015261132d613442565b60008160405161133c8161141e565b8281520152600254906004358083116113ae576060926000526001825260406000209160016040519361136e8561141e565b8054855201549181840192835280600052600182526040600020818155600160243591015560025582511515926040519384525190830152516040820152f35b60405163153ad84160e11b8152600490fd5b346105eb5760003660031901126105eb576113d9613442565b60206113e3611ae4565b6001600160401b0360405191168152f35b600435906001600160401b03821682036105eb57565b35906001600160401b03821682036105eb57565b604081019081106001600160401b038211176103f957604052565b60a081019081106001600160401b038211176103f957604052565b606081019081106001600160401b038211176103f957604052565b90601f801991011681019081106001600160401b038211176103f957604052565b6001600160401b0381116103f95760051b60200190565b6001600160401b0381116103f957601f01601f191660200190565b9291926114ce826114a7565b916114dc604051938461146f565b8294818452818301116105eb578281602093846000960137010152565b9080601f830112156105eb57816020611514933591016114c2565b90565b9181601f840112156105eb578235916001600160401b0383116105eb576020808501948460051b0101116105eb57565b903590603e19813603018212156105eb570190565b35906001600160a01b03821682036105eb57565b91906040838203126105eb57604051926115898461141e565b836115938261140a565b815260209182810135906001600160401b0382116105eb57019280601f850112156105eb5783356115c381611490565b946115d1604051968761146f565b818652848087019260051b8201019283116105eb5784809101915b8383106115fb57505050500152565b81906116068461155c565b81520191019084906115ec565b51906001600160a01b03821682036105eb57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611665575050505090565b83516001600160a01b031685529381019392810192600101611657565b908160209103126105eb575180151581036105eb5790565b60408101906001600160401b036011541681526060602091604083820152601254809452019160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444916000905b8282106116f9575050505090565b83546001600160a01b0316855293840193600193840193909101906116eb565b90821015611730576115149160051b810190611547565b634e487b7160e01b600052603260045260246000fd5b90359060de19813603018212156105eb570190565b9190820180921161096457565b9190820391821161096457565b91906040838203126105eb576040519261178e8461141e565b838135916001600160401b03928381116105eb57846117ae918301611570565b82526020810135908382116105eb57016040818503126105eb57604051936117d58561141e565b813560ff811681036105eb57855260208201359384116105eb576020936117fc92016114f9565b828401520152565b9092919261181181611490565b916040916118218351948561146f565b839581855260208095019160051b8301938185116105eb5783925b85841061184c5750505050505050565b6001600160401b039084358281116105eb5786019183838603126105eb578351926118768461141e565b80358281116105eb57810160e09081818903126105eb5786519182018281108582111761194f57875280358481116105eb57886118b4918301611775565b82528b8101358481116105eb57886118cd918301611775565b8c830152868101358783015260606118e681830161140a565b90830152608081810135906001600160e01b0319821682036105eb5783015260a0808201359485116105eb5761191f898e9684016114f9565b9083015260c08091013590820152845201359081151582036105eb5782899392848094015281520193019261183c565b60246000634e487b7160e01b81526041600452fd5b356001600160401b03811681036105eb5790565b90156119b657815115611989575090565b803b15611994575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b508051156119c657805190602001fd5b604051630a12f52160e11b8152600490fd5b9060016001600160401b038093160191821161096457565b80518210156117305760209160051b010190565b90600182811c92168015611a34575b6020831014611a1e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611a13565b9060405191826000825492611a5284611a04565b908184526001948581169081600014611ac15750600114611a7e575b5050611a7c9250038361146f565b565b9093915060005260209081600020936000915b818310611aa9575050611a7c93508201013880611a6e565b85548884018501529485019487945091830191611a91565b915050611a7c94506020925060ff191682840152151560051b8201013880611a6e565b6020805491906001600160401b03808416600019019181831161096457611b0a836119d8565b8280604097881c16911614611c9a57611b228361371f565b61ffff9182601a541695611b3587611490565b611b418251918261146f565b878152601f199485611b528a611490565b0136868401376001809981805b611c53575b50505050805190611b7482611490565b95611b818451978861146f565b828752611b8d83611490565b018560005b828110611c2a5750505060005b828110611bc857505050611514949596505192611bbb8461141e565b8352841690820152612de9565b89906001600160a01b03611bdc82856119f0565b51168060005260198852611c0a600287600020805493895194611bfe86611454565b85528b85015201611a3e565b86820152611c18828a6119f0565b52611c2381896119f0565b5001611b9f565b8551611c3581611454565b6000815260008382015260608782015282828b010152018690611b92565b838116828111611c94576000908152601c895286902054849184916001600160a01b0316611c8b84611c84846134b9565b16896119f0565b52011682611b5f565b50611b64565b50600093505050565b81519160005b838110611cb65750505050565b80611ccd611cc6600193856119f0565b5185611e85565b01611ca9565b60005b838110611ce65750506000910152565b8181015183820152602001611cd6565b90602091611d0f81518092818552858086019101611cd3565b601f01601f1916010190565b604060206115149381611d35855185845285840190611627565b940151908281860391015260ff81511684520151918160208201520190611cf6565b9060c080611dc8611d86611d74865160e0875260e0870190611d1b565b60208701518682036020880152611d1b565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611cf6565b93015191015290565b818110611ddc575050565b60008155600101611dd1565b80546000825580611df7575050565b611a7c91600052602060002090810190611dd1565b90600160401b81116103f957815490808355818110611e2a57505050565b611a7c9260005260206000209182019101611dd1565b9190601f8111611e4f57505050565b611a7c926000526020600020906020601f840160051c83019310611e7b575b601f0160051c0190611dd1565b9091508190611e6e565b9190916020835101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180611ecb630c133d1360e31b968783528460048401526024830190611627565b0381875af49081156104cb57600091612769575b5061275757845160808101516001600160e01b0319949190851615612735575b50855192611f256040519463f47ad7eb60e01b8652604060048701526044860190611d57565b60208580611f3f600319948583820301602484015261169a565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49485156104cb576000956126ef575b506020611f99818a51015151611fa8604051948593849363c836244d60e01b8552604060048601526044850190611627565b9083820301602484015261169a565b0381865af49081156104cb576000916126d0575b506124a657505050506040516120778160208101936020855260c0612054885192604080860152611ffa845160e06080880152610160870190612abb565b612016602086015191607f1992838983030160a08a0152612abb565b916040860151858801526001600160401b0360608701511660e088015260808601511661010087015260a08501519086830301610120870152611cf6565b91015161014083015260208701511515606083015203601f19810183528261146f565b51902060005260036020526040600020825192835180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b0383116103f9576020906120d08484611e0c565b0190600052602060002060005b838110612489575050505060209081600285019101519060ff82511660ff1982541617905501518051906001600160401b0382116103f9578190612131826121286003880154611a04565b60038801611e40565b602090601f83116001146124175760009261240c575b50508160011b916000199060031b1c19161760038301555b600482016020850151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b0383116103f9576020906121ae8484611e0c565b0190600052602060002060005b8381106123ef57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b0382116103f9578190612208826110d18654611a04565b602090601f83116001146123895760009261237e575b50508160011b916000199060031b1c19161790555b60408401516008830155600982016001600160401b036060860151168154906bffffffff0000000000000000608088015160a01c16916001600160601b03191617179055600a82019360a08101519485516001600160401b0381116103f9576122a6816122a08454611a04565b84611e40565b6020601f821160011461230a5792600c94928260c093602096611a7c9a9b6000926122ff575b50508160011b916000199060031b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b0151905038806122cc565b601f198216978360005260206000209860005b818110612366575083611a7c999a60209794600c99979460c0976001951061234d575b505050811b0190556122e1565b015160001960f88460031b161c19169055388080612340565b838301518b556001909a01996020938401930161231d565b01519050388061221e565b6000858152602081209350601f198516905b8181106123d757509084600195949392106123be575b505050811b019055612233565b015160001960f88460031b161c191690553880806123b1565b9293602060018192878601518155019501930161239b565b82516001600160a01b0316818301556020909201916001016121bb565b015190503880612147565b9250600385016000526020600020906000935b601f198416851061246e576001945083601f19811610612455575b505050811b01600383015561215f565b015160001960f88460031b161c19169055388080612445565b8181015183556020948501946001909301929091019061242a565b82516001600160a01b0316818301556020909201916001016120dd565b9091929350600284969596101561047457600184146125fd575b5050501561259b575b6000604051808093635c46fefb60e11b82526020600483015260206124fa8251604060248601526064850190611d57565b91015115156044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156104cb5761252a5750565b3d806000833e61253a818361146f565b8101906020818303126105eb578051906001600160401b0382116105eb570181601f820112156105eb57805190612570826114a7565b9261257e604051948561146f565b828452602083830101116105eb57602080611a7c94019101611cd3565b6015546001600160401b03808260481c16906060845101511681036125eb576125cf67ffffffffffffffff60481b916119d8565b60481b169067ffffffffffffffff60481b1916176015556124c9565b60405163a57cadff60e01b8152600490fd5b6020906040519283918252826004830152818061261d6024820188611627565b03915af49081156104cb576000916126b1575b501561263e575b80806124c0565b612647906132d0565b901561269f5760030180546001600160401b03808260401c16906060865101511681036125eb5761268367ffffffffffffffff60401b916119d8565b60401b169067ffffffffffffffff60401b191617905538612637565b604051630e991abd60e41b8152600490fd5b6126ca915060203d6020116104c4576104b6818361146f565b38612630565b6126e9915060203d6020116104c4576104b6818361146f565b38611fbc565b6020959195813d60201161272d575b8161270b6020938361146f565b81010312612729575190600282101561272657509338611f67565b80fd5b5080fd5b3d91506126fe565b6040015147106127455738611eff565b60405163569d45cf60e11b8152600490fd5b60405163c5f563eb60e01b8152600490fd5b612782915060203d6020116104c4576104b6818361146f565b38611edf565b81519190604183036127b9576127b292506020820151906060604084015193015160001a906127c4565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161284857926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561283c5780516001600160a01b0381161561283357918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b600c5481101561173057600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70190600090565b6000818152600d602052604081205461290357600c54600160401b8110156128ef5790826128db6128c484600160409601600c55612854565b819391549060031b91821b91600019901b19161790565b9055600c54928152600d6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461295e57805490600160401b8210156103f957600182018082558210156117305782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600d60205260408120549091908015612a4a5760001990808201818111612a3657600c5490838201918211612a22578082036129ee575b505050600c5480156129da578101906129b982612854565b909182549160031b1b19169055600c558152600d6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b612a0c6129fd6128c493612854565b90549060031b1c928392612854565b90558452600d60205260408420553880806129a1565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b612a598154611a04565b9081612a63575050565b81601f60009311600114612a75575055565b908083918252612a94601f60208420940160051c840160018501611dd1565b5555565b6003611a7c9160008155612aae60018201611de8565b6000600282015501612a4f565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110612b2b575050509360408381938161151497980151908281860391015260ff81511684520151938201520190611cf6565b82516001600160a01b031688529685019691850191600101612af7565b908082519081815260208091019281808460051b8301019501936000915b848310612b765750505050505090565b9091929394958480612bb7600193601f198682030187528a5180518252858060a01b0384820151168483015260408091015191606080928201520190611cf6565b9801930193019194939290612b66565b90808214612c9b57612bd98154611a04565b906001600160401b0382116103f9578190612bf8826110d18654611a04565b600090601f8311600114612c2f57600092612c24575b50508160011b916000199060031b1c1916179055565b015490503880612c0e565b81526020808220858352818320935090601f1985169083905b828210612c82575050908460019594939210612c69575b505050811b019055565b015460001960f88460031b161c19169055388080612c5f565b8495819295850154815560018091019601940190612c48565b5050565b600454811015611730576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b90612dd35781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116103f957612d3883612d328754611a04565b87611e40565b81601f8411600114612d715750928293918392600094612d66575b50501b916000199060031b1c1916179055565b015192503880612d53565b919083601f1981168760005284600020946000905b88838310612db95750505010612da057505050811b019055565b015160001960f88460031b161c19169055388080612c5f565b858701518855909601959485019487935090810190612d86565b634e487b7160e01b600052600060045260246000fd5b6040805191602091828452612e08825182858701526060860190612b48565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a1836005541690816130f4575b505050600490815493600160401b938486116130df5760065486600655808710613040575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210612feb57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110612f79575050505116906005541617600555808311612f11575b50505050565b82811015612f0b5781548015612f66576000190190612f2f82612c9f565b929092612f5457858355612f4c6002600194888682015501612a4f565b835501612f11565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015612fa85780612fa2612f9260019386516119f0565b51612f9c83612c9f565b90612cda565b01612eee565b612fb38184516119f0565b51885483811015612fd85760019291612f9c8285612fd394018d55612c9f565b612fa2565b634e487b7160e01b8c5260418a5260248cfd5b806001918403613006575b6003809101930191019091612ec1565b805484558180850190838060a01b0390830154166001600160601b0360a01b82541617905561303b6002808301908601612bc7565b612ff6565b60039080820290828204036130ca5787820282810489036130b557600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b82811061309857505050612e74565b80828592558260018201556130af60028201612a4f565b01613089565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b848651168560075416908181146131e157106131d0578251926131168461141e565b60045461312281611490565b9161312f8151938461146f565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b84841061318e57505050918552505082015261317d90826131eb565b61318957388080612e4f565b505050565b600387600192845161319f81611454565b86548152848060a01b038588015416838201526131be60028801611a3e565b86820152815201930193019291613161565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361328c5761321181613294565b61321a84613294565b0361328c575180518351510361328c5761328561327991604051908161324a868201928784526040830190612b48565b039161325e601f199384810183528261146f565b51902094516040519384918683019687526040830190612b48565b0390810183528261146f565b5190201490565b505050600090565b8051519060009182915b8183106132ab5750505090565b9091926132c76001916132bf8685516119f0565b51519061175b565b9301919061329e565b73__$a0fe38a9a81205afccc10810b09a4d3f45$__906133106040918251906390ba52cf60e01b8252818060209485938460048401526024830190611627565b0381875af49081156134375760009161340a575b5060005260008152816000209282519061333d8261141e565b6001600160401b0360048601541682526005850184519081858254918281520191600052856000209060005b8181106133ed5750505091816133878695936133ac9795038261146f565b8383015285518080968194630c133d1360e31b83528660048401526024830190611627565b03915af49283156133e357506000926133c6575b50501591565b6133dc9250803d106104c4576104b6818361146f565b38806133c0565b513d6000823e3d90fd5b82546001600160a01b031684529287019260019283019201613369565b908282813d8311613430575b613420818361146f565b8101031261272657505138613324565b503d613416565b83513d6000823e3d90fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156104cb5760009161349b575b501561348957565b60405163f0d97f3b60e01b8152600490fd5b6134b3915060203d81116104c4576104b6818361146f565b38613481565b61ffff908116600019019190821161096457565b919080156137055760005b8181106134e55750509050565b6134f0818386611719565b9060406134fd838061370a565b6001600160a01b03910135818116908190036105eb5761351d848061370a565b359360038510156105eb57613532818061370a565b906020918281013590601e19813603018212156105eb57019283356001600160401b03948582116105eb57840181360381136105eb576135739136916114c2565b948484541695604051986135868a611454565b895284890190815260408901928352866000526021808652604060002099519060038210156136f1575060ff80198b541691161789555197885198868a116103f9576001998a808401926135de836110d18654611a04565b8890601f841160011461367457928060029593819361364b9c9b9a999896600094613669575b50501b916000199060031b1c19161790555b019151166001600160601b0360a01b82541617905583613635866119d8565b166001600160401b031983541617825501611964565b160361365757016134d8565b604051631aba532960e21b8152600490fd5b015192503880613604565b908460009493945289600020916000601f198516905b8181106136d057509161364b9b9a999897959391856002989694106136b7575b505050811b019055613616565b015160001960f88460031b161c191690553880806136aa565b938395968d92939491839286015181550195019301908f959493929161368a565b634e487b7160e01b60005260045260246000fd5b509050565b903590605e19813603018212156105eb570190565b602080546001600160401b039384841693929190858216851061374e5760405163040aaa0560e11b8152600490fd5b858260401c16851061392b57949392919084604091821c16955b8587168581116138f2576000978189526021988986528481209960029360018060a01b03858d0154169b60ff81541660038110156138de578087036137f0575060016137c8918d9e869e999a9b9c9d9e5260198c5201868a862001612bc7565b82528752858120928184556001936137e1858201612a4f565b01550116959493929190613768565b6137fd6001809301611a3e565b8a818051810103126138da57988d9e8b809d9e9f9a9b85849e8c9201519514600014613897576138709495838a528960199586855261383f8982842054611768565b96879587845252812091820180548515908161388e575b50156138845761386b94508183555501612a4f565b613ca0565b61387d6018918254611768565b90556137c8565b5050905055613ca0565b90501538613856565b50506138d593508091508652601991828d526138b6818d89205461175b565b928288528d52828c8820556138ce601891825461175b565b9055613933565b6137c8565b8580fd5b634e487b7160e01b85526004849052602485fd5b5095509250925061390e67ffffffffffffffff60401b916119d8565b83546fffffffffffffffff00000000000000001916921b16179055565b945050505050565b919060018060a01b0392838116936000858152602095601b875261ffff91604097838983205416613b8457836017541684601a541610613b5057866139766142cb565b91909110613aca5750828252601e81528389832054166139e95750505050506139e47f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946139c483613fdc565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6139f8869599949897966147e2565b92825260199081815284832054935b6001808b83161115613a945781617fff911c1690818552601f83528b8786205416855283835285878620541015613a4757613a429082614941565b613a07565b505093516001600160a01b0390951685525050505060208101919091529092507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd915080604081016139e4565b5050505050506139e491929395507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd94506139c4565b9596506139e4945090601e899493927ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75999a93613b0561449a565b835252205416613b42575b613b1984614428565b613b2283613fdc565b516001600160a01b03928316815292909116602083015281906040820190565b613b4b846141b5565b613b10565b50505050506139e47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946139c483614428565b613b958695989796999493996147ab565b9882526019908181528483205498613bac8b6143b7565b85601a5416905b868116828111613c685782811015613c4b575080613bd3613bd992613fc9565b90614759565b9c909c5b8c1115613bfc57613bee908d6148a8565b613bf78c6143b7565b613bb3565b505094516001600160a01b0390961686525050505060208201929092529193507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979250819050604081016139e4565b869d919d52601c8452828887205416865284845287862054613bdd565b50505050505050506139e491929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506139c4565b9160018060a01b039283811692600091848352602094601e865261ffff90604094828682205416613e8a57818152601b885282868220541615613e79578415613df457613cec846147ab565b918152601980895286822054925b6001808683161115613de35781617fff911c1690818452601c8b528b89852054168452828b5284898520541115613d3a57613d3590826148a8565b613cfa565b5050505050919395509193505b601d54161561318957613d586142cb565b90613d61614315565b909210613daa57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016139e4565b915091506139e47ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593613ddb61449a565b613b1061404e565b505050505091939550919350613d47565b5091613e27919597507f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b949693506145e3565b8451908152a1601d5416613e385750565b6139e47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd91613e65614315565b929091613e7061404e565b6139c483614428565b8551632a55ca5360e01b8152600490fd5b90939596869893959815613f90579261fffe929493613ea8876147e2565b9483526019918282528a8420549580976001968792831b1681601d5416925b613f1c575b50509a516001600160a01b039098168852505050506020840194909452509293507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9250905080604081016139e4565b818116838111613f8a578e9080851115613f6e57505080613f3f613f4592613fc9565b906143ce565b9990995b891015613f6957613f5a908a614941565b613f63896143b7565b87613ec7565b613ecc565b8852601f8652872054841687528585528d872054909990613f49565b50613ecc565b95505050509093613fc27f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94956141b5565b51908152a1565b90600161ffff8093160191821161096457565b611a7c90604061ffff613ff281601d5416613fc9565b9260018060a01b0316600091818352601e6020528383209085169061ffff19908282825416179055818452601f602052848420836001600160601b0360a01b825416179055601d541617601d558152601960205220549061435f565b61ffff80601d541680156141a357600161406a8282111561488b565b6000818152601f60208181526040808420805487865282862080546001600160a01b03928316808952601e8752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b03199081169092179093558989528454169091179092559396919493929161410091896140f1836134b9565b1690601d541617601d55614807565b84835285815281848420541683526019918282528484205496868099600281601d5416925b614138575b505050505050505050505050565b81811683811161419d5783811015614181575080613f3f61415892613fc9565b9b909b5b8b101561417c5761416d908c614941565b6141768b6143b7565b89614125565b61412a565b889c919c5283865284898920541688528686528888205461415c565b5061412a565b6040516340d9b01160e01b8152600490fd5b6141be906147e2565b61ffff80601d5416906141d18284614941565b806141db836134b9565b1661ffff19601d541617601d556141f182614807565b80831680921461318957919061fffe906000818152601f91602083815260018060a01b036040948186862054168552601993848452614233878720548a61435f565b85528083528186862054168552838352858520549780996001988992831b1681601d5416925b61426b57505050505050505050505050565b81811683811161419d57838110156142af575080613f3f61428b92613fc9565b9b909b5b8b101561417c576142a0908c614941565b6142a98b6143b7565b89614259565b889c919c5283865284898920541688528686528888205461428f565b61ffff601a5416156141a3577f6de76108811faf2f94afbe5ac6c98e8393206cd093932de1fbfd61bbeec43a02546001600160a01b03166000818152601960205260409020549091565b61ffff601d5416156141a3577f820fef5837650fa3b8e45045b88059d8deaf0810350ec511c47ef768a28c2c9b546001600160a01b03166000818152601960205260409020549091565b9190915b60018061ffff831611156143b15781617fff911c1690836000838152602090601f8252601960409260018060a01b038484205416835252205410156143b1576143ac9082614941565b614363565b50509050565b60011b906201fffe61fffe83169216820361096457565b91909161ffff92604060008584168152601f60205260018060a01b0380838320541682526019602052828220549684168252601f6020528282205416815260196020522054908185106144215750509190565b9350919050565b611a7c90604061ffff61443e81601a5416613fc9565b9260018060a01b0316600091818352601b6020528383209085169061ffff19908282825416179055818452601c602052848420836001600160601b0360a01b825416179055601a541617601a5581526019602052205490614707565b61ffff80601a541680156141a35760016144b68282111561488b565b6000818152601c60208181526040808420805487865282862080546001600160a01b03928316808952601b8752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b03199081169092179093558989528454169091179092559396919493929161454c918961453d836134b9565b1690601a541617601a55614849565b84835285815281848420541683526019918282528484205496868099600281601a5416925b61458357505050505050505050505050565b81811683811161419d57838110156145c7575080613bd36145a392613fc9565b9b909b5b8b111561417c576145b8908c6148a8565b6145c18b6143b7565b89614571565b889c919c528386528489892054168852868652888820546145a7565b6145ec906147ab565b9061ffff9081601a54169161460183856148a8565b8061460b846134b9565b1661ffff19601a541617601a5561462183614849565b80841680931461470157600092808452601c9360209185835260018060a01b03926040938085852054168452601992838352614660868620548b614707565b84528782528085852054168452828252848420549761467e8a6143b7565b87601a5416905b8881168281116146f257828110156146d6575080613bd36146a592613fc9565b9b909b5b8b11156146c8576146ba908c6148a8565b6146c38b6143b7565b614685565b505050505050505050915050565b879c919c528285528388882054168752858552878720546146a9565b50505050505050505050915050565b50915050565b9190915b60018061ffff831611156143b15781617fff911c1690836000838152602090601c8252601960409260018060a01b038484205416835252205411156143b15761475490826148a8565b61470b565b919061ffff604060008286168152601c60205260018060a01b0380838320541682526019602052828220549385168252601c602052828220541681526019602052205493848211156144215750509190565b6001600160a01b03166000908152601b602052604090205461ffff169081156147d057565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601e602052604090205461ffff169081156147d057565b61ffff166000908152601f6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601e9091529020805461ffff19169055565b61ffff166000908152601c6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601b9091529020805461ffff19169055565b1561489257565b634e487b7160e01b600052600160045260246000fd5b6148cd61ffff8080601a54169316936148c38486111561488b565b169182111561488b565b6000828152601c60208181526040808420805486865282862080546001600160a01b03928316808952601b8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61495c61ffff8080601d54169316936148c38486111561488b565b6000828152601f60208181526040808420805486865282862080546001600160a01b03928316808952601e8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fea2646970667358221220335307a12b60b85cfa843391145bee0090bee57766757213172dd8fb39d13e4c64736f6c63430008130033","sourceMap":"2180:14244:27:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":13433,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":9508,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8031,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":288,"length":20},{"start":509,"length":20},{"start":699,"length":20},{"start":7853,"length":20},{"start":13038,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80630df14461146113c057806311196974146112fc5780632a04f22014610e5e578063a656ca5b146109cb578063ae00c29814610727578063c62eb4d5146106ae578063e49a547d1461066d5763f456b39e1461007457600080fd5b346105eb576003196040368201126105eb576001600160401b03600435116105eb5760a081600435360301126105eb576024356001600160401b0381116105eb576100c3903690600401611517565b61010060206100df366100da600480350180611547565b611570565b60405180938192632cff562160e11b83528460048401526024830190611627565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156104cb57600091610633575b50336001600160a01b039091160361062157331561060f5760405161014c8161141e565b6001600160401b0360115416815260405180602060125491828152019060126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449060005b8181106105f05750505091816101b06000936101d795038261146f565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611627565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156104cb5760009061050a575b61020e91506132d0565b9390156104f95761024d9061022b366100da600480350180611547565b9060405192839263c836244d60e01b8452604060048501526044840190611627565b90828203016024830152604081016001600160401b03600488015416825260606005880192604060208201528354809352019160005260206000209060005b8181106104d7575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156104cb5760009161049c575b501561048a5760ff600384015460801c1692600684101561047457600180940361046257600080946000905b8482106104215750506103046002918661175b565b91019283549382851061040f5761032161033d9361034396611768565b9055610335366100da600480350180611547565b923691611804565b90611ca3565b610351602460043501611964565b6040516001600160401b03602082019263f9002bb160e01b845216602482015282604482015260448152608081018181106001600160401b038211176103f957806040528347106103e4576103da6000808686865191335af13d156103dc573d906103bb826114a7565b916103c9604051938461146f565b82523d6000602084013e5b33611978565b005b6060906103d4565b60249163cd78605960e01b8252608430910152fd5b634e487b7160e01b600052604160045260246000fd5b604051631d36ca1560e21b8152600490fd5b61045a610449839894604061044161043b86978b8d611719565b80611746565b01359061175b565b9360c061044161043b8b8a8c611719565b9601906102ef565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516303b5db8360e11b8152600490fd5b6104be915060203d6020116104c4575b6104b6818361146f565b810190611682565b386102c3565b503d6104ac565b6040513d6000823e3d90fd5b82546001600160a01b031684528594506020909301926001928301920161028c565b6040516208ed5b60e31b8152600490fd5b503d806000833e61051b818361146f565b8101906020818303126105eb578051906001600160401b0382116105eb5701906040828203126105eb57604051916105528361141e565b80516001600160401b03811681036105eb5783526020810151906001600160401b0382116105eb57019080601f830112156105eb57815161059281611490565b926105a0604051948561146f565b81845260208085019260051b8201019283116105eb57602001905b8282106105d357505050602082015261020e90610204565b602080916105e084611613565b8152019101906105bb565b600080fd5b82546001600160a01b0316845260209093019260019283019201610193565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011610665575b8161064e6020938361146f565b810103126105eb5761065f90611613565b38610128565b3d9150610641565b346105eb5760203660031901126105eb576004356001600160401b0381116105eb576106a06103da913690600401611517565b906106a9613442565b6134cd565b346105eb5760203660031901126105eb576001600160401b036004358181116105eb576106df903690600401611517565b916106e8613442565b6040519160208301918211838310176103f9576103da9361033d9260405260008452604051936107178561141e565b6000855260208501523691611804565b346105eb5760203660031901126105eb576107406113f4565b610748613442565b6001600160401b03600b5416806001600160401b03831611156109b9575b6001600160401b0382166001600160401b038216101561099b576001600160401b038116600052600860205260006004604082208281556107a960018201611de8565b8260029181838201558160056003928284820155828782015501556001600160401b038616825260096020528160408120938185558160018601558401558201550155600e6020526040600020805490600081558161097a575b50506001600160401b038116600052600a602052604060002080549060008155816108fa575b50506001600160401b038116600052600e6020526040600020604051808260208294549384815201906000526020600020926000905b8082106108de5750506108749250038261146f565b80519060005b828110610895575050506001016001600160401b0316610766565b6001600160401b0384166000908152600f60205260409020600191906001600160a01b036108c383866119f0565b51166000526020526108d86040600020612a4f565b0161087a565b916001919350602082918654815201940192018492939161085f565b600d82810204820361096457600052602060002090600d028101905b81811015610829578061092a600d92612a98565b61093660048201612a98565b6000600882015560006009820155610950600a8201612a4f565b6000600b8201556000600c82015501610916565b634e487b7160e01b600052601160045260246000fd5b6000526020600020908101905b818110156108035760008155600101610987565b600b805467ffffffffffffffff19166001600160401b038416179055005b604051636819a3a960e01b8152600490fd5b346105eb576003196060368201126105eb576001600160401b03600435116105eb5760a06004353603918201126105eb57604435610a07613442565b610a15602460043501611964565b6001600160401b0380600b5416911610610e4c57610a37602460043501611964565b6001600160401b03601654168015610e36576001600160401b038092160616610e24576001600160401b036002610a8e610a75602460043501611964565b6001600160401b03166000526008602052604060002090565b015416610e12578015610e005760ff601554168181810204810361096457610acb6001600160401b03610ac5602460043501611964565b1661288b565b15610dee57604051602080820152926042190160048035013512156105eb5760043560043560040135019260a060408201526101208101936001600160401b03610b176004830161140a565b1660e08301526024810135602219823603018112156105eb5701602460048201359101946001600160401b0382116105eb578160051b360386136105eb5781906040610100850152526101408201949060005b818110610dc857505050610bd981606494956001600160401b03610b9260246004350161140a565b1660608301526044600435013560808301526001600160401b03610bb9876004350161140a565b1660a08301526004356084013560c083015203601f19810183528261146f565b602081519101209260405193610bee85611439565b8452602435602085015202046040820152600060608201526000608082015260405190610c1a82611439565b6001600160401b0360043560040135116105eb57610c413660048035808201350101611570565b8252610c5160246004350161140a565b918260208201526040810192604460043501358452610c7460646004350161140a565b9060608301918252610caf6001600160401b036080850192608460043501358452166001600160401b03166000526008602052604060002090565b91835160206001600160401b03825116916001600160401b0319928387541617865501519687516001600160401b0381116103f95760019860208a880191610cf78484611e0c565b0190600052602060002060005b838110610dac57506103da8b600460808d610d738e8e60058f8f8f8f6001600160401b03602060028801980151169687838254161790555160038601556001600160401b038a860192511690825416179055519101556001600160401b03166000526009602052604060002090565b938151855560208201519085015560408101516002850155606081015160038501550151151591019060ff801983541691151516179055565b82516001600160a01b0316818301556020909201918b01610d04565b909195602080600192838060a01b03610de08b61155c565b168152019701929101610b6a565b60405163ee6c026760e01b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b634e487b7160e01b600052601260045260246000fd5b6040516376afb88d60e01b8152600490fd5b346105eb5760803660031901126105eb57610e776113f4565b602435906001600160401b0382116105eb57366023830112156105eb57816004013591610ea383611490565b92610eb1604051948561146f565b8084526024602085019160051b830101913683116105eb57602401905b8282106112ec575050506064356001600160401b0381116105eb57610ef79036906004016114f9565b916001600160401b03600b54166001600160401b03831610610e4c57610f30826001600160401b03166000526008602052604060002090565b610f4d836001600160401b03166000526009602052604060002090565b906001600160401b03600282015416156112da57610f6c858354612788565b506004819692961015610474576112c8576001600160401b0381166000908152600e602090815260408083206001600160a01b03891684526001019091529020546112b657604080516001600160a01b0387166020820190815260443582840152918152610fdb60608261146f565b5190206040516020810191825260208152610ff58161141e565b51902095600184015496956000965b86518810156110515761101788886119f0565b5190818110156110405760005260205260406000205b9660001981146109645760010196611004565b90600052602052604060002061102d565b8803611294576001600160401b038316600052600e60205261107f60018060a01b0382166040600020612908565b15611282576001600160401b038316600052600f60205260406000209060018060a01b03166000526020526040600020908051906001600160401b0382116103f95781906110d7826110d18654611a04565b86611e40565b602090601f831160011461121c57600092611211575b50508160011b916000199060031b1c19161790555b6003830191611114604435845461175b565b808455600285015481101561112557005b600485018054909160ff82166111bf575060ff1916600117905560020154611155906001600160401b0316612965565b156111ad576111a87f6e19758a6cc7e71b17c341543844325f2a6ad8294af979c7b386fc4d3814e93493549254604051938493846040919493926001600160401b03606083019616825260208201520152565b0390a1005b604051637e5145ed60e01b8152600490fd5b94505050506111a87f24836090f2da17128f839618852e98c2586a5693517e15f15497223bd26c6045935492604051938493846040919493926001600160401b03606083019616825260208201520152565b0151905086806110ed565b6000858152602081209350601f198516905b81811061126a5750908460019594939210611251575b505050811b019055611102565b015160001960f88460031b161c19169055868080611244565b9293602060018192878601518155019501930161122e565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610ece565b346105eb5760403660031901126105eb576040516113198161141e565b60008152600060208092015261132d613442565b60008160405161133c8161141e565b8281520152600254906004358083116113ae576060926000526001825260406000209160016040519361136e8561141e565b8054855201549181840192835280600052600182526040600020818155600160243591015560025582511515926040519384525190830152516040820152f35b60405163153ad84160e11b8152600490fd5b346105eb5760003660031901126105eb576113d9613442565b60206113e3611ae4565b6001600160401b0360405191168152f35b600435906001600160401b03821682036105eb57565b35906001600160401b03821682036105eb57565b604081019081106001600160401b038211176103f957604052565b60a081019081106001600160401b038211176103f957604052565b606081019081106001600160401b038211176103f957604052565b90601f801991011681019081106001600160401b038211176103f957604052565b6001600160401b0381116103f95760051b60200190565b6001600160401b0381116103f957601f01601f191660200190565b9291926114ce826114a7565b916114dc604051938461146f565b8294818452818301116105eb578281602093846000960137010152565b9080601f830112156105eb57816020611514933591016114c2565b90565b9181601f840112156105eb578235916001600160401b0383116105eb576020808501948460051b0101116105eb57565b903590603e19813603018212156105eb570190565b35906001600160a01b03821682036105eb57565b91906040838203126105eb57604051926115898461141e565b836115938261140a565b815260209182810135906001600160401b0382116105eb57019280601f850112156105eb5783356115c381611490565b946115d1604051968761146f565b818652848087019260051b8201019283116105eb5784809101915b8383106115fb57505050500152565b81906116068461155c565b81520191019084906115ec565b51906001600160a01b03821682036105eb57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611665575050505090565b83516001600160a01b031685529381019392810192600101611657565b908160209103126105eb575180151581036105eb5790565b60408101906001600160401b036011541681526060602091604083820152601254809452019160126000527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444916000905b8282106116f9575050505090565b83546001600160a01b0316855293840193600193840193909101906116eb565b90821015611730576115149160051b810190611547565b634e487b7160e01b600052603260045260246000fd5b90359060de19813603018212156105eb570190565b9190820180921161096457565b9190820391821161096457565b91906040838203126105eb576040519261178e8461141e565b838135916001600160401b03928381116105eb57846117ae918301611570565b82526020810135908382116105eb57016040818503126105eb57604051936117d58561141e565b813560ff811681036105eb57855260208201359384116105eb576020936117fc92016114f9565b828401520152565b9092919261181181611490565b916040916118218351948561146f565b839581855260208095019160051b8301938185116105eb5783925b85841061184c5750505050505050565b6001600160401b039084358281116105eb5786019183838603126105eb578351926118768461141e565b80358281116105eb57810160e09081818903126105eb5786519182018281108582111761194f57875280358481116105eb57886118b4918301611775565b82528b8101358481116105eb57886118cd918301611775565b8c830152868101358783015260606118e681830161140a565b90830152608081810135906001600160e01b0319821682036105eb5783015260a0808201359485116105eb5761191f898e9684016114f9565b9083015260c08091013590820152845201359081151582036105eb5782899392848094015281520193019261183c565b60246000634e487b7160e01b81526041600452fd5b356001600160401b03811681036105eb5790565b90156119b657815115611989575090565b803b15611994575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b508051156119c657805190602001fd5b604051630a12f52160e11b8152600490fd5b9060016001600160401b038093160191821161096457565b80518210156117305760209160051b010190565b90600182811c92168015611a34575b6020831014611a1e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611a13565b9060405191826000825492611a5284611a04565b908184526001948581169081600014611ac15750600114611a7e575b5050611a7c9250038361146f565b565b9093915060005260209081600020936000915b818310611aa9575050611a7c93508201013880611a6e565b85548884018501529485019487945091830191611a91565b915050611a7c94506020925060ff191682840152151560051b8201013880611a6e565b6020805491906001600160401b03808416600019019181831161096457611b0a836119d8565b8280604097881c16911614611c9a57611b228361371f565b61ffff9182601a541695611b3587611490565b611b418251918261146f565b878152601f199485611b528a611490565b0136868401376001809981805b611c53575b50505050805190611b7482611490565b95611b818451978861146f565b828752611b8d83611490565b018560005b828110611c2a5750505060005b828110611bc857505050611514949596505192611bbb8461141e565b8352841690820152612de9565b89906001600160a01b03611bdc82856119f0565b51168060005260198852611c0a600287600020805493895194611bfe86611454565b85528b85015201611a3e565b86820152611c18828a6119f0565b52611c2381896119f0565b5001611b9f565b8551611c3581611454565b6000815260008382015260608782015282828b010152018690611b92565b838116828111611c94576000908152601c895286902054849184916001600160a01b0316611c8b84611c84846134b9565b16896119f0565b52011682611b5f565b50611b64565b50600093505050565b81519160005b838110611cb65750505050565b80611ccd611cc6600193856119f0565b5185611e85565b01611ca9565b60005b838110611ce65750506000910152565b8181015183820152602001611cd6565b90602091611d0f81518092818552858086019101611cd3565b601f01601f1916010190565b604060206115149381611d35855185845285840190611627565b940151908281860391015260ff81511684520151918160208201520190611cf6565b9060c080611dc8611d86611d74865160e0875260e0870190611d1b565b60208701518682036020880152611d1b565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611cf6565b93015191015290565b818110611ddc575050565b60008155600101611dd1565b80546000825580611df7575050565b611a7c91600052602060002090810190611dd1565b90600160401b81116103f957815490808355818110611e2a57505050565b611a7c9260005260206000209182019101611dd1565b9190601f8111611e4f57505050565b611a7c926000526020600020906020601f840160051c83019310611e7b575b601f0160051c0190611dd1565b9091508190611e6e565b9190916020835101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180611ecb630c133d1360e31b968783528460048401526024830190611627565b0381875af49081156104cb57600091612769575b5061275757845160808101516001600160e01b0319949190851615612735575b50855192611f256040519463f47ad7eb60e01b8652604060048701526044860190611d57565b60208580611f3f600319948583820301602484015261169a565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49485156104cb576000956126ef575b506020611f99818a51015151611fa8604051948593849363c836244d60e01b8552604060048601526044850190611627565b9083820301602484015261169a565b0381865af49081156104cb576000916126d0575b506124a657505050506040516120778160208101936020855260c0612054885192604080860152611ffa845160e06080880152610160870190612abb565b612016602086015191607f1992838983030160a08a0152612abb565b916040860151858801526001600160401b0360608701511660e088015260808601511661010087015260a08501519086830301610120870152611cf6565b91015161014083015260208701511515606083015203601f19810183528261146f565b51902060005260036020526040600020825192835180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b0383116103f9576020906120d08484611e0c565b0190600052602060002060005b838110612489575050505060209081600285019101519060ff82511660ff1982541617905501518051906001600160401b0382116103f9578190612131826121286003880154611a04565b60038801611e40565b602090601f83116001146124175760009261240c575b50508160011b916000199060031b1c19161760038301555b600482016020850151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b0383116103f9576020906121ae8484611e0c565b0190600052602060002060005b8381106123ef57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b0382116103f9578190612208826110d18654611a04565b602090601f83116001146123895760009261237e575b50508160011b916000199060031b1c19161790555b60408401516008830155600982016001600160401b036060860151168154906bffffffff0000000000000000608088015160a01c16916001600160601b03191617179055600a82019360a08101519485516001600160401b0381116103f9576122a6816122a08454611a04565b84611e40565b6020601f821160011461230a5792600c94928260c093602096611a7c9a9b6000926122ff575b50508160011b916000199060031b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b0151905038806122cc565b601f198216978360005260206000209860005b818110612366575083611a7c999a60209794600c99979460c0976001951061234d575b505050811b0190556122e1565b015160001960f88460031b161c19169055388080612340565b838301518b556001909a01996020938401930161231d565b01519050388061221e565b6000858152602081209350601f198516905b8181106123d757509084600195949392106123be575b505050811b019055612233565b015160001960f88460031b161c191690553880806123b1565b9293602060018192878601518155019501930161239b565b82516001600160a01b0316818301556020909201916001016121bb565b015190503880612147565b9250600385016000526020600020906000935b601f198416851061246e576001945083601f19811610612455575b505050811b01600383015561215f565b015160001960f88460031b161c19169055388080612445565b8181015183556020948501946001909301929091019061242a565b82516001600160a01b0316818301556020909201916001016120dd565b9091929350600284969596101561047457600184146125fd575b5050501561259b575b6000604051808093635c46fefb60e11b82526020600483015260206124fa8251604060248601526064850190611d57565b91015115156044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156104cb5761252a5750565b3d806000833e61253a818361146f565b8101906020818303126105eb578051906001600160401b0382116105eb570181601f820112156105eb57805190612570826114a7565b9261257e604051948561146f565b828452602083830101116105eb57602080611a7c94019101611cd3565b6015546001600160401b03808260481c16906060845101511681036125eb576125cf67ffffffffffffffff60481b916119d8565b60481b169067ffffffffffffffff60481b1916176015556124c9565b60405163a57cadff60e01b8152600490fd5b6020906040519283918252826004830152818061261d6024820188611627565b03915af49081156104cb576000916126b1575b501561263e575b80806124c0565b612647906132d0565b901561269f5760030180546001600160401b03808260401c16906060865101511681036125eb5761268367ffffffffffffffff60401b916119d8565b60401b169067ffffffffffffffff60401b191617905538612637565b604051630e991abd60e41b8152600490fd5b6126ca915060203d6020116104c4576104b6818361146f565b38612630565b6126e9915060203d6020116104c4576104b6818361146f565b38611fbc565b6020959195813d60201161272d575b8161270b6020938361146f565b81010312612729575190600282101561272657509338611f67565b80fd5b5080fd5b3d91506126fe565b6040015147106127455738611eff565b60405163569d45cf60e11b8152600490fd5b60405163c5f563eb60e01b8152600490fd5b612782915060203d6020116104c4576104b6818361146f565b38611edf565b81519190604183036127b9576127b292506020820151906060604084015193015160001a906127c4565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161284857926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561283c5780516001600160a01b0381161561283357918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b600c5481101561173057600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70190600090565b6000818152600d602052604081205461290357600c54600160401b8110156128ef5790826128db6128c484600160409601600c55612854565b819391549060031b91821b91600019901b19161790565b9055600c54928152600d6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461295e57805490600160401b8210156103f957600182018082558210156117305782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600d60205260408120549091908015612a4a5760001990808201818111612a3657600c5490838201918211612a22578082036129ee575b505050600c5480156129da578101906129b982612854565b909182549160031b1b19169055600c558152600d6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b612a0c6129fd6128c493612854565b90549060031b1c928392612854565b90558452600d60205260408420553880806129a1565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b612a598154611a04565b9081612a63575050565b81601f60009311600114612a75575055565b908083918252612a94601f60208420940160051c840160018501611dd1565b5555565b6003611a7c9160008155612aae60018201611de8565b6000600282015501612a4f565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110612b2b575050509360408381938161151497980151908281860391015260ff81511684520151938201520190611cf6565b82516001600160a01b031688529685019691850191600101612af7565b908082519081815260208091019281808460051b8301019501936000915b848310612b765750505050505090565b9091929394958480612bb7600193601f198682030187528a5180518252858060a01b0384820151168483015260408091015191606080928201520190611cf6565b9801930193019194939290612b66565b90808214612c9b57612bd98154611a04565b906001600160401b0382116103f9578190612bf8826110d18654611a04565b600090601f8311600114612c2f57600092612c24575b50508160011b916000199060031b1c1916179055565b015490503880612c0e565b81526020808220858352818320935090601f1985169083905b828210612c82575050908460019594939210612c69575b505050811b019055565b015460001960f88460031b161c19169055388080612c5f565b8495819295850154815560018091019601940190612c48565b5050565b600454811015611730576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b90612dd35781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116103f957612d3883612d328754611a04565b87611e40565b81601f8411600114612d715750928293918392600094612d66575b50501b916000199060031b1c1916179055565b015192503880612d53565b919083601f1981168760005284600020946000905b88838310612db95750505010612da057505050811b019055565b015160001960f88460031b161c19169055388080612c5f565b858701518855909601959485019487935090810190612d86565b634e487b7160e01b600052600060045260246000fd5b6040805191602091828452612e08825182858701526060860190612b48565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a1836005541690816130f4575b505050600490815493600160401b938486116130df5760065486600655808710613040575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210612feb57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110612f79575050505116906005541617600555808311612f11575b50505050565b82811015612f0b5781548015612f66576000190190612f2f82612c9f565b929092612f5457858355612f4c6002600194888682015501612a4f565b835501612f11565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015612fa85780612fa2612f9260019386516119f0565b51612f9c83612c9f565b90612cda565b01612eee565b612fb38184516119f0565b51885483811015612fd85760019291612f9c8285612fd394018d55612c9f565b612fa2565b634e487b7160e01b8c5260418a5260248cfd5b806001918403613006575b6003809101930191019091612ec1565b805484558180850190838060a01b0390830154166001600160601b0360a01b82541617905561303b6002808301908601612bc7565b612ff6565b60039080820290828204036130ca5787820282810489036130b557600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b82811061309857505050612e74565b80828592558260018201556130af60028201612a4f565b01613089565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b848651168560075416908181146131e157106131d0578251926131168461141e565b60045461312281611490565b9161312f8151938461146f565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b84841061318e57505050918552505082015261317d90826131eb565b61318957388080612e4f565b505050565b600387600192845161319f81611454565b86548152848060a01b038588015416838201526131be60028801611a3e565b86820152815201930193019291613161565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361328c5761321181613294565b61321a84613294565b0361328c575180518351510361328c5761328561327991604051908161324a868201928784526040830190612b48565b039161325e601f199384810183528261146f565b51902094516040519384918683019687526040830190612b48565b0390810183528261146f565b5190201490565b505050600090565b8051519060009182915b8183106132ab5750505090565b9091926132c76001916132bf8685516119f0565b51519061175b565b9301919061329e565b73__$a0fe38a9a81205afccc10810b09a4d3f45$__906133106040918251906390ba52cf60e01b8252818060209485938460048401526024830190611627565b0381875af49081156134375760009161340a575b5060005260008152816000209282519061333d8261141e565b6001600160401b0360048601541682526005850184519081858254918281520191600052856000209060005b8181106133ed5750505091816133878695936133ac9795038261146f565b8383015285518080968194630c133d1360e31b83528660048401526024830190611627565b03915af49283156133e357506000926133c6575b50501591565b6133dc9250803d106104c4576104b6818361146f565b38806133c0565b513d6000823e3d90fd5b82546001600160a01b031684529287019260019283019201613369565b908282813d8311613430575b613420818361146f565b8101031261272657505138613324565b503d613416565b83513d6000823e3d90fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156104cb5760009161349b575b501561348957565b60405163f0d97f3b60e01b8152600490fd5b6134b3915060203d81116104c4576104b6818361146f565b38613481565b61ffff908116600019019190821161096457565b919080156137055760005b8181106134e55750509050565b6134f0818386611719565b9060406134fd838061370a565b6001600160a01b03910135818116908190036105eb5761351d848061370a565b359360038510156105eb57613532818061370a565b906020918281013590601e19813603018212156105eb57019283356001600160401b03948582116105eb57840181360381136105eb576135739136916114c2565b948484541695604051986135868a611454565b895284890190815260408901928352866000526021808652604060002099519060038210156136f1575060ff80198b541691161789555197885198868a116103f9576001998a808401926135de836110d18654611a04565b8890601f841160011461367457928060029593819361364b9c9b9a999896600094613669575b50501b916000199060031b1c19161790555b019151166001600160601b0360a01b82541617905583613635866119d8565b166001600160401b031983541617825501611964565b160361365757016134d8565b604051631aba532960e21b8152600490fd5b015192503880613604565b908460009493945289600020916000601f198516905b8181106136d057509161364b9b9a999897959391856002989694106136b7575b505050811b019055613616565b015160001960f88460031b161c191690553880806136aa565b938395968d92939491839286015181550195019301908f959493929161368a565b634e487b7160e01b60005260045260246000fd5b509050565b903590605e19813603018212156105eb570190565b602080546001600160401b039384841693929190858216851061374e5760405163040aaa0560e11b8152600490fd5b858260401c16851061392b57949392919084604091821c16955b8587168581116138f2576000978189526021988986528481209960029360018060a01b03858d0154169b60ff81541660038110156138de578087036137f0575060016137c8918d9e869e999a9b9c9d9e5260198c5201868a862001612bc7565b82528752858120928184556001936137e1858201612a4f565b01550116959493929190613768565b6137fd6001809301611a3e565b8a818051810103126138da57988d9e8b809d9e9f9a9b85849e8c9201519514600014613897576138709495838a528960199586855261383f8982842054611768565b96879587845252812091820180548515908161388e575b50156138845761386b94508183555501612a4f565b613ca0565b61387d6018918254611768565b90556137c8565b5050905055613ca0565b90501538613856565b50506138d593508091508652601991828d526138b6818d89205461175b565b928288528d52828c8820556138ce601891825461175b565b9055613933565b6137c8565b8580fd5b634e487b7160e01b85526004849052602485fd5b5095509250925061390e67ffffffffffffffff60401b916119d8565b83546fffffffffffffffff00000000000000001916921b16179055565b945050505050565b919060018060a01b0392838116936000858152602095601b875261ffff91604097838983205416613b8457836017541684601a541610613b5057866139766142cb565b91909110613aca5750828252601e81528389832054166139e95750505050506139e47f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946139c483613fdc565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6139f8869599949897966147e2565b92825260199081815284832054935b6001808b83161115613a945781617fff911c1690818552601f83528b8786205416855283835285878620541015613a4757613a429082614941565b613a07565b505093516001600160a01b0390951685525050505060208101919091529092507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd915080604081016139e4565b5050505050506139e491929395507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd94506139c4565b9596506139e4945090601e899493927ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75999a93613b0561449a565b835252205416613b42575b613b1984614428565b613b2283613fdc565b516001600160a01b03928316815292909116602083015281906040820190565b613b4b846141b5565b613b10565b50505050506139e47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946139c483614428565b613b958695989796999493996147ab565b9882526019908181528483205498613bac8b6143b7565b85601a5416905b868116828111613c685782811015613c4b575080613bd3613bd992613fc9565b90614759565b9c909c5b8c1115613bfc57613bee908d6148a8565b613bf78c6143b7565b613bb3565b505094516001600160a01b0390961686525050505060208201929092529193507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979250819050604081016139e4565b869d919d52601c8452828887205416865284845287862054613bdd565b50505050505050506139e491929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506139c4565b9160018060a01b039283811692600091848352602094601e865261ffff90604094828682205416613e8a57818152601b885282868220541615613e79578415613df457613cec846147ab565b918152601980895286822054925b6001808683161115613de35781617fff911c1690818452601c8b528b89852054168452828b5284898520541115613d3a57613d3590826148a8565b613cfa565b5050505050919395509193505b601d54161561318957613d586142cb565b90613d61614315565b909210613daa57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016139e4565b915091506139e47ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593613ddb61449a565b613b1061404e565b505050505091939550919350613d47565b5091613e27919597507f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b949693506145e3565b8451908152a1601d5416613e385750565b6139e47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd91613e65614315565b929091613e7061404e565b6139c483614428565b8551632a55ca5360e01b8152600490fd5b90939596869893959815613f90579261fffe929493613ea8876147e2565b9483526019918282528a8420549580976001968792831b1681601d5416925b613f1c575b50509a516001600160a01b039098168852505050506020840194909452509293507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9250905080604081016139e4565b818116838111613f8a578e9080851115613f6e57505080613f3f613f4592613fc9565b906143ce565b9990995b891015613f6957613f5a908a614941565b613f63896143b7565b87613ec7565b613ecc565b8852601f8652872054841687528585528d872054909990613f49565b50613ecc565b95505050509093613fc27f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94956141b5565b51908152a1565b90600161ffff8093160191821161096457565b611a7c90604061ffff613ff281601d5416613fc9565b9260018060a01b0316600091818352601e6020528383209085169061ffff19908282825416179055818452601f602052848420836001600160601b0360a01b825416179055601d541617601d558152601960205220549061435f565b61ffff80601d541680156141a357600161406a8282111561488b565b6000818152601f60208181526040808420805487865282862080546001600160a01b03928316808952601e8752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b03199081169092179093558989528454169091179092559396919493929161410091896140f1836134b9565b1690601d541617601d55614807565b84835285815281848420541683526019918282528484205496868099600281601d5416925b614138575b505050505050505050505050565b81811683811161419d5783811015614181575080613f3f61415892613fc9565b9b909b5b8b101561417c5761416d908c614941565b6141768b6143b7565b89614125565b61412a565b889c919c5283865284898920541688528686528888205461415c565b5061412a565b6040516340d9b01160e01b8152600490fd5b6141be906147e2565b61ffff80601d5416906141d18284614941565b806141db836134b9565b1661ffff19601d541617601d556141f182614807565b80831680921461318957919061fffe906000818152601f91602083815260018060a01b036040948186862054168552601993848452614233878720548a61435f565b85528083528186862054168552838352858520549780996001988992831b1681601d5416925b61426b57505050505050505050505050565b81811683811161419d57838110156142af575080613f3f61428b92613fc9565b9b909b5b8b101561417c576142a0908c614941565b6142a98b6143b7565b89614259565b889c919c5283865284898920541688528686528888205461428f565b61ffff601a5416156141a3577f6de76108811faf2f94afbe5ac6c98e8393206cd093932de1fbfd61bbeec43a02546001600160a01b03166000818152601960205260409020549091565b61ffff601d5416156141a3577f820fef5837650fa3b8e45045b88059d8deaf0810350ec511c47ef768a28c2c9b546001600160a01b03166000818152601960205260409020549091565b9190915b60018061ffff831611156143b15781617fff911c1690836000838152602090601f8252601960409260018060a01b038484205416835252205410156143b1576143ac9082614941565b614363565b50509050565b60011b906201fffe61fffe83169216820361096457565b91909161ffff92604060008584168152601f60205260018060a01b0380838320541682526019602052828220549684168252601f6020528282205416815260196020522054908185106144215750509190565b9350919050565b611a7c90604061ffff61443e81601a5416613fc9565b9260018060a01b0316600091818352601b6020528383209085169061ffff19908282825416179055818452601c602052848420836001600160601b0360a01b825416179055601a541617601a5581526019602052205490614707565b61ffff80601a541680156141a35760016144b68282111561488b565b6000818152601c60208181526040808420805487865282862080546001600160a01b03928316808952601b8752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b03199081169092179093558989528454169091179092559396919493929161454c918961453d836134b9565b1690601a541617601a55614849565b84835285815281848420541683526019918282528484205496868099600281601a5416925b61458357505050505050505050505050565b81811683811161419d57838110156145c7575080613bd36145a392613fc9565b9b909b5b8b111561417c576145b8908c6148a8565b6145c18b6143b7565b89614571565b889c919c528386528489892054168852868652888820546145a7565b6145ec906147ab565b9061ffff9081601a54169161460183856148a8565b8061460b846134b9565b1661ffff19601a541617601a5561462183614849565b80841680931461470157600092808452601c9360209185835260018060a01b03926040938085852054168452601992838352614660868620548b614707565b84528782528085852054168452828252848420549761467e8a6143b7565b87601a5416905b8881168281116146f257828110156146d6575080613bd36146a592613fc9565b9b909b5b8b11156146c8576146ba908c6148a8565b6146c38b6143b7565b614685565b505050505050505050915050565b879c919c528285528388882054168752858552878720546146a9565b50505050505050505050915050565b50915050565b9190915b60018061ffff831611156143b15781617fff911c1690836000838152602090601c8252601960409260018060a01b038484205416835252205411156143b15761475490826148a8565b61470b565b919061ffff604060008286168152601c60205260018060a01b0380838320541682526019602052828220549385168252601c602052828220541681526019602052205493848211156144215750509190565b6001600160a01b03166000908152601b602052604090205461ffff169081156147d057565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601e602052604090205461ffff169081156147d057565b61ffff166000908152601f6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601e9091529020805461ffff19169055565b61ffff166000908152601c6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601b9091529020805461ffff19169055565b1561489257565b634e487b7160e01b600052600160045260246000fd5b6148cd61ffff8080601a54169316936148c38486111561488b565b169182111561488b565b6000828152601c60208181526040808420805486865282862080546001600160a01b03928316808952601b8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61495c61ffff8080601d54169316936148c38486111561488b565b6000828152601f60208181526040808420805486865282862080546001600160a01b03928316808952601e8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fea2646970667358221220335307a12b60b85cfa843391145bee0090bee57766757213172dd8fb39d13e4c64736f6c63430008130033","sourceMap":"2180:14244:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;:::i;:::-;;;;;3220:19;2180:14244;;;;;3220:19;:::i;:::-;2180:14244;:::i;:::-;;;;;;;;;;3220:30;;;2180:14244;3220:30;;2180:14244;;;;;;:::i;:::-;3220:30;:28;;:30;;;;;;;2180:14244;3220:30;;;2180:14244;-1:-1:-1;3254:10:27;-1:-1:-1;;;;;2180:14244:27;;;3220:44;3216:107;;3254:10;9637:19:38;9633:78;;2180:14244:27;;;;;:::i;:::-;-1:-1:-1;;;;;9747:13:38;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9747:35:38;;2180:14244:27;;9747:35:38;;2180:14244:27;;;;;;:::i;:::-;3254:10;2180:14244;;;;9747:35:38;3220:28:27;;9747:35:38;;;;;;2180:14244:27;9747:35:38;;;2180:14244:27;9800:19:38;;;;:::i;:::-;3423:13:27;;;3419:67;;2180:14244;;;;3500:19;2180:14244;;;;;3500:19;:::i;2180:14244::-;;;;;;;;;;3500:37;;2180:14244;;3500:37;;2180:14244;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;3527:9;;2180:14244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3500:37;;;;;2180:14244;3500:37;;3220:28;;3500:37;;;;;;;2180:14244;3500:37;;;2180:14244;3499:38;;3495:91;;2180:14244;;3599:13;;2180:14244;;;;;;;;;;;;3599:30;;;3595:85;;2180:14244;;3799:9;2180:14244;3794:210;3810:18;;;;;;4036:21;;;4072:17;4036:21;;;:::i;:::-;4072:17;;2180:14244;;;4072:31;;;;4068:96;;4174:32;2180:14244;4174:32;4251:45;4174:32;;:::i;:::-;2180:14244;;;;4266:19;2180:14244;;;;;4266:19;:::i;2180:14244::-;;;;;:::i;:::-;4251:45;;:::i;:::-;4577:22;2180:14244;;;4577:22;;:::i;:::-;2180:14244;;-1:-1:-1;;;;;2180:14244:27;4520:91;;;;;;;;2180:14244;;4520:91;;2180:14244;;;;;;;4520:91;;2180:14244;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;4419:21:6;;:29;4415:108;;4622:69;2180:14244:27;4574:31:6;;;;;3254:10:27;;4574:31:6;;2180:14244:27;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;3254:10;4622:69:6;:::i;:::-;2180:14244:27;;;;;;4415:108:6;2180:14244:27;4471:41:6;;;;;;;4427:4;4471:41;;2180:14244:27;4471:41:6;2180:14244:27;;;;;;;;;;;;4068:96;2180:14244;;-1:-1:-1;;;4126:27:27;;2180:14244;;4126:27;3799:9;3899:35;3846:39;3860:11;;;2180:14244;3860:19;:11;;;;;;:::i;:::-;:19;;:::i;:::-;:25;2180:14244;3846:39;;:::i;:::-;3911:11;:23;:19;:11;;;;;:::i;3899:35::-;2180:14244;;3799:9;;;3595:85;2180:14244;;-1:-1:-1;;;3652:17:27;;2180:14244;;3652:17;2180:14244;;;;;;;;;;;;3495:91;2180:14244;;-1:-1:-1;;;3560:15:27;;2180:14244;;3560:15;3500:37;;;;2180:14244;3500:37;2180:14244;3500:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2180:14244;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;-1:-1:-1;2180:14244:27;;;;;;;;;;;;;3419:67;2180:14244;;-1:-1:-1;;;3459:16:27;;2180:14244;;3459:16;9747:35:38;;;;2180:14244:27;9747:35:38;;;;;;:::i;:::-;;;2180:14244:27;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2180:14244:27;;;;9800:19:38;;9747:35;;2180:14244:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;9633:78:38;2180:14244:27;;-1:-1:-1;;;9679:21:38;;2180:14244:27;;9679:21:38;3216:107:27;2180:14244;;-1:-1:-1;;;3287:25:27;;2180:14244;;3287:25;3220:30;;;2180:14244;3220:30;;2180:14244;3220:30;;;;;;2180:14244;3220:30;;;:::i;:::-;;;2180:14244;;;;;;;:::i;:::-;3220:30;;;;;;-1:-1:-1;3220:30:27;;2180:14244;;;;;;-1:-1:-1;;2180:14244:27;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;5625:14;2180:14244;;;;;;:::i;:::-;4460:73:39;;;:::i;:::-;5625:14:27;:::i;2180:14244::-;;;;;;-1:-1:-1;;2180:14244:27;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;:::i;:::-;4460:73:39;;;:::i;:::-;2180:14244:27;;;;;;;;;;;;;;;7361:56;2180:14244;;;;;;;;;;;;;;:::i;:::-;;;;;7376:29;;2180:14244;;;;:::i;:::-;;;;;;-1:-1:-1;;2180:14244:27;;;;;;:::i;:::-;4460:73:39;;:::i;:::-;-1:-1:-1;;;;;15559:35:27;2180:14244;;;-1:-1:-1;;;;;2180:14244:27;;15609:40;;15605:102;;15722:29;-1:-1:-1;;;;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;15753:22;;;;-1:-1:-1;;;;;2180:14244:27;;;;15800:21;2180:14244;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;338:9:17;2180:14244:27;;;;;;338:9:17;-1:-1:-1;;;;;2180:14244:27;;;;15845:24;2180:14244;;;;;;338:9:17;;;;2180:14244:27;;;;338:9:17;2180:14244:27;;338:9:17;2180:14244:27;;338:9:17;2180:14244:27;;15893:26;2180:14244;;;;;;;;;;;;;;15722:29;2180:14244;;-1:-1:-1;;;;;2180:14244:27;;;;15943:18;2180:14244;;;;;;;;;;;;;;15722:29;2180:14244;;-1:-1:-1;;;;;2180:14244:27;;;;15893:26;2180:14244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;16110:9;2180:14244;16121:5;;;;;;-1:-1:-1;;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;15722:29;;16110:9;-1:-1:-1;;;;;2180:14244:27;;;;;;16155:20;2180:14244;;;;;;;;-1:-1:-1;;;;;16179:13:27;2180:14244;16179:13;;:::i;:::-;2180:14244;;;;;;16148:45;2180:14244;;;16148:45;:::i;:::-;2180:14244;16110:9;;2180:14244;;;;;;;;;;;;;;;;;;;;;;;;;;338:9:17;;;;;;;;2180:14244:27;;;;;338:9:17;2180:14244:27;338:9:17;2180:14244:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;15800:21;2180:14244;;338:9:17;2180:14244:27;15845:24;2180:14244;;;;15943:18;2180:14244;;;:::i;:::-;;15559:35;2180:14244;;338:9:17;2180:14244:27;;;;;;;;338:9:17;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;338:9:17;;2180:14244:27;;;;15753:22;15559:35;338:9:17;;-1:-1:-1;;338:9:17;-1:-1:-1;;;;;2180:14244:27;;338:9:17;;;2180:14244:27;15605:102;2180:14244;;-1:-1:-1;;;15672:24:27;;2180:14244;;15672:24;2180:14244;;;;-1:-1:-1;;2180:14244:27;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;4460:73:39;;:::i;:::-;13872:22:27;2180:14244;;;13872:22;;:::i;:::-;-1:-1:-1;;;;;2180:14244:27;13897:35;2180:14244;;;;13872:60;13868:126;;14007:22;2180:14244;;;13872:22;14007;:::i;:::-;-1:-1:-1;;;;;14032:21:27;2180:14244;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;14003:113;;-1:-1:-1;;;;;2815:40:38;:28;14165:22:27;2180:14244;;;13872:22;14165;:::i;:::-;-1:-1:-1;;;;;2180:14244:27;;;2412:21:38;2180:14244:27;;;;;;;2815:28:38;:40;2180:14244:27;;14125:122;;14261:21;;14257:81;;2180:14244;14410:20;2180:14244;;338:9:17;;;;;;;;;10884:32:13;-1:-1:-1;;;;;14514:22:27;2180:14244;;;13872:22;14514;:::i;:::-;2180:14244;10884:32:13;:::i;:::-;14551:3:27;14547:72;;2180:14244;;;14703:22;;;2180:14244;;-1:-1:-1;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14703:22;2180:14244;10593:3:38;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;;;13872:22;2180:14244;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;14703:22;-1:-1:-1;;14703:22:27;;;;;;:::i;:::-;2180:14244;;;14703:22;;14693:33;2180:14244;;;;;;;:::i;:::-;;;;;;14658:213;;2180:14244;338:9:17;2180:14244:27;;14658:213;;2180:14244;;;14658:213;;2180:14244;;;14658:213;;2180:14244;;;;;;;:::i;:::-;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;13872:22;2180:14244;:::i;:::-;;;;;;;;;;;;;;;;;;;10593:3:38;2180:14244:27;;;;:::i;:::-;;;;;;;;3168:45:38;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;2412:21:38;2180:14244:27;;;;;;;3168:45:38;2180:14244:27;;;;-1:-1:-1;;;;;338:9:17;;2180:14244:27;338:9:17;-1:-1:-1;;;;;338:9:17;;;;;;;;;;2180:14244:27;;;;-1:-1:-1;;;;;338:9:17;;;;2180:14244:27;338:9:17;2180:14244:27;338:9:17;;;;;;;;:::i;:::-;2180:14244:27;;;;;;;;338:9:17;;;;;;2180:14244:27;;;;;;3236:48:38;2180:14244:27;;;;;;;-1:-1:-1;;;;;2180:14244:27;2815:40:38;2180:14244:27;;;;338:9:17;2180:14244:27;338:9:17;;;;;;;;;2180:14244:27;;;;;-1:-1:-1;;;;;2180:14244:27;;;338:9:17;;2180:14244:27;338:9:17;;;;;;;2180:14244:27;;;;-1:-1:-1;;;;;2180:14244:27;;;2467:24:38;2180:14244:27;;;;;;;3236:48:38;2180:14244:27;;;;;;14658:213;;2180:14244;;;;;;14658:213;;2180:14244;2815:40:38;2180:14244:27;;;;14658:213;;2180:14244;;;;;14658:213;338:9:17;2180:14244:27;;;;338:9:17;;;;;;;2180:14244:27;;;338:9:17;;;;;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;338:9:17;;;;2180:14244:27;338:9:17;;;;;;;;2180:14244:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;14547:72;2180:14244;;-1:-1:-1;;;14577:31:27;;2180:14244;;14577:31;14257:81;2180:14244;;-1:-1:-1;;;14305:22:27;;2180:14244;;14305:22;14125:122;2180:14244;;-1:-1:-1;;;14211:25:27;;2180:14244;;14211:25;14003:113;2180:14244;;-1:-1:-1;;;14081:24:27;;2180:14244;;14081:24;2180:14244;;;;;;;;;;;;13868:126;2180:14244;;-1:-1:-1;;;13955:28:27;;2180:14244;;13955:28;2180:14244;;;;;;-1:-1:-1;;2180:14244:27;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;10821:35:27;2180:14244;;-1:-1:-1;;;;;2180:14244:27;;10812:44;10808:110;;2412:28:38;;-1:-1:-1;;;;;2180:14244:27;;;2412:21:38;2180:14244:27;;;;;;;2412:28:38;2467:31;;-1:-1:-1;;;;;2180:14244:27;;;2467:24:38;2180:14244:27;;;;;;;2467:31:38;2518:22;-1:-1:-1;;;;;2518:22:38;;;2180:14244:27;;2518:27:38;11093:67:27;;11278:48;2180:14244;;;11278:48;:::i;:::-;2180:14244;;;;;;;;;;11336:89;;-1:-1:-1;;;;;2180:14244:27;;;;;;11513:26;2180:14244;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;338:9:17;;2180:14244:27;4352:12:13;338:9:17;;;;;2180:14244:27;11509:118;;2180:14244;;;-1:-1:-1;;;;;2180:14244:27;;;11883:38;;2180:14244;;;;;;;;;11883:38;;;;2180:14244;;11883:38;:::i;:::-;2180:14244;11873:49;;2180:14244;;;;;;;;;;;;;;:::i;:::-;;11850:74;;11997:23;2180:14244;11997:23;;2180:14244;2145:27:10;2187:13;2180:14244:27;2182:116:10;2220:3;2180:14244:27;;2202:16:10;;;;;2278:8;;;;:::i;:::-;2180:14244:27;;9511:5:10;;;;;;2180:14244:27;9711:119:10;2180:14244:27;9711:119:10;2180:14244:27;;9711:119:10;9511:51;2220:3;-1:-1:-1;;2180:14244:27;;;;;;2187:13:10;;;9511:51;9711:119;2180:14244:27;9711:119:10;2180:14244:27;9711:119:10;2180:14244:27;;9711:119:10;9511:51;;2202:16;;1379:33;12053:77:27;;-1:-1:-1;;;;;2180:14244:27;;;;11513:26;2180:14244;;8399:50:13;2180:14244:27;;;;;;;;;;8399:50:13;:::i;:::-;12302:3:27;12298:61;;-1:-1:-1;;;;;2180:14244:27;;;;12368:20;2180:14244;;;;;;;;;;;;;;;;;;;;;;338:9:17;-1:-1:-1;;;;;338:9:17;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;2180:14244:27;338:9:17;11883:38:27;338:9:17;;;2180:14244:27;;;;338:9:17;;;;;;;2180:14244:27;338:9:17;2180:14244:27;;;338:9:17;;;;;;;;;;2180:14244:27;12438:28;;2180:14244;12438:38;2180:14244;;;;12438:38;:::i;:::-;2180:14244;;;2518:22:38;12523:24:27;;2180:14244;12491:56;;;12487:884;;2180:14244;12487:884;2180:14244;12568:22;;2180:14244;;12568:22;;2180:14244;;;;;-1:-1:-1;;;338:9:17;2180:14244:27;338:9:17;;;2518:22:38;;2180:14244:27;11184:35:13;;-1:-1:-1;;;;;2180:14244:27;11184:35:13;:::i;:::-;12818:3:27;12814:91;;12927:186;;2180:14244;;;;;;12927:186;;;;2180:14244;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;12927:186;;;;2180:14244;12814:91;2180:14244;;-1:-1:-1;;;12852:34:27;;2180:14244;;12852:34;12563:798;2180:14244;;;;;13157:189;;2180:14244;;;;;13157:189;;;;2180:14244;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;338:9:17;;;;-1:-1:-1;338:9:17;;;;;2180:14244:27;;;;;;;;-1:-1:-1;;;338:9:17;;;;;;;;;;;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;;;2180:14244:27;;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;2180:14244:27;;338:9:17;;;;;;;;;;;;;;;12298:61:27;2180:14244;;-1:-1:-1;;;12328:20:27;;2180:14244;;12328:20;12053:77;2180:14244;;-1:-1:-1;;;12086:33:27;;-1:-1:-1;;;;;2180:14244:27;;;;12086:33;;2180:14244;;;12086:33;11509:118;2180:14244;;-1:-1:-1;;;11599:17:27;;2180:14244;;11599:17;11336:89;2180:14244;;-1:-1:-1;;;11396:18:27;;2180:14244;;11396:18;11093:67;2180:14244;;-1:-1:-1;;;11127:22:27;;2180:14244;;11127:22;2180:14244;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;;;;:::i;:::-;;;;;;;;;;4460:73:39;;:::i;:::-;2180:14244:27;;;;;;;:::i;:::-;;;;;;4330:20:38;2180:14244:27;;;;4364:28:38;;;4360:98;;2180:14244:27;338:9:17;2180:14244:27;338:9:17;2180:14244:27;338:9:17;;2180:14244:27;;338:9:17;2180:14244:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;338:9:17;2180:14244:27;338:9:17;2180:14244:27;338:9:17;;2180:14244:27;;338:9:17;2180:14244:27;;;;;;;;;4330:20:38;2180:14244:27;;;5314:28;;2180:14244;;;;;;;;;;;;;;;;;4360:98:38;2180:14244:27;;-1:-1:-1;;;4415:32:38;;2180:14244:27;;4415:32:38;2180:14244:27;;;;;;-1:-1:-1;;2180:14244:27;;;;4460:73:39;;:::i;:::-;2180:14244:27;4525:1:39;;:::i;:::-;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2180:14244:27;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;:::o;:::-;;11883:38;;;2180:14244;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;:::o;:::-;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2180:14244:27;;;;11883:38;2180:14244;-1:-1:-1;;2180:14244:27;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2180:14244:27;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;8140:13:27;2180:14244;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;;;-1:-1:-1;2180:14244:27;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;:::o;6737:692:6:-;;6952:471;;;2180:14244:27;;6983:22:6;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;2180:14244:27;;-1:-1:-1;;;7261:24:6;;-1:-1:-1;;;;;2180:14244:27;;;7261:24:6;;;2180:14244:27;;;7261:24:6;6952:471;-1:-1:-1;2180:14244:27;;8828:21:6;:17;;9000:142;;;;;;8824:411;2180:14244:27;;-1:-1:-1;;;8628:17:6;;;;;2180:14244:27;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;2180:14244:27;;;;-1:-1:-1;2180:14244:27;;-1:-1:-1;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;;;;;;;338:9:17;;;2180:14244:27;338:9:17;;2180:14244:27;338:9:17;;;;2180:14244:27;;;;;;;;;;;;;;;;5739:1485;5918:27;2180:14244;;;;-1:-1:-1;;;;;2180:14244:27;;;-1:-1:-1;;2180:14244:27;;;;;;;6171:23;;;:::i;:::-;2180:14244;;;;;;;;;6170:81;6080:264;;6417:19;;;:::i;:::-;2180:14244;;;5473:27:42;2180:14244:27;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;11883:38:27;;2180:14244;;;:::i;:::-;;;;;;;5972:1;5566:12:42;;;;5972:1:27;;;5561:176:42;2180:14244:27;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;6686:9;;;2180:14244;6697:11;;;;;;2180:14244;;;7110:70;2180:14244;;;;;;;;;:::i;:::-;;;;;7110:70;;;2180:14244;7110:70;:::i;6686:9::-;2180:14244;;-1:-1:-1;;;;;6741:13:27;2180:14244;6741:13;;:::i;:::-;2180:14244;;;;;6797:41;2180:14244;;;6797:41;2180:14244;;;;;;;;;;;;:::i;:::-;;;6866:82;;;2180:14244;6933:13;2180:14244;:::i;:::-;6866:82;;;2180:14244;6858:90;;;;:::i;:::-;;;;;;:::i;:::-;;2180:14244;6686:9;;2180:14244;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5566:12:42;2180:14244:27;;;5580:9:42;;;;;2180:14244:27;;;;598:23:49;2180:14244:27;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;5607:60:42;2180:14244:27;5617:5:42;2180:14244:27;5617:5:42;:::i;:::-;2180:14244:27;5607:60:42;;:::i;:::-;2180:14244:27;;;5566:12:42;;;5580:9;;;;6080:264:27;-1:-1:-1;2180:14244:27;;-1:-1:-1;;;6325:8:27:o;9743:314::-;2180:14244;;9899:9;-1:-1:-1;9910:19:27;;;;;;9743:314;;;;:::o;9899:9::-;9968:12;;;2180:14244;9968:12;;;:::i;:::-;;;;:::i;:::-;2180:14244;9899:9;;338::17;;;;;;;;-1:-1:-1;;338:9:17;;;;:::o;:::-;;;;;;;;;;;;;;;2180:14244:27;338:9:17;;2180:14244:27;;;;;;;;;;;338:9:17;;;:::i;:::-;11883:38:27;2180:14244;-1:-1:-1;;2180:14244:27;338:9:17;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2180:14244:27;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;2180:14244:27;-1:-1:-1;;;;;338:9:17;;;;2180:14244:27;338:9:17;;;2180:14244:27;;;;338:9:17;;;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;:::i;:::-;;;;;;2180:14244:27;338:9:17;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;338:9:17;;;;;;;2180:14244:27;;;338:9:17;;;;;;;:::o;:::-;;2180:14244:27;;;;;;338:9:17;;;;;:::i;:::-;;-1:-1:-1;;;338:9:17;;;;2180:14244:27;;338:9:17;;;;;;;;;;;;:::o;:::-;;2180:14244:27;-1:-1:-1;2180:14244:27;;-1:-1:-1;2180:14244:27;338:9:17;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;2180:14244:27;-1:-1:-1;2180:14244:27;;-1:-1:-1;2180:14244:27;338:9:17;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;338:9:17;;;;7700:1702:27;;;;7795:19;:16;;:19;;:28;:36;2180:14244;;;7795:19;2180:14244;;;;;;7795:38;;;;;;;;2180:14244;;;;;;:::i;:::-;7795:38;;;;;;;;;;-1:-1:-1;7795:38:27;;;7700:1702;7791:102;;;7906:16;;:23;;;2180:14244;-1:-1:-1;;;;;;2180:14244:27;;7906:16;2180:14244;;7906:38;7902:178;;7700:1702;8113:16;;;2180:14244;338:9:17;2180:14244:27;;;;;;8113:41;;2180:14244;7795:38;8113:41;;338:9:17;;;;;;:::i;:::-;7795:19:27;2180:14244;;338:9:17;2180:14244:27;;338:9:17;;;;;;2180:14244:27;338:9:17;;;;:::i;:::-;8113:41:27;:26;;:41;;;;;;;-1:-1:-1;8113:41:27;;;7700:1702;8237:16;7795:19;2180:14244;8237:16;;;:19;;:28;2180:14244;;;;;;;;;;;8237:50;;2180:14244;7795:38;8237:50;;2180:14244;338:9:17;2180:14244:27;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;8237:50;;;;;;;;;;-1:-1:-1;8237:50:27;;;7700:1702;8233:977;;;2180:14244;;;;;;2350:20:35;;7795:19:27;2350:20:35;;2180:14244:27;7795:19;2180:14244;;;;;;;;;;;;;;;;7906:23;2180:14244;;;;;;;;:::i;:::-;;7795:19;2180:14244;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;7906:23;2180:14244;;;;;;;338:9:17;2180:14244:27;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7795:19;2180:14244;;;;;;;;;2350:20:35;11883:38:27;;2350:20:35;;;;;;:::i;:::-;2180:14244:27;2340:31:35;;-1:-1:-1;338:9:17;2180:14244:27;7795:19;338:9:17;2180:14244:27;-1:-1:-1;338:9:17;2180:14244:27;;;;;;;-1:-1:-1;;;;;338:9:17;;2180:14244:27;-1:-1:-1;;;;;338:9:17;;;;;;;7795:19:27;338:9:17;;;;;2180:14244:27;;;;338:9:17;-1:-1:-1;;;;;338:9:17;;;;7795:19:27;338:9:17;;;;;:::i;:::-;2180:14244:27;;-1:-1:-1;2180:14244:27;7795:19;-1:-1:-1;2180:14244:27;-1:-1:-1;338:9:17;;;;;;;;;;7795:19:27;338:9:17;;;;;;;2180:14244:27;338:9:17;2180:14244:27;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;2180:14244:27;;;338:9:17;-1:-1:-1;;;;;338:9:17;;;;;;;;;2180:14244:27;338:9:17;;;;:::i;:::-;2180:14244:27;338:9:17;;;:::i;:::-;7795:19:27;338:9:17;11883:38:27;338:9:17;;;;;;-1:-1:-1;338:9:17;;;;;;;;;2180:14244:27;;;338:9:17;2180:14244:27;338:9:17;;;;;2180:14244:27;338:9:17;;;;7795:38:27;338:9:17;;7795:19:27;338:9:17;;2180:14244:27;;;;338:9:17;-1:-1:-1;;;;;338:9:17;;2180:14244:27;-1:-1:-1;;;;;338:9:17;;;;;;;7795:19:27;338:9:17;;;;;2180:14244:27;;;;338:9:17;-1:-1:-1;;;;;338:9:17;;;;7795:19:27;338:9:17;;;;;:::i;:::-;2180:14244:27;;-1:-1:-1;2180:14244:27;7795:19;-1:-1:-1;2180:14244:27;-1:-1:-1;338:9:17;;;;;;;;;;7795:19:27;338:9:17;;;;;2180:14244:27;338:9:17;2180:14244:27;338:9:17;;2180:14244:27;338:9:17;;;;;;;;7795:19:27;338:9:17;;;;;2180:14244:27;;;338:9:17;-1:-1:-1;;;;;338:9:17;;;;;;;;;;;;:::i;:::-;7795:19:27;338:9:17;11883:38:27;338:9:17;;;;;;-1:-1:-1;338:9:17;;;;;;;;;2180:14244:27;;;338:9:17;2180:14244:27;338:9:17;;;;;;;;2180:14244:27;338:9:17;;2180:14244:27;338:9:17;;;2180:14244:27;338:9:17;;;-1:-1:-1;;;;;2180:14244:27;338:9:17;;;2180:14244:27;338:9:17;;;;7906:23:27;338:9:17;;2180:14244:27;;338:9:17;;;-1:-1:-1;;;;;338:9:17;;;;;;;;;;2180:14244:27;338:9:17;;2180:14244:27;;;;-1:-1:-1;;;;;338:9:17;;;;;;;;;;:::i;:::-;;;:::i;:::-;7795:19:27;11883:38;338:9:17;;;;;;;;;;;2180:14244:27;338:9:17;7795:19:27;338:9:17;;;;-1:-1:-1;338:9:17;;;;;;;;;2180:14244:27;;;338:9:17;2180:14244:27;338:9:17;;;;;;;;;2180:14244:27;338:9:17;;;2180:14244:27;;338:9:17;2180:14244:27;;338:9:17;;;;;;;;;2180:14244:27;;;338:9:17;;;;;;;;;-1:-1:-1;338:9:17;;;;;11883:38:27;;338:9:17;;2180:14244:27;;-1:-1:-1;2180:14244:27;7795:19;-1:-1:-1;2180:14244:27;338:9:17;-1:-1:-1;338:9:17;;;;;;;;;;;7795:19:27;338:9:17;;;;;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;;2180:14244:27;;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;;;;;;7795:19:27;338:9:17;;;;;;;;;;;-1:-1:-1;338:9:17;;;;;-1:-1:-1;2180:14244:27;;;7795:19;2180:14244;;;-1:-1:-1;;;338:9:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:14244:27;;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;7795:19:27;338:9:17;;;;;;;;;;;;;;;;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;338:9:17;;;;7795:19:27;338:9:17;;;;;;;;;;;;-1:-1:-1;338:9:17;;;;;;;2180:14244:27;338:9:17;;-1:-1:-1;2180:14244:27;7795:19;-1:-1:-1;2180:14244:27;338:9:17;-1:-1:-1;338:9:17;;-1:-1:-1;;338:9:17;;;;;;;11883:38:27;;;;;338:9:17;;;;;;;;;;;;2180:14244:27;338:9:17;;;;;;;;2180:14244:27;;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;7795:19:27;338:9:17;;;;;;;;;;;;;;;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;338:9:17;;;;7795:19:27;338:9:17;;;;;;;;8233:977:27;338:9:17;;;;;;;;;;;;;;8320:19:27;8307:32;;8303:539;;8233:977;8860:31;;;;8856:236;;8233:977;-1:-1:-1;2180:14244:27;;;;;;;;9161:18;;7795:19;:38;9161:18;;338:9:17;7795:19:27;338:9:17;;;2180:14244:27;;338:9:17;;;;;;;;:::i;:::-;;;;2180:14244:27;;338:9:17;;;2180:14244:27;9161:18;:16;;:18;;;;;;;;9193:7;:::o;9161:18::-;;;-1:-1:-1;9161:18:27;;;;;;:::i;:::-;;;338:9:17;7795:19:27;338:9:17;;;;;;;;;-1:-1:-1;;;;;338:9:17;;;;;;;;;;;;;;;;;;;:::i;:::-;2180:14244:27;;;;;;;:::i;:::-;338:9:17;;;7795:19:27;338:9:17;;;;;;;7795:19:27;338:9:17;;;;;;;:::i;8856:236:27:-;8915:21;338:9:17;-1:-1:-1;;;;;338:9:17;;;;2180:14244:27;8940:16;:22;:16;;:22;338:9:17;2180:14244:27;8915:47;;8911:123;;9051:26;-1:-1:-1;;;9051:26:27;;:::i;:::-;338:9:17;;;;-1:-1:-1;;;338:9:17;;;8915:21:27;338:9:17;8856:236:27;;8911:123;2180:14244;;-1:-1:-1;;;8993:22:27;;7795:38;;8993:22;8303:539;7795:19;2180:14244;;;8364:19;;;;;;7795:38;8364:19;;2180:14244;;;;;;;;;:::i;:::-;8364:19;;;;;;;;;-1:-1:-1;8364:19:27;;;8303:539;8363:20;;8359:469;;8303:539;;;;;8359:469;8450:31;;;:::i;:::-;8507:11;;8503:94;;2180:14244;8622:27;2180:14244;;-1:-1:-1;;;;;2180:14244:27;;;;;8653:16;:22;:16;;:22;338:9:17;2180:14244:27;8622:53;;8618:137;;8777:32;-1:-1:-1;;;8777:32:27;;:::i;:::-;2180:14244;338:9:17;;;-1:-1:-1;;;338:9:17;;;;;8359:469:27;;;8503:94;2180:14244;;-1:-1:-1;;;8553:21:27;;7795:38;;8553:21;8364:19;;;;7795;8364;7795;8364;;;;;;;:::i;:::-;;;;8237:50;;;;7795:19;8237:50;7795:19;8237:50;;;;;;;:::i;:::-;;;;8113:41;7795:19;8113:41;;;;;7795:19;8113:41;;;;;;7795:19;8113:41;;;:::i;:::-;;;338:9:17;;;;;;;;;;;;8113:41:27;;;;;338:9:17;;;;2180:14244:27;;;8113:41;;;-1:-1:-1;8113:41:27;;7902:178;2180:14244;7964:22;2180:14244;7989:21;-1:-1:-1;7960:110:27;;7902:178;;;7960:110;2180:14244;;-1:-1:-1;;;8037:18:27;;7795:38;;8037:18;7791:102;2180:14244;;-1:-1:-1;;;7856:26:27;;7795:38;;7856:26;7795:38;;;;:19;:38;:19;:38;;;;;;;:::i;:::-;;;;2483:766:9;2180:14244:27;;;2483:766:9;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:9;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;2180:14244:27;;;;;;;;;;;;;;;;338:9:17;2180:14244:27;;;;;;;;-1:-1:-1;6908:24:9;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;6946:20:9;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;2180:14244:27;;;;;;;;;;6633:164:9;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;2180:14244:27:-;14486:23;2180:14244;;;;;;14486:23;-1:-1:-1;2180:14244:27;;;;-1:-1:-1;2180:14244:27;:::o;2215:404:13:-;-1:-1:-1;338:9:17;;;4352:12:13;338:9:17;;;;;2180:14244:27;338:9:17;;14486:23:27;2180:14244;-1:-1:-1;;;2180:14244:27;;;;;;;338:9:17;2180:14244:27;;4352:12:13;338:9:17;2180:14244:27;;14486:23;2180:14244;;:::i;:::-;338:9:17;;;;;;;;;;2180:14244:27;;;338:9:17;;;;;;;;;;14486:23:27;2180:14244;338:9:17;;;4352:12:13;338:9:17;;;2180:14244:27;4352:12:13;2548:11;:::o;2180:14244:27:-;-1:-1:-1;;;2180:14244:27;;;;;;;;2294:319:13;2590:12;;;:::o;2215:404::-;-1:-1:-1;338:9:17;;;4352:12:13;;;338:9:17;;;;;2180:14244:27;2299:21:13;;2180:14244:27;;;-1:-1:-1;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;;-1:-1:-1;2180:14244:27;;338:9:17;2180:14244:27;;338:9:17;-1:-1:-1;338:9:17;2494:12:13;2180:14244:27;338:9:17;;-1:-1:-1;338:9:17;2180:14244:27;;2548:11:13;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:13;:::o;2787:1388::-;-1:-1:-1;338:9:17;;;2990:12:13;338:9:17;;;;;2180:14244:27;-1:-1:-1;;338:9:17;3024:15:13;;;;-1:-1:-1;;2180:14244:27;;;;;;;;;12742:23;2180:14244;;;;;;;;;;3506:26:13;;;3502:398;;3020:1149;2180:14244:27;;;12742:23;2180:14244;;;;;;;;;;;:::i;:::-;338:9:17;;;;;;;;;;;;12742:23:27;2180:14244;338:9:17;;2990:12:13;338:9:17;;;;;;2990:12:13;4104:11;:::o;2180:14244:27:-;-1:-1:-1;;;2180:14244:27;;;;;;;;3502:398:13;338:9:17;3572:22:13;3694:26;3572:22;;:::i;:::-;2180:14244:27;;;;;338:9:17;3694:26:13;;;;:::i;338:9:17:-;;;;;2990:12:13;338:9:17;;;;;2180:14244:27;3502:398:13;;;;;2180:14244:27;-1:-1:-1;;;2180:14244:27;;;;;;;;;-1:-1:-1;;;2180:14244:27;;;;;;;;3020:1149:13;4146:12;;;:::o;2180:14244:27:-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;338:9:17;;;;2180:14244:27;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;338:9:17;;2180:14244:27;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;;;;;;;;;;;;;;:::o;:::-;11883:38;;;;;;;;2180:14244;;11883:38;;;2180:14244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;338:9:17;;;;;2180:14244:27;;;338:9:17;;;;;;;2180:14244:27;;:::o;:::-;;;;-1:-1:-1;2180:14244:27;;;;;;;;;;;;;;;;;;-1:-1:-1;2180:14244:27;-1:-1:-1;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;338:9:17;;;;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;4964:19:38;2180:14244:27;;;;;;;;4964:19:38;-1:-1:-1;2180:14244:27;;;;;-1:-1:-1;2180:14244:27;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;338:9:17;-1:-1:-1;;;;;338:9:17;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;338:9:17;;;;;;;2180:14244:27;;;338:9:17;;;;;;;;;2180:14244:27:o;338:9:17:-;;;;-1:-1:-1;338:9:17;;;;;11883:38:27;;;;;338:9:17;;2180:14244:27;-1:-1:-1;2180:14244:27;;-1:-1:-1;2180:14244:27;338:9:17;-1:-1:-1;338:9:17;;;;;;;;;;;;;;;;;;;;;;2180:14244:27:o;338:9:17:-;;;2180:14244:27;;338:9:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;338:9:17;;;;;;2180:14244:27;;;;338:9:17;;;;;;;;4707:1976:38;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4787:29:38;2180:14244:27;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;4787:29:38;;;2180:14244:27;4964:39:38;2180:14244:27;;4964:44:38;;4960:621;;4707:1976;4964:19;;;;2180:14244:27;;;;-1:-1:-1;;;2180:14244:27;;;;;;5591:16:38;2180:14244:27;;5591:16:38;2180:14244:27;;;;;;4707:1976:38;-1:-1:-1;5591:16:38;2180:14244:27;;;;;;;;;;;;;;;;;;;4964:39:38;2180:14244:27;;338:9:17;-1:-1:-1;;;;;338:9:17;;;2180:14244:27;338:9:17;;;2180:14244:27;338:9:17;5662:21:38;;2180:14244:27;;;;5926:9:38;;5937:15;;;;;;338:9:17;;;;2180:14244:27;338:9:17;4964:39:38;338:9:17;;;4964:39:38;338:9:17;6437:25:38;;;6433:244;;5921:332;4707:1976;;;;:::o;6433:244::-;6508:15;;;;6433:244;6508:15;2180:14244:27;;;;;;-1:-1:-1;;2180:14244:27;;;;;:::i;:::-;;;;;;338:9:17;;;2180:14244:27;;;;;;;;;;;:::i;:::-;;;;6483:23:38;;2180:14244:27;-1:-1:-1;;;338:9:17;;;;;;2180:14244:27;338:9:17;2180:14244:27;-1:-1:-1;;;2180:14244:27;;;;;;;;5926:9:38;5974:15;;;;;;6045:21;6009:60;6045:24;2180:14244:27;6045:21:38;;;:24;:::i;:::-;;6009:33;;;:::i;:::-;:60;;:::i;:::-;2180:14244:27;5926:9:38;;5970:214;6144:24;:21;;;:24;:::i;:::-;;2180:14244:27;;;;;;;;;;;;;;;;;;;;:::i;:::-;5970:214:38;;2180:14244:27;-1:-1:-1;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;:::i;:::-;;;;;338:9:17;;;;;;;;;;;;;;;;;;;;;2180:14244:27;;5591:16:38;2180:14244:27;;;;;;;;;;;;;;;;;;;;338:9:17;;;;;2180:14244:27;;;;;;;;;;:::i;:::-;;;;338:9:17;2180:14244:27;;;;;;;;;;;338:9:17;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;4960:621:38;338:9:17;;;2180:14244:27;;5062:36:38;2180:14244:27;;5028:70:38;;;;5024:115;;5252:69;5248:139;;2180:14244:27;;;;;;:::i;:::-;4964:19:38;2180:14244:27;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4964:19:38;-1:-1:-1;2180:14244:27;;;-1:-1:-1;2180:14244:27;;;;;;;-1:-1:-1;;;2180:14244:27;;;-1:-1:-1;;2180:14244:27;;;5482:48:38;;;;:::i;:::-;5478:93;;4960:621;;;;;5478:93;5550:7;;;:::o;2180:14244:27:-;;;4964:39:38;2180:14244:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5248:139:38;2180:14244:27;;-1:-1:-1;;;5348:24:38;;4964:19;;5348:24;5024:115;5118:7;;;;;;;;:::o;7218:561::-;-1:-1:-1;;;;;7332:23:38;;;;;;;338:9:17;2180:14244:27;7359:23:38;;;;338:9:17;2180:14244:27;7332:50:38;7328:93;;7434:26;;;:::i;:::-;7464;;;:::i;:::-;7434:56;7430:99;;7542:14;2180:14244:27;;7567:14:38;;2180:14244:27;7542:46:38;7538:89;;7719:26;2180:14244:27;;;;7659:26:38;;2180:14244:27;7659:26:38;;;2180:14244:27;;;;;;;;;:::i;:::-;7659:26:38;11883:38:27;7659:26:38;11883:38:27;;7659:26:38;;;;;;;;:::i;:::-;2180:14244:27;7649:37:38;;7730:14;;2180:14244:27;;7719:26:38;;;;;;2180:14244:27;;;;;;;;:::i;:::-;7719:26:38;;;;;;;;:::i;:::-;2180:14244:27;7709:37:38;;7764:8;7218:561;:::o;7538:89::-;7604:12;;;-1:-1:-1;7604:12:38;:::o;6752:387::-;6863:15;;2180:14244:27;6895:29:38;2180:14244:27;6939:9:38;;6934:161;6950:7;;;;;;7104:28;;;6752:387;:::o;6939:9::-;7000:15;;;6975:50;2180:14244:27;7000:15:38;:18;:15;;;:18;:::i;:::-;;2180:14244:27;6975:50:38;;:::i;:::-;2180:14244:27;;6939:9:38;;;;10022:272;10231:15;2180:14244:27;;;;;;;;;;10231:17:38;;;;;;;;;;;;2180:14244:27;;;;;;:::i;:::-;10231:17:38;;;;;;;;;;3832:45:39;10231:17:38;;;10022:272;338:9:17;3832:45:39;338:9:17;3832:45:39;338:9:17;;;3832:45:39;338:9:17;2180:14244:27;;;;;;;:::i;:::-;-1:-1:-1;;;;;10231:17:38;10268:9;;2180:14244:27;;;;;;;;;;;;;;;;;;;;3832:45:39;2180:14244:27;;3832:45:39;2180:14244:27;;3832:45:39;2180:14244:27;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;10268:19:38;;;10231:17;10268:19;;2180:14244:27;;;;;;:::i;:::-;10268:19:38;;;;;;;;;;3832:45:39;10268:19:38;;;2180:14244:27;10267:20:38;;;10022:272;:::o;10268:19::-;;;;;;-1:-1:-1;10268:19:38;;;;;;:::i;:::-;;;;;;2180:14244:27;;3832:45:39;2180:14244:27;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;10231:17:38;;;;;;;;;;;;;;;:::i;:::-;;;2180:14244:27;;;;;;10231:17:38;;;;;;;;;2180:14244:27;;;3832:45:39;2180:14244:27;;;;;4316:138:39;2180:14244:27;;-1:-1:-1;;;4372:26:39;;:10;:26;;;2180:14244:27;4372:26:39;2180:14244:27;;;4372:24:39;:26;;;;;;;-1:-1:-1;4372:26:39;;;4316:138;4371:27;;4367:81;;4316:138::o;4367:81::-;2180:14244:27;;-1:-1:-1;;;4421:16:39;;4372:26;;4421:16;4372:26;;;;;;;;;;;;;;:::i;:::-;;;;2180:14244:27;;;;;-1:-1:-1;;2180:14244:27;;;;;;;:::o;23300:415:42:-;;;23505:11;;23501:48;;23515:1;23575:10;;;;;;23300:415;;;;:::o;23564:9::-;23621:17;;;;;:::i;:::-;23022:20;:30;:20;;;;:::i;:::-;-1:-1:-1;;;;;2180:14244:27;23022:30:42;2180:14244:27;;;;;;;;;;23070:20:42;;;;:::i;:::-;2180:14244:27;;;;;;;;23116:20:42;;;;:::i;:::-;22971:12;;23116:28;;;;2180:14244:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;23022:30:42;2180:14244:27;;;;;:::i;:::-;;;2774:63:43;;;2180:14244:27;;;23022:30:42;2774:63:43;;2180:14244:27;;;;23515:1:42;2180:14244:27;2735:15:43;2180:14244:27;;;23022:30:42;23515:1;2180:14244:27;;;;;;;;;;338:9:17;;;;2180:14244:27;;338:9:17;;;;2180:14244:27;;;;;;338:9:17;;;;;;2180:14244:27;;;;;;338:9:17;;;;;;;:::i;:::-;;;;;;;;;;;;2180:14244:27;338:9:17;;;;23193:33:42;338:9:17;;;;;;23515:1:42;338:9:17;;;;;;;2180:14244:27;;;338:9:17;2180:14244:27;338:9:17;;;;;;;;2180:14244:27;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;2882:23:43;;;;:::i;:::-;2180:14244:27;-1:-1:-1;;;;;338:9:17;;;;;;;23193:33:42;;:::i;:::-;2180:14244:27;23170:56:42;23166:122;;2180:14244:27;23564:9:42;;23166:122;23022:30;2180:14244:27;-1:-1:-1;;;23249:28:42;;;;;338:9:17;;;;-1:-1:-1;338:9:17;;;;;2180:14244:27;;23515:1:42;2180:14244:27;;;;;23515:1:42;2180:14244:27;338:9:17;23515:1:42;11883:38:27;;338:9:17;;;;;;;;;;;23193:33:42;338:9:17;;;;;;;;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;;2180:14244:27;;338:9:17;;2180:14244:27;338:9:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:14244:27;;;;23515:1:42;2180:14244:27;;;;23515:1:42;2180:14244:27;23501:48:42;23532:7;;;:::o;2180:14244:27:-;;;;;;;;;;;;;;;;;:::o;23786:1269:42:-;23921:12;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;;;;23786:1269:42;23921:12;2180:14244:27;;;;23898:59:42;;2180:14244:27;;;;-1:-1:-1;;;23980:28:42;;;;;23894:227;2180:14244:27;;;;;24029:59:42;;24025:96;;23894:227;;;;;2180:14244:27;;;;;;24194:782:42;24199:16;2180:14244:27;;;24217:24:42;;;;;-1:-1:-1;2180:14244:27;;;;3139:15:43;2180:14244:27;;;;;;;24349:16:42;;2180:14244:27;;;;;;24349:16:42;;;2180:14244:27;;;;;;;;;;;;;24384:41:42;;;24349:16;;2180:14244:27;;;;;;;;;;;;;;;24445:26:42;2180:14244:27;;24494:14:42;2180:14244:27;;;;24445:46:42;2180:14244:27;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;24199:16:42;;;;;;;24380:485;2180:14244:27;;24575:14:42;;;2180:14244:27;:::i;:::-;;;;;24564:37:42;;2180:14244:27;;;;24564:37:42;;;;;;;;;;;;;;;;2180:14244:27;24624:38:42;;24620:231;3139:15:43;;;9347:13:42;2180:14244:27;;;;;8926:15:42;;2180:14244:27;;;;8926:55:42;2180:14244:27;;;;;8926:55:42;:::i;:::-;2180:14244:27;;;;;;;;;9017:42:42;;;2180:14244:27;;9074:18:42;;:42;;;;24620:231;-1:-1:-1;9070:199:42;;;2180:14244:27;338:9:17;;;;;;2180:14244:27;;:::i;:::-;9347:13:42;:::i;:::-;9373:39;:29;2180:14244:27;;;9373:39:42;:::i;:::-;2180:14244:27;;24380:485:42;;9070:199;2180:14244:27;;;;;9347:13:42;:::i;9074:42::-;9096:20;;;9074:42;;;24620:231;2180:14244:27;;8768:13:42;2180:14244:27;;;;;;;8511:15:42;2180:14244:27;;;;8511:55:42;2180:14244:27;;;;;8511:55:42;:::i;:::-;2180:14244:27;;;;;;;;;;;8649:39:42;:29;2180:14244:27;;;8649:39:42;:::i;:::-;2180:14244:27;;8768:13:42;:::i;:::-;24380:485;;2180:14244:27;;;;;-1:-1:-1;;;2180:14244:27;;;;;;;;;24217:24:42;;;;;;;;25025:23;-1:-1:-1;;;24217:24:42;25025:23;:::i;:::-;338:9:17;;-1:-1:-1;;338:9:17;;;;;;;23786:1269:42:o;24025:96::-;24104:7;;;;;;:::o;9514:2248::-;;;2180:14244:27;;;;;;;;;-1:-1:-1;;2180:14244:27;;;;;1317:17:50;2180:14244:27;;;;;;;;;;;;9630:231:42;;2180:14244:27;5918:19;2180:14244;;;9634:21:42;2180:14244:27;;-1:-1:-1;10031:267:42;;10888:31;;;:::i;:::-;10933:35;;;;10929:462;;2180:14244:27;;;;1317:17:50;2180:14244:27;;;;;;;;11401:234:42;;11681:11;;;;;11708:47;;11681:11;;;;;:::i;:::-;2180:14244:27;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;11708:47:42;;;;9514:2248::o;11401:234::-;3223:36:48;;;;;;;;;:::i;:::-;2180:14244:27;;;5270:21:42;2180:14244:27;;;;;;;;3396:3:48;4737:452;2180:14244:27;;;;;4744:7:48;;;;338:9:17;;;;;2180:14244:27;;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;6878:7:48;5017:43;5013:87;;5145:3;;;;:::i;:::-;4737:452;;5013:87;-1:-1:-1;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;;;;-1:-1:-1;;;;2180:14244:27;;;;;;;5080:5:48;;-1:-1:-1;11543:61:42;;-1:-1:-1;2180:14244:27;;;;11543:61:42;2180:14244:27;4744:7:48;;;;;;;11543:61:42;4744:7:48;;;;;11543:61:42;4744:7:48;;;;10929:462:42;11010:4;;;11312:48;11010:4;;;1317:17:50;11010:4:42;;;;11312:48;11010:4;;;;;:::i;:::-;2180:14244:27;;;;;;11030:140:42;;10929:462;11219:11;;;:::i;:::-;11281:10;;;:::i;:::-;2180:14244:27;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;11030:140:42;11143:11;;;:::i;:::-;11030:140;;10031:267;10190:11;;;;;10221:46;;10190:11;;;;;:::i;9630:231::-;2960:36:49;;;;;;;;;;;:::i;:::-;2180:14244:27;;;5270:21:42;2180:14244:27;;;;;;;;3133:3:49;5016:7;3133:3;5016:7;:::i;:::-;2180:14244:27;9634:21:42;2180:14244:27;;5107:792:49;;2180:14244:27;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;:::-;5269:187;;:::i;:::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;5695:85;-1:-1:-1;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;;;;-1:-1:-1;;;;2180:14244:27;;;;;;;5760:5:49;;-1:-1:-1;9770:60:42;;-1:-1:-1;2180:14244:27;;-1:-1:-1;2180:14244:27;;;9770:60:42;2180:14244:27;5146:437:49;2180:14244:27;;;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;;;5146:437:49;;5114:16;;;;;;;;;9770:60:42;5114:16:49;;;;;9770:60:42;5114:16:49;;;;11858:2071:42;;2180:14244:27;;;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;1317:17:50;2180:14244:27;;;;;;;;;;;;11973:431:42;;2180:14244:27;;;1317:17:50;2180:14244:27;;;;;;;;1317:33:50;12438:106:42;;12608:18;;12604:523;;3361:36:49;;;:::i;:::-;2180:14244:27;;;5270:21:42;2180:14244:27;;;;;;;3534:3:49;4411:462;2180:14244:27;;;;;4418:7:49;;;;338:9:17;;;;;2180:14244:27;;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;6540:7:49;4702:42;4698:86;;4829:3;;;;:::i;:::-;4411:462;;4698:86;4764:5;;;;;;;;;;;;4411:462;11977:22:42;2180:14244:27;;13208:37:42;13204:74;;13342:31;;:::i;:::-;13439:32;;;:::i;:::-;13485:42;;;13481:368;;-1:-1:-1;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;;13864:58:42;;2180:14244:27;;;;13864:58:42;2180:14244:27;13481:368:42;13569:4;;;;13766:52;;13569:4;;;:::i;:::-;13615;;:::i;4418:7:49:-;;;;;;;;;;;;;;;12604:523:42;12686:9;;;;;;;12715:30;12686:9;;;;;:::i;:::-;2180:14244:27;;;;;12715:30:42;11977:22;2180:14244:27;;12760:336:42;;13110:7;:::o;12760:336::-;13037:44;;12866:32;;;:::i;:::-;12943:4;;;;;:::i;:::-;13001:12;;;:::i;12438:106::-;2180:14244:27;;-1:-1:-1;;;12507:26:42;;1317:17:50;;12507:26:42;11973:431;12039:18;;;;;;;;;;12035:190;;3687:36:48;2180:14244:27;3687:36:48;;;;;;:::i;:::-;2180:14244:27;;;5270:21:42;2180:14244:27;;;;;;;;3860:3:48;;2180:14244:27;;338:9:17;;;;;2180:14244:27;;11977:22:42;2180:14244:27;;5446:792:48;2180:14244:27;;;5446:792:48;-1:-1:-1;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;;;;;-1:-1:-1;;;;2180:14244:27;;;;;;;-1:-1:-1;2180:14244:27;;-1:-1:-1;12314:59:42;;-1:-1:-1;2180:14244:27;-1:-1:-1;2180:14244:27;;;;12314:59:42;2180:14244:27;5446:792:48;2180:14244:27;;;5453:16:48;;;;;5489:15;;-1:-1:-1;;;5489:15:48;;;5763:12;;;;5608:186;5763:12;;:::i;:::-;5608:186;;:::i;:::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;6033:86;6099:5;;5485:436;2180:14244:27;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;;5485:436:48;;5453:16;;;;12035:190:42;12122:9;;;;;;;;12155:31;12122:9;;;:::i;:::-;2180:14244:27;;;;12155:31:42;12204:7::o;2180:14244:27:-;;;;;;;;;;;;;:::o;998:459:48:-;1429:19;998:459;2180:14244:27;;1119:19:48;2180:14244:27;11034:22:42;2180:14244:27;;1119:19:48;:::i;:::-;2180:14244:27;;;;;;;-1:-1:-1;2180:14244:27;;;;1149:23:48;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;1200:23:48;2180:14244:27;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;11034:22:42;2180:14244:27;;;11034:22:42;2180:14244:27;;;5270:21:42;2180:14244:27;;;;1429:19:48;;:::i;1587:415::-;2180:14244:27;;11977:22:42;2180:14244:27;;1044:14:50;;1040:61;;2180:14244:27;2137:25:50;2144:17;;;;2137:25;:::i;:::-;2180:14244:27;;;;2224:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;2307:17:50;2180:14244:27;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;2224:17:50;;2180:14244:27;;;;;1841:4:48;;1808:8;;2180:14244:27;1808:8:48;:::i;:::-;2180:14244:27;;11977:22:42;2180:14244:27;;;11977:22:42;2180:14244:27;1841:4:48;:::i;:::-;2180:14244:27;;;;;;;;;;;;;;5270:21:42;2180:14244:27;;;;;;;;5201:1043:48;;;5314:26;1966:17:50;2180:14244:27;11977:22:42;2180:14244:27;;5446:792:48;2180:14244:27;;;5446:792:48;1587:415;;;;;;;;;;;;:::o;5446:792::-;2180:14244:27;;;5453:16:48;;;;;5489:15;;;;;;5763:12;;;5608:186;5763:12;;:::i;5608:186::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;6033:86;6099:5;;5485:436;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;5485:436:48;;5453:16;;;;1040:61:50;2180:14244:27;;-1:-1:-1;;;1081:9:50;;;;;2137:807:48;2266:36;2137:807;2266:36;:::i;:::-;2180:14244:27;;11034:22:42;2180:14244:27;;2377:4:48;;;;;:::i;:::-;2438:8;;;;:::i;:::-;2180:14244:27;;;11034:22:42;2180:14244:27;;;11034:22:42;2180:14244:27;2471:4:48;;;:::i;:::-;2180:14244:27;;;2491:11:48;;;2487:48;;-1:-1:-1;;2180:14244:27;-1:-1:-1;;2180:14244:27;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;;;5270:21:42;2180:14244:27;;;;2736:3:48;2180:14244:27;;;;2736:3:48;;:::i;:::-;2180:14244:27;;;;;;;;;;;;;;;;;;;;2932:3:48;;2180:14244:27;;338:9:17;;;;;2180:14244:27;;11034:22:42;2180:14244:27;;5446:792:48;2180:14244:27;;;2137:807:48;;;;;;;;;;;;:::o;5446:792::-;2180:14244:27;;;5453:16:48;;;;;5489:15;;;;;;5763:12;;;5608:186;5763:12;;:::i;5608:186::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;5485:436;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;5485:436:48;;4002:309;2180:14244:27;9634:21:42;2180:14244:27;;1044:14:50;1040:61;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;-1:-1:-1;2180:14244:27;;;5270:21:42;2180:14244:27;;;;;;;;4002:309:48:o;:::-;2180:14244:27;11977:22:42;2180:14244:27;;1044:14:50;1040:61;;2180:14244:27;;-1:-1:-1;;;;;2180:14244:27;-1:-1:-1;2180:14244:27;;;5270:21:42;2180:14244:27;;;;;;;;4002:309:48:o;4563:632::-;;;;4737:452;4750:1;2180:14244:27;;;;4744:7:48;;;;338:9:17;;;;;-1:-1:-1;;;2180:14244:27;;;;;1966:17:50;2180:14244:27;;5270:21:42;2180:14244:27;;;;;;;;;;;;;;;;;6878:7:48;5017:43;5013:87;;5145:3;;;;:::i;:::-;4737:452;;5013:87;5080:5;;;;4563:632::o;2180:14244:27:-;;;;;;;;;;;;;;:::o;6305:470:48:-;;;;2180:14244:27;-1:-1:-1;2180:14244:27;-1:-1:-1;2180:14244:27;;;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;5270:21:42;2180:14244:27;;;;;;;;;;;1966:17:50;2180:14244:27;;;;;;;;;5270:21:42;2180:14244:27;;;;6878:7:48;;;;6653:85;;6747:21;;;6305:470;:::o;6653:85::-;6706:21;-1:-1:-1;6706:21:48;;-1:-1:-1;6706:21:48:o;924:459:49:-;1355:19;924:459;2180:14244:27;;1045:19:49;2180:14244:27;9634:21:42;2180:14244:27;;1045:19:49;:::i;:::-;2180:14244:27;;;;;;;-1:-1:-1;2180:14244:27;;;;1075:23:49;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;1126:23:49;2180:14244:27;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;;;9634:21:42;2180:14244:27;;;9634:21:42;2180:14244:27;;;5270:21:42;2180:14244:27;;;;1355:19:49;;:::i;1450:415::-;2180:14244:27;;9634:21:42;2180:14244:27;;1044:14:50;;1040:61;;2180:14244:27;2137:25:50;2144:17;;;;2137:25;:::i;:::-;2180:14244:27;;;;2224:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;2307:17:50;2180:14244:27;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;2224:17:50;;2180:14244:27;;;;;1704:4:49;;1671:8;;2180:14244:27;1671:8:49;:::i;:::-;2180:14244:27;;9634:21:42;2180:14244:27;;;9634:21:42;2180:14244:27;1704:4:49;:::i;:::-;2180:14244:27;;;;;;;;;;;;;;5270:21:42;2180:14244:27;;;;;;;;4885:1020:49;;;4998:25;1966:17:50;2180:14244:27;9634:21:42;2180:14244:27;;5107:792:49;2180:14244:27;;;1450:415:49;;;;;;;;;;;;:::o;5107:792::-;2180:14244:27;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;5269:187::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;;5146:437;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;5146:437:49;;1937:807;2066:36;1937:807;2066:36;:::i;:::-;2180:14244:27;;;;12443:21:42;2180:14244:27;;2177:4:49;;;;;:::i;:::-;2238:8;;;;:::i;:::-;2180:14244:27;;;12443:21:42;2180:14244:27;;;12443:21:42;2180:14244:27;2271:4:49;;;:::i;:::-;2180:14244:27;;;2291:11:49;;;2287:48;;-1:-1:-1;2180:14244:27;;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;5270:21:42;2180:14244:27;;;;2536:3:49;2180:14244:27;;;;2536:3:49;;:::i;:::-;2180:14244:27;;;;;;;;;;;;;;;;;;;;2732:3:49;5016:7;2732:3;5016:7;:::i;:::-;2180:14244:27;12443:21:42;2180:14244:27;;5107:792:49;;2180:14244:27;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;5269:187::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;5695:85;5760:5;;;;;;;;;;;;1937:807::o;5146:437::-;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;5146:437:49;;5114:16;;;;;;;;;;;;;;1937:807::o;2287:48::-;2318:7;;;;:::o;4237:642::-;;;;4411:462;4424:1;2180:14244:27;;;;4418:7:49;;;;338:9:17;;;;;-1:-1:-1;;;2180:14244:27;;;;;1966:17:50;2180:14244:27;;5270:21:42;2180:14244:27;;;;;;;;;;;;;;;;;6540:7:49;4702:42;4698:86;;4829:3;;;;:::i;:::-;4411:462;;5967:471;;;2180:14244:27;;-1:-1:-1;2180:14244:27;;;;;1966:17:50;2180:14244:27;;;;;;;;;;;;;;;5270:21:42;2180:14244:27;;;;;;;;;;;1966:17:50;2180:14244:27;;;;;;;;;5270:21:42;2180:14244:27;;;;6540:7:49;;;;6320:33;6316:85;;6410:21;;;5967:471;:::o;1363:226:50:-;-1:-1:-1;;;;;2180:14244:27;-1:-1:-1;2180:14244:27;;;1474:17:50;2180:14244:27;;;;;;;;;1516:8:50;;1512:71;;1363:226::o;1512:71::-;2180:14244:27;;-1:-1:-1;;;1547:25:50;;;;;1363:226;-1:-1:-1;;;;;2180:14244:27;-1:-1:-1;2180:14244:27;;;1474:17:50;2180:14244:27;;;;;;;;;1516:8:50;;1512:71;;1363:226::o;1595:184::-;2180:14244:27;;-1:-1:-1;2180:14244:27;;;1671:17:50;2180:14244:27;;;;;;;;;;-1:-1:-1;;;;;;338:9:17;;2180:14244:27;;;-1:-1:-1;;;;;2180:14244:27;;;1749:17:50;2180:14244:27;;;;;;;-1:-1:-1;;2180:14244:27;;;1595:184:50:o;:::-;2180:14244:27;;-1:-1:-1;2180:14244:27;;;1671:17:50;2180:14244:27;;;;;;;;;;-1:-1:-1;;;;;;338:9:17;;2180:14244:27;;;-1:-1:-1;;;;;2180:14244:27;;;1749:17:50;2180:14244:27;;;;;;;-1:-1:-1;;2180:14244:27;;;1595:184:50:o;2180:14244:27:-;;;;:::o;:::-;;;;;;;;;;;;2057:412:50;2172:25;2180:14244:27;;;9634:21:42;2180:14244:27;;;;2144:17:50;2137:25;2144:17;;;;2137:25;:::i;:::-;2180:14244:27;2179:17:50;;;;2172:25;:::i;:::-;-1:-1:-1;2180:14244:27;;;2224:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;2307:17:50;2180:14244:27;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;2057:412:50:o;:::-;2172:25;2180:14244:27;;;11405:22:42;2180:14244:27;;;;2144:17:50;2137:25;2144:17;;;;2137:25;:::i;2172:::-;-1:-1:-1;2180:14244:27;;;2224:17:50;2180:14244:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2180:14244:27;;;;;;2307:17:50;2180:14244:27;;;;;;;-1:-1:-1;;2180:14244:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2180:14244:27;;;;;;;;;;;;;;;;;;;2057:412:50:o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":13405,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":9480,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8003,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":260,"length":20},{"start":481,"length":20},{"start":671,"length":20},{"start":7825,"length":20},{"start":13010,"length":20}]}}},"methodIdentifiers":{"addCheckpointSignature(uint64,bytes32[],uint256,bytes)":"2a04f220","applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"c62eb4d5","applyFinalityChanges()":"0df14461","commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"f456b39e","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)":"a656ca5b","pruneBottomUpCheckpoints(uint64)":"ae00c298","storeValidatorChanges(((uint8,bytes,address),uint64)[])":"e49a547d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteCheckpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteCheckpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ParentFinalityAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"height\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"checkpoint\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumReached\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"height\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"checkpoint\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumWeightUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addCheckpointSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"applyCrossMessages\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"applyFinalityChanges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"commitBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasCommittedBefore\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"previousFinality\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newRetentionHeight\",\"type\":\"uint64\"}],\"name\":\"pruneBottomUpCheckpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"internalType\":\"struct StakingChange\",\"name\":\"change\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct StakingChangeRequest[]\",\"name\":\"changeRequests\",\"type\":\"tuple[]\"}],\"name\":\"storeValidatorChanges\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"addCheckpointSignature(uint64,bytes32[],uint256,bytes)\":{\"details\":\"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\",\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.\"},\"commitParentFinality((uint256,bytes32))\":{\"params\":{\"finality\":\"- the parent finality\"}},\"createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)\":{\"params\":{\"checkpoint\":\"- a bottom-up checkpoint\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"pruneBottomUpCheckpoints(uint64)\":{\"details\":\"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\",\"params\":{\"newRetentionHeight\":\"- the height of the oldest checkpoint to keep\"}},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"params\":{\"changeRequests\":\"- the validator changes\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCheckpointSignature(uint64,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\"},\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"apply cross messages\"},\"applyFinalityChanges()\":{\"notice\":\"Apply all changes committed through the commitment of parent finality\"},\"commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"submit a verified checkpoint in the gateway to trigger side-effects and apply cross-messages.\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\"},\"createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"pruneBottomUpCheckpoints(uint64)\":{\"notice\":\"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\"},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"notice\":\"Store the validator change requests from parent.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayRouterFacet.sol\":\"GatewayRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x621f557f7efbf2dea28fd02760da9b83033f7f922b2bfffa9e448d61c496b1bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d96133de65e87499791c3e24a592908ca2c7e8000893dd84dd95271dbda3cb72\",\"dweb:/ipfs/QmYhTkAJnydVLEnH2KnqKXNfYUiGamuac8Gi3JddqSBT2S\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e\",\"dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x002287b88a61e04e89ce6aebd47858c2e4a366615f5b880f445987ead7633b49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://80426a9802c6e825a93d05671e8f03c640d91e386ab8555efe69c02e22cda269\",\"dweb:/ipfs/QmcVMK9PUeTZRmm1k56regE5PGXrKDgg5XrtrgPH72qhTR\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CheckpointAlreadyExists"},{"inputs":[],"type":"error","name":"CheckpointAlreadyProcessed"},{"inputs":[],"type":"error","name":"CheckpointNotCreated"},{"inputs":[],"type":"error","name":"FailedAddIncompleteCheckpoint"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteCheckpoint"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointSource"},{"inputs":[],"type":"error","name":"InvalidConfigurationNumber"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSubnet"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughSubnetCircSupply"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ParentFinalityAlreadyCommitted"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotActive"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64","indexed":false},{"internalType":"bytes32","name":"checkpoint","type":"bytes32","indexed":false},{"internalType":"uint256","name":"quorumWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumReached","anonymous":false},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64","indexed":false},{"internalType":"bytes32","name":"checkpoint","type":"bytes32","indexed":false},{"internalType":"uint256","name":"newWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumWeightUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addCheckpointSignature"},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"applyCrossMessages"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"applyFinalityChanges","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"commitBottomUpCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality","outputs":[{"internalType":"bool","name":"hasCommittedBefore","type":"bool"},{"internalType":"struct ParentFinality","name":"previousFinality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"uint64","name":"newRetentionHeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpCheckpoints"},{"inputs":[{"internalType":"struct StakingChangeRequest[]","name":"changeRequests","type":"tuple[]","components":[{"internalType":"struct StakingChange","name":"change","type":"tuple","components":[{"internalType":"enum StakingOperation","name":"op","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"validator","type":"address"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"storeValidatorChanges"}],"devdoc":{"kind":"dev","methods":{"addCheckpointSignature(uint64,bytes32[],uint256,bytes)":{"details":"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`","params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid."},"commitParentFinality((uint256,bytes32))":{"params":{"finality":"- the parent finality"}},"createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)":{"params":{"checkpoint":"- a bottom-up checkpoint","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"pruneBottomUpCheckpoints(uint64)":{"details":"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.","params":{"newRetentionHeight":"- the height of the oldest checkpoint to keep"}},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"params":{"changeRequests":"- the validator changes"}}},"version":1},"userdoc":{"kind":"user","methods":{"addCheckpointSignature(uint64,bytes32[],uint256,bytes)":{"notice":"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it"},"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"apply cross messages"},"applyFinalityChanges()":{"notice":"Apply all changes committed through the commitment of parent finality"},"commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"submit a verified checkpoint in the gateway to trigger side-effects and apply cross-messages."},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash."},"createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"pruneBottomUpCheckpoints(uint64)":{"notice":"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)"},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"notice":"Store the validator change requests from parent."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayRouterFacet.sol":"GatewayRouterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x621f557f7efbf2dea28fd02760da9b83033f7f922b2bfffa9e448d61c496b1bc","urls":["bzz-raw://d96133de65e87499791c3e24a592908ca2c7e8000893dd84dd95271dbda3cb72","dweb:/ipfs/QmYhTkAJnydVLEnH2KnqKXNfYUiGamuac8Gi3JddqSBT2S"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710","urls":["bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e","dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0x002287b88a61e04e89ce6aebd47858c2e4a366615f5b880f445987ead7633b49","urls":["bzz-raw://80426a9802c6e825a93d05671e8f03c640d91e386ab8555efe69c02e22cda269","dweb:/ipfs/QmcVMK9PUeTZRmm1k56regE5PGXrKDgg5XrtrgPH72qhTR"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayRouterFacet.sol","id":8650,"exportedSymbols":{"Address":[1625],"BottomUpCheckpoint":[16133],"CheckpointAlreadyExists":[6061],"CheckpointAlreadyProcessed":[6063],"CheckpointInfo":[16149],"CheckpointInfoAlreadyExists":[6065],"CheckpointNotCreated":[6067],"CrossMsg":[16155],"CrossMsgHelper":[9299],"ECDSA":[2312],"EMPTY_HASH":[5541],"EnumerableSet":[4602],"FailedAddIncompleteCheckpoint":[6073],"FailedAddSignatory":[6075],"FailedRemoveIncompleteCheckpoint":[6077],"FilAddress":[298],"FvmAddress":[16179],"FvmAddressHelper":[9480],"GatewayActorModifiers":[11226],"GatewayRouterFacet":[8649],"IPCMsgType":[6038],"ISubnetActor":[8919],"InvalidCheckpointEpoch":[6083],"InvalidCheckpointSource":[6087],"InvalidCrossMsgDstSubnet":[6093],"InvalidCrossMsgNonce":[6097],"InvalidRetentionHeight":[6105],"InvalidSignature":[6107],"InvalidSubnet":[6119],"LibGateway":[11023],"LibValidatorSet":[12589],"LibValidatorTracking":[13521],"METHOD_SEND":[5556],"Membership":[16341],"MerkleProof":[2847],"NotAuthorized":[6131],"NotEnoughBalance":[6135],"NotEnoughSubnetCircSupply":[6147],"NotRegisteredSubnet":[6155],"ParentFinality":[16116],"ParentValidatorsTracker":[16320],"SignatureReplay":[6175],"StakingChangeRequest":[16244],"Status":[6047],"StorableMsg":[16172],"StorableMsgHelper":[14019],"Subnet":[16226],"SubnetID":[16209],"SubnetIDHelper":[14630],"SubnetNotActive":[6179],"SubnetNotFound":[6181],"Validator":[16334],"ValidatorInfo":[16292],"ValidatorSet":[16313],"ZeroMembershipWeight":[6185]},"nodeType":"SourceUnit","src":"46:16379:27","nodes":[{"id":7594,"nodeType":"PragmaDirective","src":"46:23:27","nodes":[],"literals":["solidity","0.8",".19"]},{"id":7596,"nodeType":"ImportDirective","src":"71:60:27","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":8920,"symbolAliases":[{"foreign":{"id":7595,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"79:12:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7598,"nodeType":"ImportDirective","src":"132:72:27","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":7597,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11226,"src":"140:21:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7601,"nodeType":"ImportDirective","src":"205:67:27","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":5557,"symbolAliases":[{"foreign":{"id":7599,"name":"EMPTY_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5541,"src":"213:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7600,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"225:11:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7607,"nodeType":"ImportDirective","src":"273:116:27","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":7602,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"281:8:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7603,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"291:11:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7604,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"304:14:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7605,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"320:18:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7606,"name":"CheckpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16149,"src":"340:14:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7609,"nodeType":"ImportDirective","src":"390:43:27","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../enums/Status.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":6048,"symbolAliases":[{"foreign":{"id":7608,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"398:6:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7611,"nodeType":"ImportDirective","src":"434:51:27","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":6039,"symbolAliases":[{"foreign":{"id":7610,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"442:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7617,"nodeType":"ImportDirective","src":"486:95:27","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":7612,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"494:8:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7613,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16226,"src":"504:6:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7614,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"512:9:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7615,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16292,"src":"523:13:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7616,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"538:12:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7619,"nodeType":"ImportDirective","src":"582:51:27","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":6039,"symbolAliases":[{"foreign":{"id":7618,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"590:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7621,"nodeType":"ImportDirective","src":"634:49:27","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":7620,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"642:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7629,"nodeType":"ImportDirective","src":"684:198:27","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":7622,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6147,"src":"692:25:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7623,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6083,"src":"719:22:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7624,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6107,"src":"743:16:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7625,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6131,"src":"761:13:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7626,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"776:15:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7627,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6105,"src":"793:22:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7628,"name":"FailedRemoveIncompleteCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"817:32:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7638,"nodeType":"ImportDirective","src":"883:245:27","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":7630,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6087,"src":"891:23:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7631,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"916:20:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7632,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"938:24:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7633,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6061,"src":"964:23:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7634,"name":"CheckpointInfoAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"989:27:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7635,"name":"CheckpointAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6063,"src":"1018:26:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7636,"name":"FailedAddIncompleteCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"1046:29:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7637,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"1077:18:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7646,"nodeType":"ImportDirective","src":"1129:170:27","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":7639,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"1137:16:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7640,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"1155:19:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7641,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6179,"src":"1176:15:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7642,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6181,"src":"1193:14:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7643,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6119,"src":"1209:13:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7644,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"1224:20:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7645,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6185,"src":"1246:20:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7648,"nodeType":"ImportDirective","src":"1300:57:27","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":7647,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"1308:14:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7650,"nodeType":"ImportDirective","src":"1358:57:27","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":9300,"symbolAliases":[{"foreign":{"id":7649,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"1366:14:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7652,"nodeType":"ImportDirective","src":"1416:49:27","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":11024,"symbolAliases":[{"foreign":{"id":7651,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"1424:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7654,"nodeType":"ImportDirective","src":"1466:63:27","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":14020,"symbolAliases":[{"foreign":{"id":7653,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14019,"src":"1474:17:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7656,"nodeType":"ImportDirective","src":"1530:53:27","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":7655,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"1538:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7658,"nodeType":"ImportDirective","src":"1584:61:27","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":9481,"symbolAliases":[{"foreign":{"id":7657,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"1592:16:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7660,"nodeType":"ImportDirective","src":"1646:56:27","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":7659,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"1654:10:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7662,"nodeType":"ImportDirective","src":"1703:74:27","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":2313,"symbolAliases":[{"foreign":{"id":7661,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"1711:5:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7664,"nodeType":"ImportDirective","src":"1778:86:27","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","file":"openzeppelin-contracts/utils/cryptography/MerkleProof.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":2848,"symbolAliases":[{"foreign":{"id":7663,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2847,"src":"1786:11:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7666,"nodeType":"ImportDirective","src":"1865:85:27","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":7665,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"1873:13:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7669,"nodeType":"ImportDirective","src":"1951:84:27","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":7667,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"1959:20:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7668,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"1981:23:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7672,"nodeType":"ImportDirective","src":"2036:76:27","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":7670,"name":"LibValidatorTracking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13521,"src":"2044:20:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7671,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"2066:15:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7674,"nodeType":"ImportDirective","src":"2113:65:27","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":8650,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":7673,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"2121:7:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8649,"nodeType":"ContractDefinition","src":"2180:14244:27","nodes":[{"id":7679,"nodeType":"UsingForDirective","src":"2239:29:27","nodes":[],"global":false,"libraryName":{"id":7677,"name":"FilAddress","nameLocations":["2245:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"2245:10:27"},"typeName":{"id":7678,"name":"address","nodeType":"ElementaryTypeName","src":"2260:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":7683,"nodeType":"UsingForDirective","src":"2273:34:27","nodes":[],"global":false,"libraryName":{"id":7680,"name":"SubnetIDHelper","nameLocations":["2279:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"2279:14:27"},"typeName":{"id":7682,"nodeType":"UserDefinedTypeName","pathNode":{"id":7681,"name":"SubnetID","nameLocations":["2298:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2298:8:27"},"referencedDeclaration":16209,"src":"2298:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":7687,"nodeType":"UsingForDirective","src":"2312:34:27","nodes":[],"global":false,"libraryName":{"id":7684,"name":"CrossMsgHelper","nameLocations":["2318:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":9299,"src":"2318:14:27"},"typeName":{"id":7686,"nodeType":"UserDefinedTypeName","pathNode":{"id":7685,"name":"CrossMsg","nameLocations":["2337:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2337:8:27"},"referencedDeclaration":16155,"src":"2337:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}}},{"id":7691,"nodeType":"UsingForDirective","src":"2351:40:27","nodes":[],"global":false,"libraryName":{"id":7688,"name":"StorableMsgHelper","nameLocations":["2357:17:27"],"nodeType":"IdentifierPath","referencedDeclaration":14019,"src":"2357:17:27"},"typeName":{"id":7690,"nodeType":"UserDefinedTypeName","pathNode":{"id":7689,"name":"StorableMsg","nameLocations":["2379:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":16172,"src":"2379:11:27"},"referencedDeclaration":16172,"src":"2379:11:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"}}},{"id":7695,"nodeType":"UsingForDirective","src":"2396:46:27","nodes":[],"global":false,"libraryName":{"id":7692,"name":"EnumerableSet","nameLocations":["2402:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":4602,"src":"2402:13:27"},"typeName":{"id":7694,"nodeType":"UserDefinedTypeName","pathNode":{"id":7693,"name":"EnumerableSet.UintSet","nameLocations":["2420:13:27","2434:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"2420:21:27"},"referencedDeclaration":4472,"src":"2420:21:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":7699,"nodeType":"UsingForDirective","src":"2447:49:27","nodes":[],"global":false,"libraryName":{"id":7696,"name":"EnumerableSet","nameLocations":["2453:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":4602,"src":"2453:13:27"},"typeName":{"id":7698,"nodeType":"UserDefinedTypeName","pathNode":{"id":7697,"name":"EnumerableSet.AddressSet","nameLocations":["2471:13:27","2485:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"2471:24:27"},"referencedDeclaration":4315,"src":"2471:24:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":7703,"nodeType":"UsingForDirective","src":"2501:55:27","nodes":[],"global":false,"libraryName":{"id":7700,"name":"LibValidatorTracking","nameLocations":["2507:20:27"],"nodeType":"IdentifierPath","referencedDeclaration":13521,"src":"2507:20:27"},"typeName":{"id":7702,"nodeType":"UserDefinedTypeName","pathNode":{"id":7701,"name":"ParentValidatorsTracker","nameLocations":["2532:23:27"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"2532:23:27"},"referencedDeclaration":16320,"src":"2532:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}}},{"id":7707,"nodeType":"UsingForDirective","src":"2561:39:27","nodes":[],"global":false,"libraryName":{"id":7704,"name":"LibValidatorSet","nameLocations":["2567:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"2567:15:27"},"typeName":{"id":7706,"nodeType":"UserDefinedTypeName","pathNode":{"id":7705,"name":"ValidatorSet","nameLocations":["2587:12:27"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"2587:12:27"},"referencedDeclaration":16313,"src":"2587:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":7715,"nodeType":"EventDefinition","src":"2606:77:27","nodes":[],"anonymous":false,"eventSelector":"6e19758a6cc7e71b17c341543844325f2a6ad8294af979c7b386fc4d3814e934","name":"QuorumReached","nameLocation":"2612:13:27","parameters":{"id":7714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7709,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"2633:6:27","nodeType":"VariableDeclaration","scope":7715,"src":"2626:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":7708,"name":"uint64","nodeType":"ElementaryTypeName","src":"2626:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":7711,"indexed":false,"mutability":"mutable","name":"checkpoint","nameLocation":"2649:10:27","nodeType":"VariableDeclaration","scope":7715,"src":"2641:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2641:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7713,"indexed":false,"mutability":"mutable","name":"quorumWeight","nameLocation":"2669:12:27","nodeType":"VariableDeclaration","scope":7715,"src":"2661:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2661:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2625:57:27"}},{"id":7723,"nodeType":"EventDefinition","src":"2688:80:27","nodes":[],"anonymous":false,"eventSelector":"24836090f2da17128f839618852e98c2586a5693517e15f15497223bd26c6045","name":"QuorumWeightUpdated","nameLocation":"2694:19:27","parameters":{"id":7722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7717,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"2721:6:27","nodeType":"VariableDeclaration","scope":7723,"src":"2714:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":7716,"name":"uint64","nodeType":"ElementaryTypeName","src":"2714:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":7719,"indexed":false,"mutability":"mutable","name":"checkpoint","nameLocation":"2737:10:27","nodeType":"VariableDeclaration","scope":7723,"src":"2729:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2729:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7721,"indexed":false,"mutability":"mutable","name":"newWeight","nameLocation":"2757:9:27","nodeType":"VariableDeclaration","scope":7723,"src":"2749:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2713:54:27"}},{"id":7870,"nodeType":"FunctionDefinition","src":"3035:1623:27","nodes":[],"body":{"id":7869,"nodeType":"Block","src":"3148:1510:27","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":7734,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"3220:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3231:8:27","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"3220:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":7736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3240:8:27","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":14323,"src":"3220:28:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":7737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7738,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3254:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:6:27","memberName":"sender","nodeType":"MemberAccess","src":"3254:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3220:44:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7745,"nodeType":"IfStatement","src":"3216:107:27","trueBody":{"id":7744,"nodeType":"Block","src":"3266:57:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7741,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6087,"src":"3287:23:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7743,"nodeType":"RevertStatement","src":"3280:32:27"}]}},{"assignments":[7747,7750],"declarations":[{"constant":false,"id":7747,"mutability":"mutable","name":"subnetExists","nameLocation":"3338:12:27","nodeType":"VariableDeclaration","scope":7869,"src":"3333:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7746,"name":"bool","nodeType":"ElementaryTypeName","src":"3333:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7750,"mutability":"mutable","name":"subnet","nameLocation":"3367:6:27","nodeType":"VariableDeclaration","scope":7869,"src":"3352:21:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":7749,"nodeType":"UserDefinedTypeName","pathNode":{"id":7748,"name":"Subnet","nameLocations":["3352:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"3352:6:27"},"referencedDeclaration":16226,"src":"3352:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":7756,"initialValue":{"arguments":[{"expression":{"id":7753,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3398:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:6:27","memberName":"sender","nodeType":"MemberAccess","src":"3398:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7751,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"3377:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3388:9:27","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10943,"src":"3377:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":7755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3377:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3332:77:27"},{"condition":{"id":7758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3423:13:27","subExpression":{"id":7757,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"3424:12:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7763,"nodeType":"IfStatement","src":"3419:67:27","trueBody":{"id":7762,"nodeType":"Block","src":"3438:48:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7759,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6181,"src":"3459:14:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:16:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7761,"nodeType":"RevertStatement","src":"3452:23:27"}]}},{"condition":{"id":7770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3499:38:27","subExpression":{"arguments":[{"expression":{"id":7767,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3527:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3534:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":16225,"src":"3527:9:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":7764,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"3500:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3511:8:27","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"3500:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":7766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3520:6:27","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14383,"src":"3500:26:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":7769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3500:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7775,"nodeType":"IfStatement","src":"3495:91:27","trueBody":{"id":7774,"nodeType":"Block","src":"3539:47:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7771,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6119,"src":"3560:13:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3560:15:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7773,"nodeType":"RevertStatement","src":"3553:22:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"},"id":7780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7776,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3599:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3606:6:27","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16222,"src":"3599:13:27","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7778,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"3616:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$6047_$","typeString":"type(enum Status)"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3623:6:27","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":6042,"src":"3616:13:27","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"src":"3599:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7785,"nodeType":"IfStatement","src":"3595:85:27","trueBody":{"id":7784,"nodeType":"Block","src":"3631:49:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7781,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6179,"src":"3652:15:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7783,"nodeType":"RevertStatement","src":"3645:24:27"}]}},{"assignments":[7787],"declarations":[{"constant":false,"id":7787,"mutability":"mutable","name":"totalValue","nameLocation":"3698:10:27","nodeType":"VariableDeclaration","scope":7869,"src":"3690:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7786,"name":"uint256","nodeType":"ElementaryTypeName","src":"3690:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7788,"nodeType":"VariableDeclarationStatement","src":"3690:18:27"},{"assignments":[7790],"declarations":[{"constant":false,"id":7790,"mutability":"mutable","name":"totalFee","nameLocation":"3726:8:27","nodeType":"VariableDeclaration","scope":7869,"src":"3718:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7789,"name":"uint256","nodeType":"ElementaryTypeName","src":"3718:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7791,"nodeType":"VariableDeclarationStatement","src":"3718:16:27"},{"assignments":[7793],"declarations":[{"constant":false,"id":7793,"mutability":"mutable","name":"crossMsgLength","nameLocation":"3752:14:27","nodeType":"VariableDeclaration","scope":7869,"src":"3744:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7792,"name":"uint256","nodeType":"ElementaryTypeName","src":"3744:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7796,"initialValue":{"expression":{"id":7794,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7731,"src":"3769:8:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3778:6:27","memberName":"length","nodeType":"MemberAccess","src":"3769:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3744:40:27"},{"body":{"id":7823,"nodeType":"Block","src":"3832:172:27","statements":[{"expression":{"id":7809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7803,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7787,"src":"3846:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"id":7804,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7731,"src":"3860:8:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":7806,"indexExpression":{"id":7805,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3869:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3860:11:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3872:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3860:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3880:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"3860:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3846:39:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7810,"nodeType":"ExpressionStatement","src":"3846:39:27"},{"expression":{"id":7817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7811,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"3899:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"id":7812,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7731,"src":"3911:8:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":7814,"indexExpression":{"id":7813,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3920:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3911:11:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":7815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"3911:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":7816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:3:27","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":16171,"src":"3911:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3899:35:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7818,"nodeType":"ExpressionStatement","src":"3899:35:27"},{"id":7822,"nodeType":"UncheckedBlock","src":"3948:46:27","statements":[{"expression":{"id":7820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3976:3:27","subExpression":{"id":7819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3978:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7821,"nodeType":"ExpressionStatement","src":"3976:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7800,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3810:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7801,"name":"crossMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"3814:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3810:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7824,"initializationExpression":{"assignments":[7798],"declarations":[{"constant":false,"id":7798,"mutability":"mutable","name":"i","nameLocation":"3807:1:27","nodeType":"VariableDeclaration","scope":7824,"src":"3799:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7797,"name":"uint256","nodeType":"ElementaryTypeName","src":"3799:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7799,"nodeType":"VariableDeclarationStatement","src":"3799:9:27"},"nodeType":"ForStatement","src":"3794:210:27"},{"assignments":[7826],"declarations":[{"constant":false,"id":7826,"mutability":"mutable","name":"totalAmount","nameLocation":"4022:11:27","nodeType":"VariableDeclaration","scope":7869,"src":"4014:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7825,"name":"uint256","nodeType":"ElementaryTypeName","src":"4014:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7830,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7827,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"4036:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7828,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7787,"src":"4047:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4036:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4014:43:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7831,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"4072:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4079:10:27","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":16215,"src":"4072:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7833,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7826,"src":"4092:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4072:31:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7839,"nodeType":"IfStatement","src":"4068:96:27","trueBody":{"id":7838,"nodeType":"Block","src":"4105:59:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7835,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6147,"src":"4126:25:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4126:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7837,"nodeType":"RevertStatement","src":"4119:34:27"}]}},{"expression":{"id":7844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7840,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"4174:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":7842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4181:10:27","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":16215,"src":"4174:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":7843,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7826,"src":"4195:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4174:32:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7845,"nodeType":"ExpressionStatement","src":"4174:32:27"},{"expression":{"arguments":[{"expression":{"id":7847,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"4266:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:8:27","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"4266:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},{"id":7849,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7731,"src":"4287:8:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"id":7846,"name":"_applyMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"4251:14:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$16209_memory_ptr_$_t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4251:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7851,"nodeType":"ExpressionStatement","src":"4251:45:27"},{"expression":{"arguments":[{"expression":{"id":7855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4490:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4494:6:27","memberName":"sender","nodeType":"MemberAccess","src":"4490:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":7859,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"4535:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$8919_$","typeString":"type(contract ISubnetActor)"}},"id":7860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4548:26:27","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":8918,"src":"4535:39:27","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint64_$_t_uint256_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint64,uint256) payable"}},{"components":[{"expression":{"id":7861,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"4577:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":7862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4588:11:27","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"4577:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":7863,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"4601:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7864,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4576:34:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint256_$","typeString":"tuple(uint64,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint64_$_t_uint256_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint64,uint256) payable"},{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint256_$","typeString":"tuple(uint64,uint256)"}],"expression":{"id":7857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4520:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4524:10:27","memberName":"encodeCall","nodeType":"MemberAccess","src":"4520:14:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:91:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7866,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"4632:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7852,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"4438:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1625_$","typeString":"type(library Address)"}},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4446:21:27","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":1357,"src":"4438:29:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4482:6:27","4514:4:27","4625:5:27"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"4438:213:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7868,"nodeType":"ExpressionStatement","src":"4438:213:27"}]},"documentation":{"id":7724,"nodeType":"StructuredDocumentation","src":"2774:256:27","text":"@notice submit a verified checkpoint in the gateway to trigger side-effects and apply cross-messages.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the checkpoint is cryptographically valid."},"functionSelector":"f456b39e","implemented":true,"kind":"function","modifiers":[],"name":"commitBottomUpCheckpoint","nameLocation":"3044:24:27","parameters":{"id":7732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7727,"mutability":"mutable","name":"checkpoint","nameLocation":"3097:10:27","nodeType":"VariableDeclaration","scope":7870,"src":"3069:38:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":7726,"nodeType":"UserDefinedTypeName","pathNode":{"id":7725,"name":"BottomUpCheckpoint","nameLocations":["3069:18:27"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"3069:18:27"},"referencedDeclaration":16133,"src":"3069:18:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":7731,"mutability":"mutable","name":"messages","nameLocation":"3129:8:27","nodeType":"VariableDeclaration","scope":7870,"src":"3109:28:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":7729,"nodeType":"UserDefinedTypeName","pathNode":{"id":7728,"name":"CrossMsg","nameLocations":["3109:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"3109:8:27"},"referencedDeclaration":16155,"src":"3109:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":7730,"nodeType":"ArrayTypeName","src":"3109:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"3068:70:27"},"returnParameters":{"id":7733,"nodeType":"ParameterList","parameters":[],"src":"3148:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":7899,"nodeType":"FunctionDefinition","src":"5036:313:27","nodes":[],"body":{"id":7898,"nodeType":"Block","src":"5213:136:27","nodes":[],"statements":[{"expression":{"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7884,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"5223:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7887,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5274:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality calldata"}],"expression":{"id":7885,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"5242:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":7886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5253:20:27","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":10510,"src":"5242:31:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentFinality_$16116_calldata_ptr_$returns$_t_struct$_ParentFinality_$16116_memory_ptr_$","typeString":"function (struct ParentFinality calldata) returns (struct ParentFinality memory)"}},"id":7888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5242:41:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"src":"5223:60:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"id":7890,"nodeType":"ExpressionStatement","src":"5223:60:27"},{"expression":{"id":7896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7891,"name":"hasCommittedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7879,"src":"5293:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7892,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"5314:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"id":7893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:6:27","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":16113,"src":"5314:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5341:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5314:28:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5293:49:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7897,"nodeType":"ExpressionStatement","src":"5293:49:27"}]},"documentation":{"id":7871,"nodeType":"StructuredDocumentation","src":"4664:367:27","text":"@notice commit the ipc parent finality into storage and returns the previous committed finality\n This is useful to understand if the finalities are consistent or if there have been reorgs.\n If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\n @param finality - the parent finality"},"functionSelector":"11196974","implemented":true,"kind":"function","modifiers":[{"id":7877,"kind":"modifierInvocation","modifierName":{"id":7876,"name":"systemActorOnly","nameLocations":["5123:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":11215,"src":"5123:15:27"},"nodeType":"ModifierInvocation","src":"5123:15:27"}],"name":"commitParentFinality","nameLocation":"5045:20:27","parameters":{"id":7875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7874,"mutability":"mutable","name":"finality","nameLocation":"5099:8:27","nodeType":"VariableDeclaration","scope":7899,"src":"5075:32:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":7873,"nodeType":"UserDefinedTypeName","pathNode":{"id":7872,"name":"ParentFinality","nameLocations":["5075:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"5075:14:27"},"referencedDeclaration":16116,"src":"5075:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5065:48:27"},"returnParameters":{"id":7883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7879,"mutability":"mutable","name":"hasCommittedBefore","nameLocation":"5153:18:27","nodeType":"VariableDeclaration","scope":7899,"src":"5148:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7878,"name":"bool","nodeType":"ElementaryTypeName","src":"5148:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7882,"mutability":"mutable","name":"previousFinality","nameLocation":"5195:16:27","nodeType":"VariableDeclaration","scope":7899,"src":"5173:38:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":7881,"nodeType":"UserDefinedTypeName","pathNode":{"id":7880,"name":"ParentFinality","nameLocations":["5173:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"5173:14:27"},"referencedDeclaration":16116,"src":"5173:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5147:65:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":7918,"nodeType":"FunctionDefinition","src":"5474:173:27","nodes":[],"body":{"id":7917,"nodeType":"Block","src":"5578:69:27","nodes":[],"statements":[{"expression":{"arguments":[{"id":7914,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7904,"src":"5625:14:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}],"expression":{"expression":{"id":7909,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"5588:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5590:17:27","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"5588:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":7913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5608:16:27","memberName":"batchStoreChange","nodeType":"MemberAccess","referencedDeclaration":13384,"src":"5588:36:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata[] calldata)"}},"id":7915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5588:52:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7916,"nodeType":"ExpressionStatement","src":"5588:52:27"}]},"documentation":{"id":7900,"nodeType":"StructuredDocumentation","src":"5355:114:27","text":"@notice Store the validator change requests from parent.\n @param changeRequests - the validator changes"},"functionSelector":"e49a547d","implemented":true,"kind":"function","modifiers":[{"id":7907,"kind":"modifierInvocation","modifierName":{"id":7906,"name":"systemActorOnly","nameLocations":["5562:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":11215,"src":"5562:15:27"},"nodeType":"ModifierInvocation","src":"5562:15:27"}],"name":"storeValidatorChanges","nameLocation":"5483:21:27","parameters":{"id":7905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7904,"mutability":"mutable","name":"changeRequests","nameLocation":"5537:14:27","nodeType":"VariableDeclaration","scope":7918,"src":"5505:46:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":7902,"nodeType":"UserDefinedTypeName","pathNode":{"id":7901,"name":"StakingChangeRequest","nameLocations":["5505:20:27"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"5505:20:27"},"referencedDeclaration":16244,"src":"5505:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":7903,"nodeType":"ArrayTypeName","src":"5505:22:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"5504:48:27"},"returnParameters":{"id":7908,"nodeType":"ParameterList","parameters":[],"src":"5578:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8036,"nodeType":"FunctionDefinition","src":"5739:1485:27","nodes":[],"body":{"id":8035,"nodeType":"Block","src":"5813:1411:27","nodes":[],"statements":[{"assignments":[7927],"declarations":[{"constant":false,"id":7927,"mutability":"mutable","name":"configurationNumber","nameLocation":"5896:19:27","nodeType":"VariableDeclaration","scope":8035,"src":"5889:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":7926,"name":"uint64","nodeType":"ElementaryTypeName","src":"5889:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":7934,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":7928,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"5918:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5920:17:27","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"5918:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":7930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5938:7:27","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"5918:27:27","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":7931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5946:23:27","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"5918:51:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5972:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5918:55:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"5889:84:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":7943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":7937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7935,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"6171:19:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6193:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6171:23:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":7938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6170:25:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"expression":{"id":7939,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"6199:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6201:17:27","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"6199:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":7941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6219:7:27","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"6199:27:27","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":7942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6227:24:27","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"6199:52:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6170:81:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7947,"nodeType":"IfStatement","src":"6080:264:27","trueBody":{"id":7946,"nodeType":"Block","src":"6262:82:27","statements":[{"expression":{"hexValue":"30","id":7944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6332:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":7925,"id":7945,"nodeType":"Return","src":"6325:8:27"}]}},{"expression":{"arguments":[{"id":7953,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"6417:19:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":7948,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"6383:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6385:17:27","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"6383:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":7952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6403:13:27","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":13520,"src":"6383:33:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,uint64)"}},"id":7954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6383:54:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7955,"nodeType":"ExpressionStatement","src":"6383:54:27"},{"assignments":[7960],"declarations":[{"constant":false,"id":7960,"mutability":"mutable","name":"validators","nameLocation":"6502:10:27","nodeType":"VariableDeclaration","scope":8035,"src":"6485:27:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7958,"name":"address","nodeType":"ElementaryTypeName","src":"6485:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7959,"nodeType":"ArrayTypeName","src":"6485:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":7966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":7961,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"6515:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":7962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6517:17:27","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"6515:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":7963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6535:10:27","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"6515:30:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":7964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6546:20:27","memberName":"listActiveValidators","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"6515:51:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (address[] memory)"}},"id":7965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6515:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6485:83:27"},{"assignments":[7968],"declarations":[{"constant":false,"id":7968,"mutability":"mutable","name":"vLength","nameLocation":"6586:7:27","nodeType":"VariableDeclaration","scope":8035,"src":"6578:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7967,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7971,"initialValue":{"expression":{"id":7969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"6596:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6607:6:27","memberName":"length","nodeType":"MemberAccess","src":"6596:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6578:35:27"},{"assignments":[7976],"declarations":[{"constant":false,"id":7976,"mutability":"mutable","name":"vs","nameLocation":"6642:2:27","nodeType":"VariableDeclaration","scope":8035,"src":"6623:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":7974,"nodeType":"UserDefinedTypeName","pathNode":{"id":7973,"name":"Validator","nameLocations":["6623:9:27"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"6623:9:27"},"referencedDeclaration":16334,"src":"6623:9:27","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":7975,"nodeType":"ArrayTypeName","src":"6623:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"id":7983,"initialValue":{"arguments":[{"id":7981,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7968,"src":"6663:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6647:15:27","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":7978,"nodeType":"UserDefinedTypeName","pathNode":{"id":7977,"name":"Validator","nameLocations":["6651:9:27"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"6651:9:27"},"referencedDeclaration":16334,"src":"6651:9:27","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":7979,"nodeType":"ArrayTypeName","src":"6651:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":7982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6647:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6623:48:27"},{"body":{"id":8022,"nodeType":"Block","src":"6712:306:27","statements":[{"assignments":[7991],"declarations":[{"constant":false,"id":7991,"mutability":"mutable","name":"addr","nameLocation":"6734:4:27","nodeType":"VariableDeclaration","scope":8022,"src":"6726:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7990,"name":"address","nodeType":"ElementaryTypeName","src":"6726:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7995,"initialValue":{"baseExpression":{"id":7992,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"6741:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7994,"indexExpression":{"id":7993,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"6752:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6741:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6726:28:27"},{"assignments":[7998],"declarations":[{"constant":false,"id":7998,"mutability":"mutable","name":"info","nameLocation":"6790:4:27","nodeType":"VariableDeclaration","scope":8022,"src":"6768:26:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":7997,"nodeType":"UserDefinedTypeName","pathNode":{"id":7996,"name":"ValidatorInfo","nameLocations":["6768:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":16292,"src":"6768:13:27"},"referencedDeclaration":16292,"src":"6768:13:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"id":8005,"initialValue":{"baseExpression":{"expression":{"expression":{"expression":{"id":7999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"6797:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6799:17:27","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":11146,"src":"6797:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":8001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6817:10:27","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"6797:30:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":8002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6828:10:27","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"6797:41:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":8004,"indexExpression":{"id":8003,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7991,"src":"6839:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6797:47:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6768:76:27"},{"expression":{"id":8016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8006,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"6858:2:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":8008,"indexExpression":{"id":8007,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"6861:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6858:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":8010,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7998,"src":"6885:4:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":8011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6890:19:27","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"6885:24:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8012,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7991,"src":"6917:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8013,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7998,"src":"6933:4:27","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":8014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6938:8:27","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"6933:13:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":8009,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"6866:9:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$16334_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":8015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6877:6:27","6911:4:27","6923:8:27"],"names":["weight","addr","metadata"],"nodeType":"FunctionCall","src":"6866:82:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"src":"6858:90:27","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"id":8017,"nodeType":"ExpressionStatement","src":"6858:90:27"},{"id":8021,"nodeType":"UncheckedBlock","src":"6962:46:27","statements":[{"expression":{"id":8019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6990:3:27","subExpression":{"id":8018,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"6992:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8020,"nodeType":"ExpressionStatement","src":"6990:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7987,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"6697:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7988,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7968,"src":"6701:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6697:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8023,"initializationExpression":{"assignments":[7985],"declarations":[{"constant":false,"id":7985,"mutability":"mutable","name":"i","nameLocation":"6694:1:27","nodeType":"VariableDeclaration","scope":8023,"src":"6686:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7984,"name":"uint256","nodeType":"ElementaryTypeName","src":"6686:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7986,"nodeType":"VariableDeclarationStatement","src":"6686:9:27"},"nodeType":"ForStatement","src":"6681:337:27"},{"expression":{"arguments":[{"arguments":[{"id":8028,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"7143:19:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":8029,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"7176:2:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":8027,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"7110:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$16341_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":8030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7122:19:27","7164:10:27"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"7110:70:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":8024,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"7082:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":8026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7093:16:27","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":10664,"src":"7082:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$16341_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":8031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7082:99:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8032,"nodeType":"ExpressionStatement","src":"7082:99:27"},{"expression":{"id":8033,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"7198:19:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":7925,"id":8034,"nodeType":"Return","src":"7191:26:27"}]},"documentation":{"id":7919,"nodeType":"StructuredDocumentation","src":"5653:81:27","text":"@notice Apply all changes committed through the commitment of parent finality"},"functionSelector":"0df14461","implemented":true,"kind":"function","modifiers":[{"id":7922,"kind":"modifierInvocation","modifierName":{"id":7921,"name":"systemActorOnly","nameLocations":["5780:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":11215,"src":"5780:15:27"},"nodeType":"ModifierInvocation","src":"5780:15:27"}],"name":"applyFinalityChanges","nameLocation":"5748:20:27","parameters":{"id":7920,"nodeType":"ParameterList","parameters":[],"src":"5768:2:27"},"returnParameters":{"id":7925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8036,"src":"5805:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":7923,"name":"uint64","nodeType":"ElementaryTypeName","src":"5805:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5804:8:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8059,"nodeType":"FunctionDefinition","src":"7267:157:27","nodes":[],"body":{"id":8058,"nodeType":"Block","src":"7351:73:27","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7385:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":8052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7402:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7388:13:27","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":8049,"name":"address","nodeType":"ElementaryTypeName","src":"7392:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8050,"nodeType":"ArrayTypeName","src":"7392:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":8053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7388:16:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":8047,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"7376:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$16209_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":8054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7376:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},{"id":8055,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8041,"src":"7407:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"id":8046,"name":"_applyMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"7361:14:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$16209_memory_ptr_$_t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":8056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7361:56:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8057,"nodeType":"ExpressionStatement","src":"7361:56:27"}]},"documentation":{"id":8037,"nodeType":"StructuredDocumentation","src":"7230:32:27","text":"@notice apply cross messages"},"functionSelector":"c62eb4d5","implemented":true,"kind":"function","modifiers":[{"id":8044,"kind":"modifierInvocation","modifierName":{"id":8043,"name":"systemActorOnly","nameLocations":["7335:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":11215,"src":"7335:15:27"},"nodeType":"ModifierInvocation","src":"7335:15:27"}],"name":"applyCrossMessages","nameLocation":"7276:18:27","parameters":{"id":8042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8041,"mutability":"mutable","name":"crossMsgs","nameLocation":"7315:9:27","nodeType":"VariableDeclaration","scope":8059,"src":"7295:29:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":8039,"nodeType":"UserDefinedTypeName","pathNode":{"id":8038,"name":"CrossMsg","nameLocations":["7295:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"7295:8:27"},"referencedDeclaration":16155,"src":"7295:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":8040,"nodeType":"ArrayTypeName","src":"7295:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"7294:31:27"},"returnParameters":{"id":8045,"nodeType":"ParameterList","parameters":[],"src":"7351:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8211,"nodeType":"FunctionDefinition","src":"7700:1702:27","nodes":[],"body":{"id":8210,"nodeType":"Block","src":"7781:1621:27","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":8069,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"7795:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7804:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"7795:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7812:2:27","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"7795:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":8072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7815:8:27","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"7795:28:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":8073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7824:7:27","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"7795:36:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":8074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7795:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8079,"nodeType":"IfStatement","src":"7791:102:27","trueBody":{"id":8078,"nodeType":"Block","src":"7835:58:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8075,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"7856:24:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7856:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8077,"nodeType":"RevertStatement","src":"7849:33:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":8080,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"7906:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7915:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"7906:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7923:6:27","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":16167,"src":"7906:23:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8083,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"7933:11:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7906:38:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8100,"nodeType":"IfStatement","src":"7902:178:27","trueBody":{"id":8099,"nodeType":"Block","src":"7946:134:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":8085,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"7964:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7973:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"7964:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7981:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"7964:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8090,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7997:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$8649","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$8649","typeString":"contract GatewayRouterFacet"}],"id":8089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7989:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8088,"name":"address","nodeType":"ElementaryTypeName","src":"7989:7:27","typeDescriptions":{}}},"id":8091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7989:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8003:7:27","memberName":"balance","nodeType":"MemberAccess","src":"7989:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7964:46:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8098,"nodeType":"IfStatement","src":"7960:110:27","trueBody":{"id":8097,"nodeType":"Block","src":"8012:58:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8094,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"8037:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8037:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8096,"nodeType":"RevertStatement","src":"8030:25:27"}]}}]}},{"assignments":[8103],"declarations":[{"constant":false,"id":8103,"mutability":"mutable","name":"applyType","nameLocation":"8101:9:27","nodeType":"VariableDeclaration","scope":8210,"src":"8090:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"typeName":{"id":8102,"nodeType":"UserDefinedTypeName","pathNode":{"id":8101,"name":"IPCMsgType","nameLocations":["8090:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":6038,"src":"8090:10:27"},"referencedDeclaration":6038,"src":"8090:10:27","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":8110,"initialValue":{"arguments":[{"expression":{"id":8107,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"8140:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:11:27","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"8140:13:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":8104,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"8113:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8122:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8113:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8130:9:27","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":14002,"src":"8113:26:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$16172_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_enum$_IPCMsgType_$6038_$attached_to$_t_struct$_StorableMsg_$16172_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":8109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8113:41:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"8090:64:27"},{"condition":{"arguments":[{"expression":{"id":8116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"8273:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8275:11:27","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"8273:13:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":8111,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"8237:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8246:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8237:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8254:2:27","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"8237:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":8114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8257:8:27","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"8237:28:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":8115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8266:6:27","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14383,"src":"8237:35:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8195,"nodeType":"IfStatement","src":"8233:977:27","trueBody":{"id":8194,"nodeType":"Block","src":"8289:921:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8119,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"8307:9:27","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8120,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"8320:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$6038_$","typeString":"type(enum IPCMsgType)"}},"id":8121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8331:8:27","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":6037,"src":"8320:19:27","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"src":"8307:32:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8164,"nodeType":"IfStatement","src":"8303:539:27","trueBody":{"id":8163,"nodeType":"Block","src":"8341:501:27","statements":[{"condition":{"id":8126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8363:20:27","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8123,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"8364:9:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":8124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8374:7:27","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"8364:17:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8364:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8162,"nodeType":"IfStatement","src":"8359:469:27","trueBody":{"id":8161,"nodeType":"Block","src":"8385:443:27","statements":[{"assignments":[8128,8131],"declarations":[{"constant":false,"id":8128,"mutability":"mutable","name":"registered","nameLocation":"8413:10:27","nodeType":"VariableDeclaration","scope":8161,"src":"8408:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8127,"name":"bool","nodeType":"ElementaryTypeName","src":"8408:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8131,"mutability":"mutable","name":"subnet","nameLocation":"8440:6:27","nodeType":"VariableDeclaration","scope":8161,"src":"8425:21:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":8130,"nodeType":"UserDefinedTypeName","pathNode":{"id":8129,"name":"Subnet","nameLocations":["8425:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"8425:6:27"},"referencedDeclaration":16226,"src":"8425:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":8136,"initialValue":{"arguments":[{"id":8134,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"8471:9:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":8132,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"8450:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":8133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8461:9:27","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":10980,"src":"8450:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":8135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8450:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"8407:74:27"},{"condition":{"id":8138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8507:11:27","subExpression":{"id":8137,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"8508:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8143,"nodeType":"IfStatement","src":"8503:94:27","trueBody":{"id":8142,"nodeType":"Block","src":"8520:77:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8139,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"8553:19:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8553:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8141,"nodeType":"RevertStatement","src":"8546:28:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8144,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8131,"src":"8622:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":8145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8629:20:27","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":16219,"src":"8622:27:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":8146,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"8653:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8662:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8653:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8670:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":16165,"src":"8653:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8622:53:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8154,"nodeType":"IfStatement","src":"8618:137:27","trueBody":{"id":8153,"nodeType":"Block","src":"8677:78:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8150,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"8710:20:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8152,"nodeType":"RevertStatement","src":"8703:29:27"}]}},{"expression":{"id":8159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8155,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8131,"src":"8777:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":8157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8784:20:27","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":16219,"src":"8777:27:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8808:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8777:32:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8160,"nodeType":"ExpressionStatement","src":"8777:32:27"}]}}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"id":8168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8165,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"8860:9:27","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8166,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"8873:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$6038_$","typeString":"type(enum IPCMsgType)"}},"id":8167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8884:7:27","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":6036,"src":"8873:18:27","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"src":"8860:31:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8187,"nodeType":"IfStatement","src":"8856:236:27","trueBody":{"id":8186,"nodeType":"Block","src":"8893:199:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8169,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"8915:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8917:19:27","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":11137,"src":"8915:21:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":8171,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"8940:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8949:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8940:16:27","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":8173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8957:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":16165,"src":"8940:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8915:47:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8179,"nodeType":"IfStatement","src":"8911:123:27","trueBody":{"id":8178,"nodeType":"Block","src":"8964:70:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8175,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"8993:20:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8177,"nodeType":"RevertStatement","src":"8986:29:27"}]}},{"expression":{"id":8184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8180,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"9051:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9053:19:27","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":11137,"src":"9051:21:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9076:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9051:26:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8185,"nodeType":"ExpressionStatement","src":"9051:26:27"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8188,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"9161:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9170:7:27","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":9242,"src":"9161:16:27","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$16155_memory_ptr_$","typeString":"function (struct CrossMsg memory) returns (bytes memory)"}},"id":8191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9161:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8192,"nodeType":"ExpressionStatement","src":"9161:18:27"},{"functionReturnParameters":8068,"id":8193,"nodeType":"Return","src":"9193:7:27"}]}},{"assignments":[8197],"declarations":[{"constant":false,"id":8197,"mutability":"mutable","name":"cid","nameLocation":"9336:3:27","nodeType":"VariableDeclaration","scope":8210,"src":"9328:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9328:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8201,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8198,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"9342:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":8199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9351:6:27","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":9103,"src":"9342:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$16155_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":8200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9342:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9328:31:27"},{"expression":{"id":8208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8202,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"9370:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9372:7:27","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":11067,"src":"9370:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":8206,"indexExpression":{"id":8204,"name":"cid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8197,"src":"9380:3:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9370:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8207,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"9387:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"9370:25:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage","typeString":"struct CrossMsg storage ref"}},"id":8209,"nodeType":"ExpressionStatement","src":"9370:25:27"}]},"documentation":{"id":8060,"nodeType":"StructuredDocumentation","src":"7430:265:27","text":"@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param forwarder - the subnet that handles the cross message\n @param crossMsg - the cross message to be executed"},"implemented":true,"kind":"function","modifiers":[],"name":"_applyMsg","nameLocation":"7709:9:27","parameters":{"id":8067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8063,"mutability":"mutable","name":"forwarder","nameLocation":"7735:9:27","nodeType":"VariableDeclaration","scope":8211,"src":"7719:25:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":8062,"nodeType":"UserDefinedTypeName","pathNode":{"id":8061,"name":"SubnetID","nameLocations":["7719:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"7719:8:27"},"referencedDeclaration":16209,"src":"7719:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":8066,"mutability":"mutable","name":"crossMsg","nameLocation":"7762:8:27","nodeType":"VariableDeclaration","scope":8211,"src":"7746:24:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":8065,"nodeType":"UserDefinedTypeName","pathNode":{"id":8064,"name":"CrossMsg","nameLocations":["7746:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"7746:8:27"},"referencedDeclaration":16155,"src":"7746:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"7718:53:27"},"returnParameters":{"id":8068,"nodeType":"ParameterList","parameters":[],"src":"7781:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8247,"nodeType":"FunctionDefinition","src":"9743:314:27","nodes":[],"body":{"id":8246,"nodeType":"Block","src":"9832:225:27","nodes":[],"statements":[{"assignments":[8223],"declarations":[{"constant":false,"id":8223,"mutability":"mutable","name":"crossMsgsLength","nameLocation":"9850:15:27","nodeType":"VariableDeclaration","scope":8246,"src":"9842:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8222,"name":"uint256","nodeType":"ElementaryTypeName","src":"9842:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8226,"initialValue":{"expression":{"id":8224,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"9868:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":8225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:6:27","memberName":"length","nodeType":"MemberAccess","src":"9868:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9842:42:27"},{"body":{"id":8244,"nodeType":"Block","src":"9933:118:27","statements":[{"expression":{"arguments":[{"id":8234,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8215,"src":"9957:9:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},{"baseExpression":{"id":8235,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"9968:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":8237,"indexExpression":{"id":8236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"9978:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9968:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"id":8233,"name":"_applyMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8211,"src":"9947:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory)"}},"id":8238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8239,"nodeType":"ExpressionStatement","src":"9947:34:27"},{"id":8243,"nodeType":"UncheckedBlock","src":"9995:46:27","statements":[{"expression":{"id":8241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10023:3:27","subExpression":{"id":8240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"10025:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8242,"nodeType":"ExpressionStatement","src":"10023:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"9910:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8231,"name":"crossMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8223,"src":"9914:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9910:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8245,"initializationExpression":{"assignments":[8228],"declarations":[{"constant":false,"id":8228,"mutability":"mutable","name":"i","nameLocation":"9907:1:27","nodeType":"VariableDeclaration","scope":8245,"src":"9899:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8227,"name":"uint256","nodeType":"ElementaryTypeName","src":"9899:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8229,"nodeType":"VariableDeclarationStatement","src":"9899:9:27"},"nodeType":"ForStatement","src":"9894:157:27"}]},"documentation":{"id":8212,"nodeType":"StructuredDocumentation","src":"9408:330:27","text":"@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param forwarder - the subnet that handles the messages\n @param crossMsgs - the cross-net messages to apply"},"implemented":true,"kind":"function","modifiers":[],"name":"_applyMessages","nameLocation":"9752:14:27","parameters":{"id":8220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8215,"mutability":"mutable","name":"forwarder","nameLocation":"9783:9:27","nodeType":"VariableDeclaration","scope":8247,"src":"9767:25:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":8214,"nodeType":"UserDefinedTypeName","pathNode":{"id":8213,"name":"SubnetID","nameLocations":["9767:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"9767:8:27"},"referencedDeclaration":16209,"src":"9767:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":8219,"mutability":"mutable","name":"crossMsgs","nameLocation":"9812:9:27","nodeType":"VariableDeclaration","scope":8247,"src":"9794:27:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":8217,"nodeType":"UserDefinedTypeName","pathNode":{"id":8216,"name":"CrossMsg","nameLocations":["9794:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"9794:8:27"},"referencedDeclaration":16155,"src":"9794:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":8218,"nodeType":"ArrayTypeName","src":"9794:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"9766:56:27"},"returnParameters":{"id":8221,"nodeType":"ParameterList","parameters":[],"src":"9832:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8442,"nodeType":"FunctionDefinition","src":"10630:2747:27","nodes":[],"body":{"id":8441,"nodeType":"Block","src":"10798:2579:27","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8260,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"10812:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8261,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"10821:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10823:33:27","memberName":"bottomUpCheckpointRetentionHeight","nodeType":"MemberAccess","referencedDeclaration":11097,"src":"10821:35:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10812:44:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8268,"nodeType":"IfStatement","src":"10808:110:27","trueBody":{"id":8267,"nodeType":"Block","src":"10858:60:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8264,"name":"CheckpointAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6063,"src":"10879:26:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8266,"nodeType":"RevertStatement","src":"10872:35:27"}]}},{"assignments":[8270,8273,8276],"declarations":[{"constant":false,"id":8270,"mutability":"mutable","name":"exists","nameLocation":"10934:6:27","nodeType":"VariableDeclaration","scope":8441,"src":"10929:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8269,"name":"bool","nodeType":"ElementaryTypeName","src":"10929:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8273,"mutability":"mutable","name":"checkpoint","nameLocation":"10969:10:27","nodeType":"VariableDeclaration","scope":8441,"src":"10942:37:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":8272,"nodeType":"UserDefinedTypeName","pathNode":{"id":8271,"name":"BottomUpCheckpoint","nameLocations":["10942:18:27"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"10942:18:27"},"referencedDeclaration":16133,"src":"10942:18:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":8276,"mutability":"mutable","name":"checkpointInfo","nameLocation":"11004:14:27","nodeType":"VariableDeclaration","scope":8441,"src":"10981:37:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"},"typeName":{"id":8275,"nodeType":"UserDefinedTypeName","pathNode":{"id":8274,"name":"CheckpointInfo","nameLocations":["10981:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"10981:14:27"},"referencedDeclaration":16149,"src":"10981:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}},"visibility":"internal"}],"id":8281,"initialValue":{"arguments":[{"id":8279,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"11076:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":8277,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"11022:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11046:29:27","memberName":"getBottomUpCheckpointWithInfo","nodeType":"MemberAccess","referencedDeclaration":10353,"src":"11022:53:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$16133_storage_ptr_$_t_struct$_CheckpointInfo_$16149_storage_ptr_$","typeString":"function (uint64) view returns (bool,struct BottomUpCheckpoint storage pointer,struct CheckpointInfo storage pointer)"}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11022:61:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$16133_storage_ptr_$_t_struct$_CheckpointInfo_$16149_storage_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint storage pointer,struct CheckpointInfo storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"10928:155:27"},{"condition":{"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11097:7:27","subExpression":{"id":8282,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"11098:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8288,"nodeType":"IfStatement","src":"11093:67:27","trueBody":{"id":8287,"nodeType":"Block","src":"11106:54:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8284,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"11127:20:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11127:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8286,"nodeType":"RevertStatement","src":"11120:29:27"}]}},{"assignments":[8290,8293,null],"declarations":[{"constant":false,"id":8290,"mutability":"mutable","name":"recoveredSignatory","nameLocation":"11230:18:27","nodeType":"VariableDeclaration","scope":8441,"src":"11222:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8289,"name":"address","nodeType":"ElementaryTypeName","src":"11222:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8293,"mutability":"mutable","name":"err","nameLocation":"11269:3:27","nodeType":"VariableDeclaration","scope":8441,"src":"11250:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8292,"nodeType":"UserDefinedTypeName","pathNode":{"id":8291,"name":"ECDSA.RecoverError","nameLocations":["11250:5:27","11256:12:27"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"11250:18:27"},"referencedDeclaration":1909,"src":"11250:18:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":8300,"initialValue":{"arguments":[{"expression":{"id":8296,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"11295:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11310:4:27","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":16136,"src":"11295:19:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8298,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8257,"src":"11316:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8294,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"11278:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$2312_$","typeString":"type(library ECDSA)"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11284:10:27","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":2023,"src":"11278:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":8299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11278:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"11221:105:27"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"id":8305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8301,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8293,"src":"11340:3:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":8302,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"11347:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$2312_$","typeString":"type(library ECDSA)"}},"id":8303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11353:12:27","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":1909,"src":"11347:18:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11366:7:27","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1905,"src":"11347:26:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"src":"11340:33:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8310,"nodeType":"IfStatement","src":"11336:89:27","trueBody":{"id":8309,"nodeType":"Block","src":"11375:50:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8306,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6107,"src":"11396:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11396:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8308,"nodeType":"RevertStatement","src":"11389:25:27"}]}},{"condition":{"arguments":[{"id":8316,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"11557:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":8311,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"11513:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11515:24:27","memberName":"bottomUpSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":11107,"src":"11513:26:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":8314,"indexExpression":{"id":8313,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"11540:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11513:34:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":8315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:8:27","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":4396,"src":"11513:43:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":8317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11513:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8322,"nodeType":"IfStatement","src":"11509:118:27","trueBody":{"id":8321,"nodeType":"Block","src":"11578:49:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8318,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"11599:15:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11599:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8320,"nodeType":"RevertStatement","src":"11592:24:27"}]}},{"assignments":[8324],"declarations":[{"constant":false,"id":8324,"mutability":"mutable","name":"validatorLeaf","nameLocation":"11834:13:27","nodeType":"VariableDeclaration","scope":8441,"src":"11826:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11826:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8338,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":8332,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"11894:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8333,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"11914:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11883:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11887:6:27","memberName":"encode","nodeType":"MemberAccess","src":"11883:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11883:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8329,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11873:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11873:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11860:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8326,"name":"bytes","nodeType":"ElementaryTypeName","src":"11860:5:27","typeDescriptions":{}}},"id":8328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11866:6:27","memberName":"concat","nodeType":"MemberAccess","src":"11860:12:27","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11860:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8325,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11850:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11850:74:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11826:98:27"},{"assignments":[8340],"declarations":[{"constant":false,"id":8340,"mutability":"mutable","name":"valid","nameLocation":"11939:5:27","nodeType":"VariableDeclaration","scope":8441,"src":"11934:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8339,"name":"bool","nodeType":"ElementaryTypeName","src":"11934:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8348,"initialValue":{"arguments":[{"id":8343,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"11974:15:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":8344,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"11997:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12012:8:27","memberName":"rootHash","nodeType":"MemberAccess","referencedDeclaration":16139,"src":"11997:23:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8346,"name":"validatorLeaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8324,"src":"12028:13:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8341,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2847,"src":"11947:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$2847_$","typeString":"type(library MerkleProof)"}},"id":8342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11959:6:27","memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"11947:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":8347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["11967:5:27","11991:4:27","12022:4:27"],"names":["proof","root","leaf"],"nodeType":"FunctionCall","src":"11947:96:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"11934:109:27"},{"condition":{"id":8350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12057:6:27","subExpression":{"id":8349,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"12058:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8356,"nodeType":"IfStatement","src":"12053:77:27","trueBody":{"id":8355,"nodeType":"Block","src":"12065:65:27","statements":[{"errorCall":{"arguments":[{"id":8352,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"12100:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8351,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6131,"src":"12086:13:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12086:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8354,"nodeType":"RevertStatement","src":"12079:40:27"}]}},{"assignments":[8358],"declarations":[{"constant":false,"id":8358,"mutability":"mutable","name":"ok","nameLocation":"12225:2:27","nodeType":"VariableDeclaration","scope":8441,"src":"12220:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8357,"name":"bool","nodeType":"ElementaryTypeName","src":"12220:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8366,"initialValue":{"arguments":[{"id":8364,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"12269:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":8359,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"12230:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12232:24:27","memberName":"bottomUpSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":11107,"src":"12230:26:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":8362,"indexExpression":{"id":8361,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"12257:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12230:34:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":8363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12265:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":4342,"src":"12230:38:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12230:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"12220:68:27"},{"condition":{"id":8368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12302:3:27","subExpression":{"id":8367,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"12303:2:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8373,"nodeType":"IfStatement","src":"12298:61:27","trueBody":{"id":8372,"nodeType":"Block","src":"12307:52:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8369,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"12328:18:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12328:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8371,"nodeType":"RevertStatement","src":"12321:27:27"}]}},{"expression":{"id":8382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":8374,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"12368:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12370:18:27","memberName":"bottomUpSignatures","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"12368:20:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes storage ref))"}},"id":8379,"indexExpression":{"id":8376,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"12389:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12368:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":8380,"indexExpression":{"id":8377,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"12397:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12368:48:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8381,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8257,"src":"12419:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12368:60:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":8383,"nodeType":"ExpressionStatement","src":"12368:60:27"},{"expression":{"id":8388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8384,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"12438:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12453:13:27","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"12438:28:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8387,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"12470:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12438:38:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8389,"nodeType":"ExpressionStatement","src":"12438:38:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8390,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"12491:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12506:13:27","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"12491:28:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":8392,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"12523:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12538:9:27","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":16142,"src":"12523:24:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12491:56:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8440,"nodeType":"IfStatement","src":"12487:884:27","trueBody":{"id":8439,"nodeType":"Block","src":"12549:822:27","statements":[{"condition":{"id":8397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12567:23:27","subExpression":{"expression":{"id":8395,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"12568:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12583:7:27","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":16148,"src":"12568:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8437,"nodeType":"Block","src":"13134:227:27","statements":[{"eventCall":{"arguments":[{"id":8430,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"13207:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":8431,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"13247:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13262:4:27","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":16136,"src":"13247:19:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":8433,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"13299:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13314:13:27","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"13299:28:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8429,"name":"QuorumWeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7723,"src":"13157:19:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint64,bytes32,uint256)"}},"id":8435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["13199:6:27","13235:10:27","13288:9:27"],"names":["height","checkpoint","newWeight"],"nodeType":"FunctionCall","src":"13157:189:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8436,"nodeType":"EmitStatement","src":"13152:194:27"}]},"id":8438,"nodeType":"IfStatement","src":"12563:798:27","trueBody":{"id":8428,"nodeType":"Block","src":"12592:536:27","statements":[{"expression":{"id":8402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8398,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"12610:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12625:7:27","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":16148,"src":"12610:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12635:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12610:29:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8403,"nodeType":"ExpressionStatement","src":"12610:29:27"},{"expression":{"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8404,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"12737:2:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":8408,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"12773:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":8409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12784:11:27","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"12773:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":8405,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"12742:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12744:21:27","memberName":"incompleteCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11101,"src":"12742:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":8407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12766:6:27","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":4514,"src":"12742:30:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$4472_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$4472_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":8410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12742:54:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12737:59:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8412,"nodeType":"ExpressionStatement","src":"12737:59:27"},{"condition":{"id":8414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12818:3:27","subExpression":{"id":8413,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"12819:2:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8419,"nodeType":"IfStatement","src":"12814:91:27","trueBody":{"id":8418,"nodeType":"Block","src":"12823:82:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8415,"name":"FailedRemoveIncompleteCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"12852:32:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12852:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8417,"nodeType":"RevertStatement","src":"12845:41:27"}]}},{"eventCall":{"arguments":[{"id":8421,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"12971:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":8422,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"13011:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13026:4:27","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":16136,"src":"13011:19:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":8424,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"13066:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":8425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13081:13:27","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"13066:28:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8420,"name":"QuorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"12927:13:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint64,bytes32,uint256)"}},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["12963:6:27","12999:10:27","13052:12:27"],"names":["height","checkpoint","quorumWeight"],"nodeType":"FunctionCall","src":"12927:186:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8427,"nodeType":"EmitStatement","src":"12922:191:27"}]}}]}}]},"documentation":{"id":8248,"nodeType":"StructuredDocumentation","src":"10063:562:27","text":"@notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"2a04f220","implemented":true,"kind":"function","modifiers":[],"name":"addCheckpointSignature","nameLocation":"10639:22:27","parameters":{"id":8258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8250,"mutability":"mutable","name":"height","nameLocation":"10678:6:27","nodeType":"VariableDeclaration","scope":8442,"src":"10671:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8249,"name":"uint64","nodeType":"ElementaryTypeName","src":"10671:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":8253,"mutability":"mutable","name":"membershipProof","nameLocation":"10711:15:27","nodeType":"VariableDeclaration","scope":8442,"src":"10694:32:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10694:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8252,"nodeType":"ArrayTypeName","src":"10694:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8255,"mutability":"mutable","name":"weight","nameLocation":"10744:6:27","nodeType":"VariableDeclaration","scope":8442,"src":"10736:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8254,"name":"uint256","nodeType":"ElementaryTypeName","src":"10736:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8257,"mutability":"mutable","name":"signature","nameLocation":"10773:9:27","nodeType":"VariableDeclaration","scope":8442,"src":"10760:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8256,"name":"bytes","nodeType":"ElementaryTypeName","src":"10760:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10661:127:27"},"returnParameters":{"id":8259,"nodeType":"ParameterList","parameters":[],"src":"10798:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8544,"nodeType":"FunctionDefinition","src":"13675:1273:27","nodes":[],"body":{"id":8543,"nodeType":"Block","src":"13858:1090:27","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8455,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8446,"src":"13872:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":8456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13883:11:27","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"13872:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8457,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"13897:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13899:33:27","memberName":"bottomUpCheckpointRetentionHeight","nodeType":"MemberAccess","referencedDeclaration":11097,"src":"13897:35:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13872:60:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8464,"nodeType":"IfStatement","src":"13868:126:27","trueBody":{"id":8463,"nodeType":"Block","src":"13934:60:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8460,"name":"CheckpointAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6063,"src":"13955:26:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13955:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8462,"nodeType":"RevertStatement","src":"13948:35:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8465,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8446,"src":"14007:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":8466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14018:11:27","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"14007:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":8467,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"14032:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14034:19:27","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":11142,"src":"14032:21:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"14007:46:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14057:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14007:51:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8476,"nodeType":"IfStatement","src":"14003:113:27","trueBody":{"id":8475,"nodeType":"Block","src":"14060:56:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8472,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6083,"src":"14081:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14081:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8474,"nodeType":"RevertStatement","src":"14074:31:27"}]}},{"condition":{"arguments":[{"expression":{"id":8479,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8446,"src":"14165:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":8480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14176:11:27","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"14165:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":8477,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"14129:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14140:24:27","memberName":"bottomUpCheckpointExists","nodeType":"MemberAccess","referencedDeclaration":10377,"src":"14129:35:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_bool_$","typeString":"function (uint64) view returns (bool)"}},"id":8481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14129:59:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8486,"nodeType":"IfStatement","src":"14125:122:27","trueBody":{"id":8485,"nodeType":"Block","src":"14190:57:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8482,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6061,"src":"14211:23:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14211:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8484,"nodeType":"RevertStatement","src":"14204:32:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8487,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8450,"src":"14261:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14281:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14261:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8494,"nodeType":"IfStatement","src":"14257:81:27","trueBody":{"id":8493,"nodeType":"Block","src":"14284:54:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8490,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6185,"src":"14305:20:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14305:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8492,"nodeType":"RevertStatement","src":"14298:29:27"}]}},{"assignments":[8496],"declarations":[{"constant":false,"id":8496,"mutability":"mutable","name":"threshold","nameLocation":"14356:9:27","nodeType":"VariableDeclaration","scope":8543,"src":"14348:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8495,"name":"uint256","nodeType":"ElementaryTypeName","src":"14348:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8503,"initialValue":{"arguments":[{"id":8499,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8450,"src":"14392:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8500,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"14410:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14412:18:27","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"14410:20:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8497,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"14368:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14379:12:27","memberName":"weightNeeded","nodeType":"MemberAccess","referencedDeclaration":10998,"src":"14368:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14368:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14348:83:27"},{"assignments":[8505],"declarations":[{"constant":false,"id":8505,"mutability":"mutable","name":"ok","nameLocation":"14481:2:27","nodeType":"VariableDeclaration","scope":8543,"src":"14476:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8504,"name":"bool","nodeType":"ElementaryTypeName","src":"14476:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8512,"initialValue":{"arguments":[{"expression":{"id":8509,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8446,"src":"14514:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":8510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14525:11:27","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"14514:22:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":8506,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"14486:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14488:21:27","memberName":"incompleteCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11101,"src":"14486:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":8508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14510:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":4493,"src":"14486:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$4472_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$4472_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14486:51:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14476:61:27"},{"condition":{"id":8514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14551:3:27","subExpression":{"id":8513,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8505,"src":"14552:2:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8519,"nodeType":"IfStatement","src":"14547:72:27","trueBody":{"id":8518,"nodeType":"Block","src":"14556:63:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8515,"name":"FailedAddIncompleteCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"14577:29:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14577:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8517,"nodeType":"RevertStatement","src":"14570:38:27"}]}},{"assignments":[8522],"declarations":[{"constant":false,"id":8522,"mutability":"mutable","name":"info","nameLocation":"14651:4:27","nodeType":"VariableDeclaration","scope":8543,"src":"14629:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo"},"typeName":{"id":8521,"nodeType":"UserDefinedTypeName","pathNode":{"id":8520,"name":"CheckpointInfo","nameLocations":["14629:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"14629:14:27"},"referencedDeclaration":16149,"src":"14629:14:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}},"visibility":"internal"}],"id":8535,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":8527,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8446,"src":"14714:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":8525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14703:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14707:6:27","memberName":"encode","nodeType":"MemberAccess","src":"14703:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14703:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8524,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14693:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14693:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8530,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8448,"src":"14750:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8531,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8496,"src":"14793:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":8532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14831:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"66616c7365","id":8533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14855:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8523,"name":"CheckpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16149,"src":"14658:14:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CheckpointInfo_$16149_storage_ptr_$","typeString":"type(struct CheckpointInfo storage pointer)"}},"id":8534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14687:4:27","14740:8:27","14782:9:27","14816:13:27","14846:7:27"],"names":["hash","rootHash","threshold","currentWeight","reached"],"nodeType":"FunctionCall","src":"14658:213:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"14629:242:27"},{"expression":{"arguments":[{"id":8539,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8446,"src":"14924:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},{"id":8540,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8522,"src":"14936:4:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"},{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}],"expression":{"id":8536,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"14881:10:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":8538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14892:31:27","memberName":"storeBottomUpCheckpointWithInfo","nodeType":"MemberAccess","referencedDeclaration":10413,"src":"14881:42:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$_t_struct$_CheckpointInfo_$16149_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,struct CheckpointInfo memory)"}},"id":8541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14881:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8542,"nodeType":"ExpressionStatement","src":"14881:60:27"}]},"documentation":{"id":8443,"nodeType":"StructuredDocumentation","src":"13383:287:27","text":"@notice creates a new bottom-up checkpoint\n @param checkpoint - a bottom-up checkpoint\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"a656ca5b","implemented":true,"kind":"function","modifiers":[{"id":8453,"kind":"modifierInvocation","modifierName":{"id":8452,"name":"systemActorOnly","nameLocations":["13842:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":11215,"src":"13842:15:27"},"nodeType":"ModifierInvocation","src":"13842:15:27"}],"name":"createBottomUpCheckpoint","nameLocation":"13684:24:27","parameters":{"id":8451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8446,"mutability":"mutable","name":"checkpoint","nameLocation":"13746:10:27","nodeType":"VariableDeclaration","scope":8544,"src":"13718:38:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":8445,"nodeType":"UserDefinedTypeName","pathNode":{"id":8444,"name":"BottomUpCheckpoint","nameLocations":["13718:18:27"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"13718:18:27"},"referencedDeclaration":16133,"src":"13718:18:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":8448,"mutability":"mutable","name":"membershipRootHash","nameLocation":"13774:18:27","nodeType":"VariableDeclaration","scope":8544,"src":"13766:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13766:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8450,"mutability":"mutable","name":"membershipWeight","nameLocation":"13810:16:27","nodeType":"VariableDeclaration","scope":8544,"src":"13802:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8449,"name":"uint256","nodeType":"ElementaryTypeName","src":"13802:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13708:124:27"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[],"src":"13858:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8648,"nodeType":"FunctionDefinition","src":"15435:987:27","nodes":[],"body":{"id":8647,"nodeType":"Block","src":"15521:901:27","nodes":[],"statements":[{"assignments":[8553],"declarations":[{"constant":false,"id":8553,"mutability":"mutable","name":"oldRetentionHeight","nameLocation":"15538:18:27","nodeType":"VariableDeclaration","scope":8647,"src":"15531:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8552,"name":"uint64","nodeType":"ElementaryTypeName","src":"15531:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":8556,"initialValue":{"expression":{"id":8554,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"15559:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15561:33:27","memberName":"bottomUpCheckpointRetentionHeight","nodeType":"MemberAccess","referencedDeclaration":11097,"src":"15559:35:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"15531:63:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8557,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8547,"src":"15609:18:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":8558,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"15631:18:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"15609:40:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8564,"nodeType":"IfStatement","src":"15605:102:27","trueBody":{"id":8563,"nodeType":"Block","src":"15651:56:27","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8560,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6105,"src":"15672:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15672:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8562,"nodeType":"RevertStatement","src":"15665:31:27"}]}},{"body":{"id":8639,"nodeType":"Block","src":"15779:570:27","statements":[{"expression":{"id":8576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15793:31:27","subExpression":{"baseExpression":{"expression":{"id":8572,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"15800:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15802:19:27","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"15800:21:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":8575,"indexExpression":{"id":8574,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"15822:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15800:24:27","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8577,"nodeType":"ExpressionStatement","src":"15793:31:27"},{"expression":{"id":8582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15838:34:27","subExpression":{"baseExpression":{"expression":{"id":8578,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"15845:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15847:22:27","memberName":"bottomUpCheckpointInfo","nodeType":"MemberAccess","referencedDeclaration":11087,"src":"15845:24:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo storage ref)"}},"id":8581,"indexExpression":{"id":8580,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"15870:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15845:27:27","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8583,"nodeType":"ExpressionStatement","src":"15838:34:27"},{"expression":{"id":8588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15886:36:27","subExpression":{"baseExpression":{"expression":{"id":8584,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"15893:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15895:24:27","memberName":"bottomUpSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":11107,"src":"15893:26:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":8587,"indexExpression":{"id":8586,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"15920:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15893:29:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8589,"nodeType":"ExpressionStatement","src":"15886:36:27"},{"expression":{"id":8594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15936:28:27","subExpression":{"baseExpression":{"expression":{"id":8590,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"15943:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15945:16:27","memberName":"bottomUpMessages","nodeType":"MemberAccess","referencedDeclaration":11094,"src":"15943:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg storage ref[] storage ref)"}},"id":8593,"indexExpression":{"id":8592,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"15962:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15943:21:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8595,"nodeType":"ExpressionStatement","src":"15936:28:27"},{"assignments":[8600],"declarations":[{"constant":false,"id":8600,"mutability":"mutable","name":"validators","nameLocation":"15996:10:27","nodeType":"VariableDeclaration","scope":8639,"src":"15979:27:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8598,"name":"address","nodeType":"ElementaryTypeName","src":"15979:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8599,"nodeType":"ArrayTypeName","src":"15979:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":8607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":8601,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"16009:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16011:24:27","memberName":"bottomUpSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":11107,"src":"16009:26:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":8604,"indexExpression":{"id":8603,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"16036:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16009:29:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":8605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16039:6:27","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":4468,"src":"16009:36:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":8606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16009:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15979:68:27"},{"assignments":[8609],"declarations":[{"constant":false,"id":8609,"mutability":"mutable","name":"n","nameLocation":"16069:1:27","nodeType":"VariableDeclaration","scope":8639,"src":"16061:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8608,"name":"uint256","nodeType":"ElementaryTypeName","src":"16061:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8612,"initialValue":{"expression":{"id":8610,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"16073:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16084:6:27","memberName":"length","nodeType":"MemberAccess","src":"16073:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16061:29:27"},{"body":{"id":8633,"nodeType":"Block","src":"16130:149:27","statements":[{"expression":{"id":8627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"16148:45:27","subExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8619,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"16155:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16157:18:27","memberName":"bottomUpSignatures","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"16155:20:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes storage ref))"}},"id":8622,"indexExpression":{"id":8621,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"16176:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16155:23:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":8626,"indexExpression":{"baseExpression":{"id":8623,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"16179:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8625,"indexExpression":{"id":8624,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8614,"src":"16190:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16179:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16155:38:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8628,"nodeType":"ExpressionStatement","src":"16148:45:27"},{"id":8632,"nodeType":"UncheckedBlock","src":"16211:54:27","statements":[{"expression":{"id":8630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16243:3:27","subExpression":{"id":8629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8614,"src":"16245:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8631,"nodeType":"ExpressionStatement","src":"16243:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8616,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8614,"src":"16121:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8617,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"16125:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16121:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8634,"initializationExpression":{"assignments":[8614],"declarations":[{"constant":false,"id":8614,"mutability":"mutable","name":"i","nameLocation":"16118:1:27","nodeType":"VariableDeclaration","scope":8634,"src":"16110:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8613,"name":"uint256","nodeType":"ElementaryTypeName","src":"16110:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8615,"nodeType":"VariableDeclarationStatement","src":"16110:9:27"},"nodeType":"ForStatement","src":"16105:174:27"},{"id":8638,"nodeType":"UncheckedBlock","src":"16293:46:27","statements":[{"expression":{"id":8636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16321:3:27","subExpression":{"id":8635,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"16323:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8637,"nodeType":"ExpressionStatement","src":"16321:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8569,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"15753:1:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8570,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8547,"src":"15757:18:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"15753:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8640,"initializationExpression":{"assignments":[8566],"declarations":[{"constant":false,"id":8566,"mutability":"mutable","name":"h","nameLocation":"15729:1:27","nodeType":"VariableDeclaration","scope":8640,"src":"15722:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8565,"name":"uint64","nodeType":"ElementaryTypeName","src":"15722:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":8568,"initialValue":{"id":8567,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"15733:18:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"15722:29:27"},"nodeType":"ForStatement","src":"15717:632:27"},{"expression":{"id":8645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8641,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"16359:1:27","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":8643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16361:33:27","memberName":"bottomUpCheckpointRetentionHeight","nodeType":"MemberAccess","referencedDeclaration":11097,"src":"16359:35:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8644,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8547,"src":"16397:18:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16359:56:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8646,"nodeType":"ExpressionStatement","src":"16359:56:27"}]},"documentation":{"id":8545,"nodeType":"StructuredDocumentation","src":"14954:476:27","text":"@notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"functionSelector":"ae00c298","implemented":true,"kind":"function","modifiers":[{"id":8550,"kind":"modifierInvocation","modifierName":{"id":8549,"name":"systemActorOnly","nameLocations":["15505:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":11215,"src":"15505:15:27"},"nodeType":"ModifierInvocation","src":"15505:15:27"}],"name":"pruneBottomUpCheckpoints","nameLocation":"15444:24:27","parameters":{"id":8548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8547,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"15476:18:27","nodeType":"VariableDeclaration","scope":8648,"src":"15469:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8546,"name":"uint64","nodeType":"ElementaryTypeName","src":"15469:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15468:27:27"},"returnParameters":{"id":8551,"nodeType":"ParameterList","parameters":[],"src":"15521:0:27"},"scope":8649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":7675,"name":"GatewayActorModifiers","nameLocations":["2211:21:27"],"nodeType":"IdentifierPath","referencedDeclaration":11226,"src":"2211:21:27"},"id":7676,"nodeType":"InheritanceSpecifier","src":"2211:21:27"}],"canonicalName":"GatewayRouterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[8649,11226],"name":"GatewayRouterFacet","nameLocation":"2189:18:27","scope":8650,"usedErrors":[1248,1253,1256,6051,6055,6061,6063,6067,6073,6075,6077,6081,6083,6087,6091,6093,6097,6105,6107,6119,6131,6135,6147,6155,6159,6165,6167,6169,6171,6175,6179,6181,6185]}],"license":"MIT OR Apache-2.0"},"id":27} \ No newline at end of file diff --git a/contracts/out/IDiamond.sol/IDiamond.json b/contracts/out/IDiamond.sol/IDiamond.json deleted file mode 100644 index e71df6f715..0000000000 --- a/contracts/out/IDiamond.sol/IDiamond.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamond.sol\":\"IDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamond.sol":"IDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamond.sol","id":8676,"exportedSymbols":{"IDiamond":[8675]},"nodeType":"SourceUnit","src":"46:434:28","nodes":[{"id":8651,"nodeType":"PragmaDirective","src":"46:23:28","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8675,"nodeType":"ContractDefinition","src":"71:408:28","nodes":[{"id":8655,"nodeType":"EnumDefinition","src":"130:72:28","nodes":[],"canonicalName":"IDiamond.FacetCutAction","members":[{"id":8652,"name":"Add","nameLocation":"160:3:28","nodeType":"EnumValue","src":"160:3:28"},{"id":8653,"name":"Replace","nameLocation":"173:7:28","nodeType":"EnumValue","src":"173:7:28"},{"id":8654,"name":"Remove","nameLocation":"190:6:28","nodeType":"EnumValue","src":"190:6:28"}],"name":"FacetCutAction","nameLocation":"135:14:28"},{"id":8664,"nodeType":"StructDefinition","src":"208:120:28","nodes":[],"canonicalName":"IDiamond.FacetCut","members":[{"constant":false,"id":8657,"mutability":"mutable","name":"facetAddress","nameLocation":"242:12:28","nodeType":"VariableDeclaration","scope":8664,"src":"234:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8656,"name":"address","nodeType":"ElementaryTypeName","src":"234:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8660,"mutability":"mutable","name":"action","nameLocation":"279:6:28","nodeType":"VariableDeclaration","scope":8664,"src":"264:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":8659,"nodeType":"UserDefinedTypeName","pathNode":{"id":8658,"name":"FacetCutAction","nameLocations":["264:14:28"],"nodeType":"IdentifierPath","referencedDeclaration":8655,"src":"264:14:28"},"referencedDeclaration":8655,"src":"264:14:28","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"},{"constant":false,"id":8663,"mutability":"mutable","name":"functionSelectors","nameLocation":"304:17:28","nodeType":"VariableDeclaration","scope":8664,"src":"295:26:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":8661,"name":"bytes4","nodeType":"ElementaryTypeName","src":"295:6:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8662,"nodeType":"ArrayTypeName","src":"295:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"FacetCut","nameLocation":"215:8:28","scope":8675,"visibility":"public"},{"id":8674,"nodeType":"EventDefinition","src":"404:73:28","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"410:10:28","parameters":{"id":8673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"432:11:28","nodeType":"VariableDeclaration","scope":8674,"src":"421:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":8666,"nodeType":"UserDefinedTypeName","pathNode":{"id":8665,"name":"FacetCut","nameLocations":["421:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"421:8:28"},"referencedDeclaration":8664,"src":"421:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":8667,"nodeType":"ArrayTypeName","src":"421:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":8670,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"453:5:28","nodeType":"VariableDeclaration","scope":8674,"src":"445:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8669,"name":"address","nodeType":"ElementaryTypeName","src":"445:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8672,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"466:9:28","nodeType":"VariableDeclaration","scope":8674,"src":"460:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8671,"name":"bytes","nodeType":"ElementaryTypeName","src":"460:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"420:56:28"}}],"abstract":false,"baseContracts":[],"canonicalName":"IDiamond","contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"linearizedBaseContracts":[8675],"name":"IDiamond","nameLocation":"81:8:28","scope":8676,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":28} \ No newline at end of file diff --git a/contracts/out/IDiamondCut.sol/IDiamondCut.json b/contracts/out/IDiamondCut.sol/IDiamondCut.json deleted file mode 100644 index 21dda9c37e..0000000000 --- a/contracts/out/IDiamondCut.sol/IDiamondCut.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamondCut.sol\":\"IDiamondCut\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamondCut.sol":"IDiamondCut"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamondCut.sol","id":8695,"exportedSymbols":{"IDiamond":[8675],"IDiamondCut":[8694]},"nodeType":"SourceUnit","src":"46:638:29","nodes":[{"id":8677,"nodeType":"PragmaDirective","src":"46:23:29","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8679,"nodeType":"ImportDirective","src":"71:40:29","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./IDiamond.sol","nameLocation":"-1:-1:-1","scope":8695,"sourceUnit":8676,"symbolAliases":[{"foreign":{"id":8678,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"79:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8694,"nodeType":"ContractDefinition","src":"113:570:29","nodes":[{"id":8693,"nodeType":"FunctionDefinition","src":"569:112:29","nodes":[],"documentation":{"id":8682,"nodeType":"StructuredDocumentation","src":"153:411:29","text":" @notice Add/replace/remove any number of functions and optionally execute a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`"},"functionSelector":"1f931c1c","implemented":false,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"578:10:29","parameters":{"id":8691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8686,"mutability":"mutable","name":"_diamondCut","nameLocation":"618:11:29","nodeType":"VariableDeclaration","scope":8693,"src":"589:40:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":8684,"nodeType":"UserDefinedTypeName","pathNode":{"id":8683,"name":"IDiamond.FacetCut","nameLocations":["589:8:29","598:8:29"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"589:17:29"},"referencedDeclaration":8664,"src":"589:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":8685,"nodeType":"ArrayTypeName","src":"589:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":8688,"mutability":"mutable","name":"_init","nameLocation":"639:5:29","nodeType":"VariableDeclaration","scope":8693,"src":"631:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8687,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8690,"mutability":"mutable","name":"_calldata","nameLocation":"661:9:29","nodeType":"VariableDeclaration","scope":8693,"src":"646:24:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8689,"name":"bytes","nodeType":"ElementaryTypeName","src":"646:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"588:83:29"},"returnParameters":{"id":8692,"nodeType":"ParameterList","parameters":[],"src":"680:0:29"},"scope":8694,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":8680,"name":"IDiamond","nameLocations":["138:8:29"],"nodeType":"IdentifierPath","referencedDeclaration":8675,"src":"138:8:29"},"id":8681,"nodeType":"InheritanceSpecifier","src":"138:8:29"}],"canonicalName":"IDiamondCut","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[8694,8675],"name":"IDiamondCut","nameLocation":"123:11:29","scope":8695,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":29} \ No newline at end of file diff --git a/contracts/out/IDiamondLoupe.sol/IDiamondLoupe.json b/contracts/out/IDiamondLoupe.sol/IDiamondLoupe.json deleted file mode 100644 index f881af79e8..0000000000 --- a/contracts/out/IDiamondLoupe.sol/IDiamondLoupe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"facetFunctionSelectors_","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"facetFunctionSelectors_\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"facetFunctionSelectors_\":\"facetFunctionSelectors_\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facet addresses and their four byte function selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamondLoupe.sol\":\"IDiamondLoupe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"facetFunctionSelectors_","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"facetFunctionSelectors_":"facetFunctionSelectors_"}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facet addresses and their four byte function selectors."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamondLoupe.sol":"IDiamondLoupe"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamondLoupe.sol","id":8736,"exportedSymbols":{"IDiamondLoupe":[8735]},"nodeType":"SourceUnit","src":"32:1598:30","nodes":[{"id":8696,"nodeType":"PragmaDirective","src":"32:23:30","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8735,"nodeType":"ContractDefinition","src":"463:1166:30","nodes":[{"id":8702,"nodeType":"StructDefinition","src":"573:86:30","nodes":[],"canonicalName":"IDiamondLoupe.Facet","members":[{"constant":false,"id":8698,"mutability":"mutable","name":"facetAddress","nameLocation":"604:12:30","nodeType":"VariableDeclaration","scope":8702,"src":"596:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8697,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8701,"mutability":"mutable","name":"functionSelectors","nameLocation":"635:17:30","nodeType":"VariableDeclaration","scope":8702,"src":"626:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":8699,"name":"bytes4","nodeType":"ElementaryTypeName","src":"626:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8700,"nodeType":"ArrayTypeName","src":"626:8:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"Facet","nameLocation":"580:5:30","scope":8735,"visibility":"public"},{"id":8710,"nodeType":"FunctionDefinition","src":"776:65:30","nodes":[],"documentation":{"id":8703,"nodeType":"StructuredDocumentation","src":"665:106:30","text":"@notice Gets all facet addresses and their four byte function selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":false,"kind":"function","modifiers":[],"name":"facets","nameLocation":"785:6:30","parameters":{"id":8704,"nodeType":"ParameterList","parameters":[],"src":"791:2:30"},"returnParameters":{"id":8709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8708,"mutability":"mutable","name":"facets_","nameLocation":"832:7:30","nodeType":"VariableDeclaration","scope":8710,"src":"817:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":8706,"nodeType":"UserDefinedTypeName","pathNode":{"id":8705,"name":"Facet","nameLocations":["817:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":8702,"src":"817:5:30"},"referencedDeclaration":8702,"src":"817:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$8702_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":8707,"nodeType":"ArrayTypeName","src":"817:7:30","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$8702_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"816:24:30"},"scope":8735,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8719,"nodeType":"FunctionDefinition","src":"1007:112:30","nodes":[],"documentation":{"id":8711,"nodeType":"StructuredDocumentation","src":"847:155:30","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return facetFunctionSelectors_"},"functionSelector":"adfca15e","implemented":false,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"1016:22:30","parameters":{"id":8714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8713,"mutability":"mutable","name":"_facet","nameLocation":"1047:6:30","nodeType":"VariableDeclaration","scope":8719,"src":"1039:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8712,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1038:16:30"},"returnParameters":{"id":8718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8717,"mutability":"mutable","name":"facetFunctionSelectors_","nameLocation":"1094:23:30","nodeType":"VariableDeclaration","scope":8719,"src":"1078:39:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":8715,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1078:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8716,"nodeType":"ArrayTypeName","src":"1078:8:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"1077:41:30"},"scope":8735,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8726,"nodeType":"FunctionDefinition","src":"1220:83:30","nodes":[],"documentation":{"id":8720,"nodeType":"StructuredDocumentation","src":"1125:90:30","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":false,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"1229:14:30","parameters":{"id":8721,"nodeType":"ParameterList","parameters":[],"src":"1243:2:30"},"returnParameters":{"id":8725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8724,"mutability":"mutable","name":"facetAddresses_","nameLocation":"1286:15:30","nodeType":"VariableDeclaration","scope":8726,"src":"1269:32:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8722,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8723,"nodeType":"ArrayTypeName","src":"1269:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1268:34:30"},"scope":8735,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8734,"nodeType":"FunctionDefinition","src":"1533:94:30","nodes":[],"documentation":{"id":8727,"nodeType":"StructuredDocumentation","src":"1309:219:30","text":"@notice Gets the facet that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":false,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"1542:12:30","parameters":{"id":8730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8729,"mutability":"mutable","name":"_functionSelector","nameLocation":"1562:17:30","nodeType":"VariableDeclaration","scope":8734,"src":"1555:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8728,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1555:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1554:26:30"},"returnParameters":{"id":8733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8732,"mutability":"mutable","name":"facetAddress_","nameLocation":"1612:13:30","nodeType":"VariableDeclaration","scope":8734,"src":"1604:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8731,"name":"address","nodeType":"ElementaryTypeName","src":"1604:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1603:23:30"},"scope":8735,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDiamondLoupe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[8735],"name":"IDiamondLoupe","nameLocation":"473:13:30","scope":8736,"usedErrors":[]}],"license":"MIT"},"id":30} \ No newline at end of file diff --git a/contracts/out/IERC165.sol/IERC165.json b/contracts/out/IERC165.sol/IERC165.json deleted file mode 100644 index 370dfae3f8..0000000000 --- a/contracts/out/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceId\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceId":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IERC165.sol":"IERC165"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IERC165.sol","id":8747,"exportedSymbols":{"IERC165":[8746]},"nodeType":"SourceUnit","src":"32:506:31","nodes":[{"id":8737,"nodeType":"PragmaDirective","src":"32:23:31","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8746,"nodeType":"ContractDefinition","src":"57:480:31","nodes":[{"id":8745,"nodeType":"FunctionDefinition","src":"459:76:31","nodes":[],"documentation":{"id":8738,"nodeType":"StructuredDocumentation","src":"81:373:31","text":"@notice Query if a contract implements an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @dev Interface identification is specified in ERC-165. This function\n uses less than 30,000 gas.\n @return `true` if the contract implements `interfaceID` and\n `interfaceID` is not 0xffffffff, `false` otherwise"},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"468:17:31","parameters":{"id":8741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8740,"mutability":"mutable","name":"interfaceId","nameLocation":"493:11:31","nodeType":"VariableDeclaration","scope":8745,"src":"486:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8739,"name":"bytes4","nodeType":"ElementaryTypeName","src":"486:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"485:20:31"},"returnParameters":{"id":8744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8745,"src":"529:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8742,"name":"bool","nodeType":"ElementaryTypeName","src":"529:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"528:6:31"},"scope":8746,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[8746],"name":"IERC165","nameLocation":"67:7:31","scope":8747,"usedErrors":[]}],"license":"MIT"},"id":31} \ No newline at end of file diff --git a/contracts/out/IERC20.sol/IERC20.json b/contracts/out/IERC20.sol/IERC20.json deleted file mode 100644 index 115c46d639..0000000000 --- a/contracts/out/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","id":1216,"exportedSymbols":{"IERC20":[1215]},"nodeType":"SourceUnit","src":"106:2632:4","nodes":[{"id":1139,"nodeType":"PragmaDirective","src":"106:24:4","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":1215,"nodeType":"ContractDefinition","src":"203:2534:4","nodes":[{"id":1149,"nodeType":"EventDefinition","src":"389:72:4","nodes":[],"anonymous":false,"documentation":{"id":1141,"nodeType":"StructuredDocumentation","src":"226:158:4","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"395:8:4","parameters":{"id":1148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"420:4:4","nodeType":"VariableDeclaration","scope":1149,"src":"404:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1142,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1145,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"442:2:4","nodeType":"VariableDeclaration","scope":1149,"src":"426:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1144,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1147,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"454:5:4","nodeType":"VariableDeclaration","scope":1149,"src":"446:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1146,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:57:4"}},{"id":1158,"nodeType":"EventDefinition","src":"620:78:4","nodes":[],"anonymous":false,"documentation":{"id":1150,"nodeType":"StructuredDocumentation","src":"467:148:4","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"626:8:4","parameters":{"id":1157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1152,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"651:5:4","nodeType":"VariableDeclaration","scope":1158,"src":"635:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1154,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"674:7:4","nodeType":"VariableDeclaration","scope":1158,"src":"658:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1153,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1156,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"691:5:4","nodeType":"VariableDeclaration","scope":1158,"src":"683:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1155,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"634:63:4"}},{"id":1164,"nodeType":"FunctionDefinition","src":"775:55:4","nodes":[],"documentation":{"id":1159,"nodeType":"StructuredDocumentation","src":"704:66:4","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"784:11:4","parameters":{"id":1160,"nodeType":"ParameterList","parameters":[],"src":"795:2:4"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1164,"src":"821:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1161,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"820:9:4"},"scope":1215,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1172,"nodeType":"FunctionDefinition","src":"913:68:4","nodes":[],"documentation":{"id":1165,"nodeType":"StructuredDocumentation","src":"836:72:4","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"922:9:4","parameters":{"id":1168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1167,"mutability":"mutable","name":"account","nameLocation":"940:7:4","nodeType":"VariableDeclaration","scope":1172,"src":"932:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1166,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"931:17:4"},"returnParameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1172,"src":"972:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1169,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:9:4"},"scope":1215,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1182,"nodeType":"FunctionDefinition","src":"1194:70:4","nodes":[],"documentation":{"id":1173,"nodeType":"StructuredDocumentation","src":"987:202:4","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1203:8:4","parameters":{"id":1178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"to","nameLocation":"1220:2:4","nodeType":"VariableDeclaration","scope":1182,"src":"1212:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1174,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1177,"mutability":"mutable","name":"amount","nameLocation":"1232:6:4","nodeType":"VariableDeclaration","scope":1182,"src":"1224:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1224:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1211:28:4"},"returnParameters":{"id":1181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1182,"src":"1258:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1179,"name":"bool","nodeType":"ElementaryTypeName","src":"1258:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1257:6:4"},"scope":1215,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1192,"nodeType":"FunctionDefinition","src":"1539:83:4","nodes":[],"documentation":{"id":1183,"nodeType":"StructuredDocumentation","src":"1270:264:4","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1548:9:4","parameters":{"id":1188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1185,"mutability":"mutable","name":"owner","nameLocation":"1566:5:4","nodeType":"VariableDeclaration","scope":1192,"src":"1558:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1184,"name":"address","nodeType":"ElementaryTypeName","src":"1558:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1187,"mutability":"mutable","name":"spender","nameLocation":"1581:7:4","nodeType":"VariableDeclaration","scope":1192,"src":"1573:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1186,"name":"address","nodeType":"ElementaryTypeName","src":"1573:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1557:32:4"},"returnParameters":{"id":1191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1192,"src":"1613:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1189,"name":"uint256","nodeType":"ElementaryTypeName","src":"1613:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1612:9:4"},"scope":1215,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1202,"nodeType":"FunctionDefinition","src":"2275:74:4","nodes":[],"documentation":{"id":1193,"nodeType":"StructuredDocumentation","src":"1628:642:4","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2284:7:4","parameters":{"id":1198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1195,"mutability":"mutable","name":"spender","nameLocation":"2300:7:4","nodeType":"VariableDeclaration","scope":1202,"src":"2292:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1194,"name":"address","nodeType":"ElementaryTypeName","src":"2292:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1197,"mutability":"mutable","name":"amount","nameLocation":"2317:6:4","nodeType":"VariableDeclaration","scope":1202,"src":"2309:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2291:33:4"},"returnParameters":{"id":1201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1202,"src":"2343:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1199,"name":"bool","nodeType":"ElementaryTypeName","src":"2343:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2342:6:4"},"scope":1215,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1214,"nodeType":"FunctionDefinition","src":"2647:88:4","nodes":[],"documentation":{"id":1203,"nodeType":"StructuredDocumentation","src":"2355:287:4","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2656:12:4","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1205,"mutability":"mutable","name":"from","nameLocation":"2677:4:4","nodeType":"VariableDeclaration","scope":1214,"src":"2669:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1204,"name":"address","nodeType":"ElementaryTypeName","src":"2669:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1207,"mutability":"mutable","name":"to","nameLocation":"2691:2:4","nodeType":"VariableDeclaration","scope":1214,"src":"2683:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1206,"name":"address","nodeType":"ElementaryTypeName","src":"2683:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1209,"mutability":"mutable","name":"amount","nameLocation":"2703:6:4","nodeType":"VariableDeclaration","scope":1214,"src":"2695:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1208,"name":"uint256","nodeType":"ElementaryTypeName","src":"2695:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2668:42:4"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1214,"src":"2729:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1211,"name":"bool","nodeType":"ElementaryTypeName","src":"2729:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2728:6:4"},"scope":1215,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":1140,"nodeType":"StructuredDocumentation","src":"132:70:4","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"linearizedBaseContracts":[1215],"name":"IERC20","nameLocation":"213:6:4","scope":1216,"usedErrors":[]}],"license":"MIT"},"id":4} \ No newline at end of file diff --git a/contracts/out/IERC20Metadata.sol/IERC20Metadata.json b/contracts/out/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index 8341f25116..0000000000 --- a/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":1241,"exportedSymbols":{"IERC20":[1215],"IERC20Metadata":[1240]},"nodeType":"SourceUnit","src":"110:574:5","nodes":[{"id":1217,"nodeType":"PragmaDirective","src":"110:24:5","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":1218,"nodeType":"ImportDirective","src":"136:23:5","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":1241,"sourceUnit":1216,"symbolAliases":[],"unitAlias":""},{"id":1240,"nodeType":"ContractDefinition","src":"278:405:5","nodes":[{"id":1227,"nodeType":"FunctionDefinition","src":"378:54:5","nodes":[],"documentation":{"id":1222,"nodeType":"StructuredDocumentation","src":"319:54:5","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"387:4:5","parameters":{"id":1223,"nodeType":"ParameterList","parameters":[],"src":"391:2:5"},"returnParameters":{"id":1226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1227,"src":"417:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1224,"name":"string","nodeType":"ElementaryTypeName","src":"417:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"416:15:5"},"scope":1240,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1233,"nodeType":"FunctionDefinition","src":"499:56:5","nodes":[],"documentation":{"id":1228,"nodeType":"StructuredDocumentation","src":"438:56:5","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"508:6:5","parameters":{"id":1229,"nodeType":"ParameterList","parameters":[],"src":"514:2:5"},"returnParameters":{"id":1232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1233,"src":"540:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1230,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:5"},"scope":1240,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1239,"nodeType":"FunctionDefinition","src":"631:50:5","nodes":[],"documentation":{"id":1234,"nodeType":"StructuredDocumentation","src":"561:65:5","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"640:8:5","parameters":{"id":1235,"nodeType":"ParameterList","parameters":[],"src":"648:2:5"},"returnParameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1239,"src":"674:5:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1236,"name":"uint8","nodeType":"ElementaryTypeName","src":"674:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"673:7:5"},"scope":1240,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":1220,"name":"IERC20","nameLocations":["306:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":1215,"src":"306:6:5"},"id":1221,"nodeType":"InheritanceSpecifier","src":"306:6:5"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1219,"nodeType":"StructuredDocumentation","src":"161:116:5","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[1240,1215],"name":"IERC20Metadata","nameLocation":"288:14:5","scope":1241,"usedErrors":[]}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/contracts/out/IGateway.sol/IGateway.json b/contracts/out/IGateway.sol/IGateway.json deleted file mode 100644 index 684dd55c7d..0000000000 --- a/contracts/out/IGateway.sol/IGateway.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"commitBottomUpCheckpoint","inputs":[{"name":"bottomUpCheckpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendCrossMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addStake()":"5a627dbc","commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"f456b39e","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)":"a656ca5b","fund((uint64,address[]),(uint8,bytes))":"18f44b70","kill()":"41c0e1b5","propagate(bytes32)":"25bf0db6","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485","sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"c13175ef"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"bottomUpCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"commitBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendCrossMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Gateway interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"AddStake adds stake to the collateral of a subnet.\"},\"commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"commitBottomUpCheckpoint propagates the commitment of a checkpoint from a child subnet and processes the cross-messages directed to the subnets.\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage\"},\"createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"Fund injects new funds from an account of the parent chain to a subnet. This functions receives a transaction with the FILs that want to be injected in the subnet. - Funds injected are frozen. - A new fund cross-message is created and stored to propagate it to the subnet. It will be picked up by miners to include it in the next possible block. - The cross-message nonce is updated\"},\"kill()\":{\"notice\":\"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy.\"},\"propagate(bytes32)\":{\"notice\":\"Propagates the stored postbox item for the given cid\"},\"register(uint256)\":{\"notice\":\"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy.\"},\"release((uint8,bytes))\":{\"notice\":\"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Release reward for relayer\"},\"releaseStake(uint256)\":{\"notice\":\"Release stake recovers some collateral of the subnet\"},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"notice\":\"SendCrossMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IGateway.sol\":\"IGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"bottomUpCheckpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"commitBottomUpCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendCrossMessage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"AddStake adds stake to the collateral of a subnet."},"commitBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"commitBottomUpCheckpoint propagates the commitment of a checkpoint from a child subnet and processes the cross-messages directed to the subnets."},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage"},"createBottomUpCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"fund((uint64,address[]),(uint8,bytes))":{"notice":"Fund injects new funds from an account of the parent chain to a subnet. This functions receives a transaction with the FILs that want to be injected in the subnet. - Funds injected are frozen. - A new fund cross-message is created and stored to propagate it to the subnet. It will be picked up by miners to include it in the next possible block. - The cross-message nonce is updated"},"kill()":{"notice":"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy."},"propagate(bytes32)":{"notice":"Propagates the stored postbox item for the given cid"},"register(uint256)":{"notice":"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy."},"release((uint8,bytes))":{"notice":"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address."},"releaseRewardForRelayer(uint256)":{"notice":"Release reward for relayer"},"releaseStake(uint256)":{"notice":"Release stake recovers some collateral of the subnet"},"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"notice":"SendCrossMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IGateway.sol":"IGateway"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IGateway.sol","id":8844,"exportedSymbols":{"BottomUpCheckpoint":[16133],"CrossMsg":[16155],"FvmAddress":[16179],"IGateway":[8843],"ParentFinality":[16116],"SubnetID":[16209]},"nodeType":"SourceUnit","src":"46:3439:32","nodes":[{"id":8748,"nodeType":"PragmaDirective","src":"46:23:32","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8752,"nodeType":"ImportDirective","src":"71:87:32","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":8844,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":8749,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"79:18:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8750,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"99:8:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8751,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"109:14:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8754,"nodeType":"ImportDirective","src":"159:47:32","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":8844,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":8753,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"167:8:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8756,"nodeType":"ImportDirective","src":"207:53:32","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":8844,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":8755,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"215:10:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8843,"nodeType":"ContractDefinition","src":"318:3166:32","nodes":[{"id":8763,"nodeType":"FunctionDefinition","src":"476:62:32","nodes":[],"documentation":{"id":8758,"nodeType":"StructuredDocumentation","src":"343:128:32","text":"@notice Register is called by subnet actors to put the required collateral\n and register the subnet to the hierarchy."},"functionSelector":"f207564e","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"485:8:32","parameters":{"id":8761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8760,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"502:17:32","nodeType":"VariableDeclaration","scope":8763,"src":"494:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8759,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:27:32"},"returnParameters":{"id":8762,"nodeType":"ParameterList","parameters":[],"src":"537:0:32"},"scope":8843,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8767,"nodeType":"FunctionDefinition","src":"611:37:32","nodes":[],"documentation":{"id":8764,"nodeType":"StructuredDocumentation","src":"544:62:32","text":"@notice AddStake adds stake to the collateral of a subnet."},"functionSelector":"5a627dbc","implemented":false,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"620:8:32","parameters":{"id":8765,"nodeType":"ParameterList","parameters":[],"src":"628:2:32"},"returnParameters":{"id":8766,"nodeType":"ParameterList","parameters":[],"src":"647:0:32"},"scope":8843,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8773,"nodeType":"FunctionDefinition","src":"723:47:32","nodes":[],"documentation":{"id":8768,"nodeType":"StructuredDocumentation","src":"654:64:32","text":"@notice Release stake recovers some collateral of the subnet"},"functionSelector":"45f54485","implemented":false,"kind":"function","modifiers":[],"name":"releaseStake","nameLocation":"732:12:32","parameters":{"id":8771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8770,"mutability":"mutable","name":"amount","nameLocation":"753:6:32","nodeType":"VariableDeclaration","scope":8773,"src":"745:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8769,"name":"uint256","nodeType":"ElementaryTypeName","src":"745:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"744:16:32"},"returnParameters":{"id":8772,"nodeType":"ParameterList","parameters":[],"src":"769:0:32"},"scope":8843,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8779,"nodeType":"FunctionDefinition","src":"819:58:32","nodes":[],"documentation":{"id":8774,"nodeType":"StructuredDocumentation","src":"776:38:32","text":"@notice Release reward for relayer"},"functionSelector":"d8e25572","implemented":false,"kind":"function","modifiers":[],"name":"releaseRewardForRelayer","nameLocation":"828:23:32","parameters":{"id":8777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8776,"mutability":"mutable","name":"amount","nameLocation":"860:6:32","nodeType":"VariableDeclaration","scope":8779,"src":"852:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8775,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"851:16:32"},"returnParameters":{"id":8778,"nodeType":"ParameterList","parameters":[],"src":"876:0:32"},"scope":8843,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8783,"nodeType":"FunctionDefinition","src":"995:25:32","nodes":[],"documentation":{"id":8780,"nodeType":"StructuredDocumentation","src":"883:107:32","text":"@notice Kill propagates the kill signal from a subnet actor to unregister it from th\n hierarchy."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1004:4:32","parameters":{"id":8781,"nodeType":"ParameterList","parameters":[],"src":"1008:2:32"},"returnParameters":{"id":8782,"nodeType":"ParameterList","parameters":[],"src":"1019:0:32"},"scope":8843,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8794,"nodeType":"FunctionDefinition","src":"1195:143:32","nodes":[],"documentation":{"id":8784,"nodeType":"StructuredDocumentation","src":"1026:164:32","text":"@notice commitBottomUpCheckpoint propagates the commitment of a checkpoint from a child subnet and\n processes the cross-messages directed to the subnets."},"functionSelector":"f456b39e","implemented":false,"kind":"function","modifiers":[],"name":"commitBottomUpCheckpoint","nameLocation":"1204:24:32","parameters":{"id":8792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8787,"mutability":"mutable","name":"bottomUpCheckpoint","nameLocation":"1266:18:32","nodeType":"VariableDeclaration","scope":8794,"src":"1238:46:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":8786,"nodeType":"UserDefinedTypeName","pathNode":{"id":8785,"name":"BottomUpCheckpoint","nameLocations":["1238:18:32"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1238:18:32"},"referencedDeclaration":16133,"src":"1238:18:32","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":8791,"mutability":"mutable","name":"messages","nameLocation":"1314:8:32","nodeType":"VariableDeclaration","scope":8794,"src":"1294:28:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":8789,"nodeType":"UserDefinedTypeName","pathNode":{"id":8788,"name":"CrossMsg","nameLocations":["1294:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1294:8:32"},"referencedDeclaration":16155,"src":"1294:8:32","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":8790,"nodeType":"ArrayTypeName","src":"1294:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"1228:100:32"},"returnParameters":{"id":8793,"nodeType":"ParameterList","parameters":[],"src":"1337:0:32"},"scope":8843,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8804,"nodeType":"FunctionDefinition","src":"1783:83:32","nodes":[],"documentation":{"id":8795,"nodeType":"StructuredDocumentation","src":"1344:434:32","text":"Fund injects new funds from an account of the parent chain to a subnet.\n This functions receives a transaction with the FILs that want to be injected in the subnet.\n - Funds injected are frozen.\n - A new fund cross-message is created and stored to propagate it to the subnet. It will be\n picked up by miners to include it in the next possible block.\n - The cross-message nonce is updated"},"functionSelector":"18f44b70","implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1792:4:32","parameters":{"id":8802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8798,"mutability":"mutable","name":"subnetId","nameLocation":"1815:8:32","nodeType":"VariableDeclaration","scope":8804,"src":"1797:26:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":8797,"nodeType":"UserDefinedTypeName","pathNode":{"id":8796,"name":"SubnetID","nameLocations":["1797:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1797:8:32"},"referencedDeclaration":16209,"src":"1797:8:32","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":8801,"mutability":"mutable","name":"to","nameLocation":"1845:2:32","nodeType":"VariableDeclaration","scope":8804,"src":"1825:22:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":8800,"nodeType":"UserDefinedTypeName","pathNode":{"id":8799,"name":"FvmAddress","nameLocations":["1825:10:32"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"1825:10:32"},"referencedDeclaration":16179,"src":"1825:10:32","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1796:52:32"},"returnParameters":{"id":8803,"nodeType":"ParameterList","parameters":[],"src":"1865:0:32"},"scope":8843,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8811,"nodeType":"FunctionDefinition","src":"2198:58:32","nodes":[],"documentation":{"id":8805,"nodeType":"StructuredDocumentation","src":"1872:321:32","text":"@notice Release creates a new check message to release funds in parent chain\n This function burns the funds that will be released in the current subnet\n and propagates a new checkpoint message to the parent chain to signal\n the amount of funds that can be released for a specific address."},"functionSelector":"6b2c1eef","implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"2207:7:32","parameters":{"id":8809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8808,"mutability":"mutable","name":"to","nameLocation":"2235:2:32","nodeType":"VariableDeclaration","scope":8811,"src":"2215:22:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":8807,"nodeType":"UserDefinedTypeName","pathNode":{"id":8806,"name":"FvmAddress","nameLocations":["2215:10:32"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"2215:10:32"},"referencedDeclaration":16179,"src":"2215:10:32","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"2214:24:32"},"returnParameters":{"id":8810,"nodeType":"ParameterList","parameters":[],"src":"2255:0:32"},"scope":8843,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8818,"nodeType":"FunctionDefinition","src":"2923:69:32","nodes":[],"documentation":{"id":8812,"nodeType":"StructuredDocumentation","src":"2262:656:32","text":"@notice SendCrossMessage sends an arbitrary cross-message to other subnet in the hierarchy.\n If the message includes any funds they need to be burnt (like in Release)\n before being propagated to the corresponding subnet.\n The circulating supply in each subnet needs to be updated as the message passes through them.\n Params expect a raw message without any subnet context (the IPC address is\n included in the message by the actor). Only actors are allowed to send arbitrary\n cross-messages as a side-effect of their execution. For plain token exchanges\n fund and release have to be used."},"functionSelector":"c13175ef","implemented":false,"kind":"function","modifiers":[],"name":"sendCrossMessage","nameLocation":"2932:16:32","parameters":{"id":8816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8815,"mutability":"mutable","name":"crossMsg","nameLocation":"2965:8:32","nodeType":"VariableDeclaration","scope":8818,"src":"2949:24:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":8814,"nodeType":"UserDefinedTypeName","pathNode":{"id":8813,"name":"CrossMsg","nameLocations":["2949:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2949:8:32"},"referencedDeclaration":16155,"src":"2949:8:32","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2948:26:32"},"returnParameters":{"id":8817,"nodeType":"ParameterList","parameters":[],"src":"2991:0:32"},"scope":8843,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8824,"nodeType":"FunctionDefinition","src":"3067:52:32","nodes":[],"documentation":{"id":8819,"nodeType":"StructuredDocumentation","src":"2998:64:32","text":"@notice Propagates the stored postbox item for the given cid"},"functionSelector":"25bf0db6","implemented":false,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"3076:9:32","parameters":{"id":8822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8821,"mutability":"mutable","name":"msgCid","nameLocation":"3094:6:32","nodeType":"VariableDeclaration","scope":8824,"src":"3086:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3086:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3085:16:32"},"returnParameters":{"id":8823,"nodeType":"ParameterList","parameters":[],"src":"3118:0:32"},"scope":8843,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8831,"nodeType":"FunctionDefinition","src":"3185:73:32","nodes":[],"documentation":{"id":8825,"nodeType":"StructuredDocumentation","src":"3125:55:32","text":"@notice commit the ipc parent finality into storage"},"functionSelector":"11196974","implemented":false,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"3194:20:32","parameters":{"id":8829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8828,"mutability":"mutable","name":"finality","nameLocation":"3239:8:32","nodeType":"VariableDeclaration","scope":8831,"src":"3215:32:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":8827,"nodeType":"UserDefinedTypeName","pathNode":{"id":8826,"name":"ParentFinality","nameLocations":["3215:14:32"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"3215:14:32"},"referencedDeclaration":16116,"src":"3215:14:32","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3214:34:32"},"returnParameters":{"id":8830,"nodeType":"ParameterList","parameters":[],"src":"3257:0:32"},"scope":8843,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8842,"nodeType":"FunctionDefinition","src":"3315:167:32","nodes":[],"documentation":{"id":8832,"nodeType":"StructuredDocumentation","src":"3264:46:32","text":"@notice creates a new bottom-up checkpoint"},"functionSelector":"a656ca5b","implemented":false,"kind":"function","modifiers":[],"name":"createBottomUpCheckpoint","nameLocation":"3324:24:32","parameters":{"id":8840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8835,"mutability":"mutable","name":"checkpoint","nameLocation":"3386:10:32","nodeType":"VariableDeclaration","scope":8842,"src":"3358:38:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":8834,"nodeType":"UserDefinedTypeName","pathNode":{"id":8833,"name":"BottomUpCheckpoint","nameLocations":["3358:18:32"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"3358:18:32"},"referencedDeclaration":16133,"src":"3358:18:32","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":8837,"mutability":"mutable","name":"membershipRootHash","nameLocation":"3414:18:32","nodeType":"VariableDeclaration","scope":8842,"src":"3406:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3406:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8839,"mutability":"mutable","name":"membershipWeight","nameLocation":"3450:16:32","nodeType":"VariableDeclaration","scope":8842,"src":"3442:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8838,"name":"uint256","nodeType":"ElementaryTypeName","src":"3442:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3348:124:32"},"returnParameters":{"id":8841,"nodeType":"ParameterList","parameters":[],"src":"3481:0:32"},"scope":8843,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGateway","contractDependencies":[],"contractKind":"interface","documentation":{"id":8757,"nodeType":"StructuredDocumentation","src":"262:56:32","text":"@title Gateway interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[8843],"name":"IGateway","nameLocation":"328:8:32","scope":8844,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":32} \ No newline at end of file diff --git a/contracts/out/IPCErrors.sol/IPCErrors.json b/contracts/out/IPCErrors.sol/IPCErrors.json deleted file mode 100644 index e6ac41e431..0000000000 --- a/contracts/out/IPCErrors.sol/IPCErrors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/errors/IPCErrors.sol","id":6198,"exportedSymbols":{"AddressShouldBeValidator":[6051],"AlreadyRegisteredSubnet":[6053],"CannotConfirmFutureChanges":[6055],"CannotFindSubnet":[6193],"CannotReleaseZero":[6057],"CannotSendCrossMsgToItself":[6059],"CheckpointAlreadyExists":[6061],"CheckpointAlreadyProcessed":[6063],"CheckpointInfoAlreadyExists":[6065],"CheckpointNotCreated":[6067],"CollateralIsZero":[6069],"EmptyAddress":[6071],"FacetCannotBeZero":[6189],"FailedAddIncompleteCheckpoint":[6073],"FailedAddSignatory":[6075],"FailedRemoveIncompleteCheckpoint":[6077],"GatewayCannotBeZero":[6079],"InvalidActorAddress":[6081],"InvalidCheckpointEpoch":[6083],"InvalidCheckpointMessagesHash":[6085],"InvalidCheckpointSource":[6087],"InvalidCollateral":[6089],"InvalidConfigurationNumber":[6091],"InvalidCrossMsgDstSubnet":[6093],"InvalidCrossMsgFromSubnet":[6095],"InvalidCrossMsgNonce":[6097],"InvalidCrossMsgValue":[6099],"InvalidMajorityPercentage":[6101],"InvalidPowerScale":[6103],"InvalidPublicKeyLength":[6115],"InvalidRetentionHeight":[6105],"InvalidSignature":[6107],"InvalidSignatureErr":[6111],"InvalidSignatureLength":[6113],"InvalidSubmissionPeriod":[6117],"InvalidSubnet":[6119],"MethodNotAllowed":[6197],"NoCollateralToWithdraw":[6121],"NoRewardToWithdraw":[6123],"NoValidatorsInSubnet":[6125],"NotAllValidatorsHaveLeft":[6127],"NotAuthorized":[6131],"NotEmptySubnetCircSupply":[6133],"NotEnoughBalance":[6135],"NotEnoughBalanceForRewards":[6137],"NotEnoughCollateral":[6139],"NotEnoughFee":[6141],"NotEnoughFunds":[6143],"NotEnoughFundsToRelease":[6145],"NotEnoughSubnetCircSupply":[6147],"NotEnoughValidatorsInSubnet":[6149],"NotGateway":[6151],"NotOwnerOfPublicKey":[6153],"NotRegisteredSubnet":[6155],"NotStakedBefore":[6157],"NotSystemActor":[6159],"NotValidator":[6163],"OldConfigurationNumber":[6165],"PQDoesNotContainAddress":[6167],"PQEmpty":[6169],"ParentFinalityAlreadyCommitted":[6171],"PostboxNotExist":[6173],"SignatureReplay":[6175],"SubnetAlreadyBootstrapped":[6187],"SubnetAlreadyKilled":[6177],"SubnetNotActive":[6179],"SubnetNotFound":[6181],"UnknownSubnet":[6195],"WithdrawExceedingCollateral":[6183],"WrongGateway":[6191],"ZeroMembershipWeight":[6185]},"nodeType":"SourceUnit","src":"46:2174:23","nodes":[{"id":6049,"nodeType":"PragmaDirective","src":"46:23:23","nodes":[],"literals":["solidity","0.8",".19"]},{"id":6051,"nodeType":"ErrorDefinition","src":"71:33:23","nodes":[],"errorSelector":"2a55ca53","name":"AddressShouldBeValidator","nameLocation":"77:24:23","parameters":{"id":6050,"nodeType":"ParameterList","parameters":[],"src":"101:2:23"}},{"id":6053,"nodeType":"ErrorDefinition","src":"105:32:23","nodes":[],"errorSelector":"36a719be","name":"AlreadyRegisteredSubnet","nameLocation":"111:23:23","parameters":{"id":6052,"nodeType":"ParameterList","parameters":[],"src":"134:2:23"}},{"id":6055,"nodeType":"ErrorDefinition","src":"138:35:23","nodes":[],"errorSelector":"0815540a","name":"CannotConfirmFutureChanges","nameLocation":"144:26:23","parameters":{"id":6054,"nodeType":"ParameterList","parameters":[],"src":"170:2:23"}},{"id":6057,"nodeType":"ErrorDefinition","src":"174:26:23","nodes":[],"errorSelector":"c79cad7b","name":"CannotReleaseZero","nameLocation":"180:17:23","parameters":{"id":6056,"nodeType":"ParameterList","parameters":[],"src":"197:2:23"}},{"id":6059,"nodeType":"ErrorDefinition","src":"201:35:23","nodes":[],"errorSelector":"bcccd7fc","name":"CannotSendCrossMsgToItself","nameLocation":"207:26:23","parameters":{"id":6058,"nodeType":"ParameterList","parameters":[],"src":"233:2:23"}},{"id":6061,"nodeType":"ErrorDefinition","src":"237:32:23","nodes":[],"errorSelector":"b8a1eae1","name":"CheckpointAlreadyExists","nameLocation":"243:23:23","parameters":{"id":6060,"nodeType":"ParameterList","parameters":[],"src":"266:2:23"}},{"id":6063,"nodeType":"ErrorDefinition","src":"270:35:23","nodes":[],"errorSelector":"76afb88d","name":"CheckpointAlreadyProcessed","nameLocation":"276:26:23","parameters":{"id":6062,"nodeType":"ParameterList","parameters":[],"src":"302:2:23"}},{"id":6065,"nodeType":"ErrorDefinition","src":"306:36:23","nodes":[],"errorSelector":"a04ff7c7","name":"CheckpointInfoAlreadyExists","nameLocation":"312:27:23","parameters":{"id":6064,"nodeType":"ParameterList","parameters":[],"src":"339:2:23"}},{"id":6067,"nodeType":"ErrorDefinition","src":"343:29:23","nodes":[],"errorSelector":"58cdd2e7","name":"CheckpointNotCreated","nameLocation":"349:20:23","parameters":{"id":6066,"nodeType":"ParameterList","parameters":[],"src":"369:2:23"}},{"id":6069,"nodeType":"ErrorDefinition","src":"373:25:23","nodes":[],"errorSelector":"b4f18b02","name":"CollateralIsZero","nameLocation":"379:16:23","parameters":{"id":6068,"nodeType":"ParameterList","parameters":[],"src":"395:2:23"}},{"id":6071,"nodeType":"ErrorDefinition","src":"399:21:23","nodes":[],"errorSelector":"7138356f","name":"EmptyAddress","nameLocation":"405:12:23","parameters":{"id":6070,"nodeType":"ParameterList","parameters":[],"src":"417:2:23"}},{"id":6073,"nodeType":"ErrorDefinition","src":"421:38:23","nodes":[],"errorSelector":"ee6c0267","name":"FailedAddIncompleteCheckpoint","nameLocation":"427:29:23","parameters":{"id":6072,"nodeType":"ParameterList","parameters":[],"src":"456:2:23"}},{"id":6075,"nodeType":"ErrorDefinition","src":"460:27:23","nodes":[],"errorSelector":"3363140f","name":"FailedAddSignatory","nameLocation":"466:18:23","parameters":{"id":6074,"nodeType":"ParameterList","parameters":[],"src":"484:2:23"}},{"id":6077,"nodeType":"ErrorDefinition","src":"488:41:23","nodes":[],"errorSelector":"7e5145ed","name":"FailedRemoveIncompleteCheckpoint","nameLocation":"494:32:23","parameters":{"id":6076,"nodeType":"ParameterList","parameters":[],"src":"526:2:23"}},{"id":6079,"nodeType":"ErrorDefinition","src":"530:28:23","nodes":[],"errorSelector":"8b3ddc33","name":"GatewayCannotBeZero","nameLocation":"536:19:23","parameters":{"id":6078,"nodeType":"ParameterList","parameters":[],"src":"555:2:23"}},{"id":6081,"nodeType":"ErrorDefinition","src":"559:28:23","nodes":[],"errorSelector":"70e45109","name":"InvalidActorAddress","nameLocation":"565:19:23","parameters":{"id":6080,"nodeType":"ParameterList","parameters":[],"src":"584:2:23"}},{"id":6083,"nodeType":"ErrorDefinition","src":"588:31:23","nodes":[],"errorSelector":"fae4eadb","name":"InvalidCheckpointEpoch","nameLocation":"594:22:23","parameters":{"id":6082,"nodeType":"ParameterList","parameters":[],"src":"616:2:23"}},{"id":6085,"nodeType":"ErrorDefinition","src":"620:38:23","nodes":[],"errorSelector":"b5fdd40c","name":"InvalidCheckpointMessagesHash","nameLocation":"626:29:23","parameters":{"id":6084,"nodeType":"ParameterList","parameters":[],"src":"655:2:23"}},{"id":6087,"nodeType":"ErrorDefinition","src":"659:32:23","nodes":[],"errorSelector":"fe72264e","name":"InvalidCheckpointSource","nameLocation":"665:23:23","parameters":{"id":6086,"nodeType":"ParameterList","parameters":[],"src":"688:2:23"}},{"id":6089,"nodeType":"ErrorDefinition","src":"692:26:23","nodes":[],"errorSelector":"d1ef4cea","name":"InvalidCollateral","nameLocation":"698:17:23","parameters":{"id":6088,"nodeType":"ParameterList","parameters":[],"src":"715:2:23"}},{"id":6091,"nodeType":"ErrorDefinition","src":"719:35:23","nodes":[],"errorSelector":"6ae94ca4","name":"InvalidConfigurationNumber","nameLocation":"725:26:23","parameters":{"id":6090,"nodeType":"ParameterList","parameters":[],"src":"751:2:23"}},{"id":6093,"nodeType":"ErrorDefinition","src":"755:33:23","nodes":[],"errorSelector":"c5f563eb","name":"InvalidCrossMsgDstSubnet","nameLocation":"761:24:23","parameters":{"id":6092,"nodeType":"ParameterList","parameters":[],"src":"785:2:23"}},{"id":6095,"nodeType":"ErrorDefinition","src":"789:34:23","nodes":[],"errorSelector":"a1108f56","name":"InvalidCrossMsgFromSubnet","nameLocation":"795:25:23","parameters":{"id":6094,"nodeType":"ParameterList","parameters":[],"src":"820:2:23"}},{"id":6097,"nodeType":"ErrorDefinition","src":"824:29:23","nodes":[],"errorSelector":"a57cadff","name":"InvalidCrossMsgNonce","nameLocation":"830:20:23","parameters":{"id":6096,"nodeType":"ParameterList","parameters":[],"src":"850:2:23"}},{"id":6099,"nodeType":"ErrorDefinition","src":"854:29:23","nodes":[],"errorSelector":"c1d89cd6","name":"InvalidCrossMsgValue","nameLocation":"860:20:23","parameters":{"id":6098,"nodeType":"ParameterList","parameters":[],"src":"880:2:23"}},{"id":6101,"nodeType":"ErrorDefinition","src":"884:34:23","nodes":[],"errorSelector":"75c3b427","name":"InvalidMajorityPercentage","nameLocation":"890:25:23","parameters":{"id":6100,"nodeType":"ParameterList","parameters":[],"src":"915:2:23"}},{"id":6103,"nodeType":"ErrorDefinition","src":"919:26:23","nodes":[],"errorSelector":"f162efca","name":"InvalidPowerScale","nameLocation":"925:17:23","parameters":{"id":6102,"nodeType":"ParameterList","parameters":[],"src":"942:2:23"}},{"id":6105,"nodeType":"ErrorDefinition","src":"946:31:23","nodes":[],"errorSelector":"6819a3a9","name":"InvalidRetentionHeight","nameLocation":"952:22:23","parameters":{"id":6104,"nodeType":"ParameterList","parameters":[],"src":"974:2:23"}},{"id":6107,"nodeType":"ErrorDefinition","src":"978:25:23","nodes":[],"errorSelector":"8baa579f","name":"InvalidSignature","nameLocation":"984:16:23","parameters":{"id":6106,"nodeType":"ParameterList","parameters":[],"src":"1000:2:23"}},{"id":6111,"nodeType":"ErrorDefinition","src":"1004:33:23","nodes":[],"errorSelector":"282ef1c1","name":"InvalidSignatureErr","nameLocation":"1010:19:23","parameters":{"id":6110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6111,"src":"1030:5:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6108,"name":"uint8","nodeType":"ElementaryTypeName","src":"1030:5:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1029:7:23"}},{"id":6113,"nodeType":"ErrorDefinition","src":"1038:31:23","nodes":[],"errorSelector":"4be6321b","name":"InvalidSignatureLength","nameLocation":"1044:22:23","parameters":{"id":6112,"nodeType":"ParameterList","parameters":[],"src":"1066:2:23"}},{"id":6115,"nodeType":"ErrorDefinition","src":"1070:31:23","nodes":[],"errorSelector":"637297a4","name":"InvalidPublicKeyLength","nameLocation":"1076:22:23","parameters":{"id":6114,"nodeType":"ParameterList","parameters":[],"src":"1098:2:23"}},{"id":6117,"nodeType":"ErrorDefinition","src":"1102:32:23","nodes":[],"errorSelector":"312f8e05","name":"InvalidSubmissionPeriod","nameLocation":"1108:23:23","parameters":{"id":6116,"nodeType":"ParameterList","parameters":[],"src":"1131:2:23"}},{"id":6119,"nodeType":"ErrorDefinition","src":"1135:22:23","nodes":[],"errorSelector":"076bb706","name":"InvalidSubnet","nameLocation":"1141:13:23","parameters":{"id":6118,"nodeType":"ParameterList","parameters":[],"src":"1154:2:23"}},{"id":6121,"nodeType":"ErrorDefinition","src":"1158:31:23","nodes":[],"errorSelector":"64b0557f","name":"NoCollateralToWithdraw","nameLocation":"1164:22:23","parameters":{"id":6120,"nodeType":"ParameterList","parameters":[],"src":"1186:2:23"}},{"id":6123,"nodeType":"ErrorDefinition","src":"1190:27:23","nodes":[],"errorSelector":"ce601f22","name":"NoRewardToWithdraw","nameLocation":"1196:18:23","parameters":{"id":6122,"nodeType":"ParameterList","parameters":[],"src":"1214:2:23"}},{"id":6125,"nodeType":"ErrorDefinition","src":"1218:29:23","nodes":[],"errorSelector":"efa9c8f1","name":"NoValidatorsInSubnet","nameLocation":"1224:20:23","parameters":{"id":6124,"nodeType":"ParameterList","parameters":[],"src":"1244:2:23"}},{"id":6127,"nodeType":"ErrorDefinition","src":"1248:33:23","nodes":[],"errorSelector":"d6c44aa2","name":"NotAllValidatorsHaveLeft","nameLocation":"1254:24:23","parameters":{"id":6126,"nodeType":"ParameterList","parameters":[],"src":"1278:2:23"}},{"id":6131,"nodeType":"ErrorDefinition","src":"1282:29:23","nodes":[],"errorSelector":"4a0bfec1","name":"NotAuthorized","nameLocation":"1288:13:23","parameters":{"id":6130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6131,"src":"1302:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6128,"name":"address","nodeType":"ElementaryTypeName","src":"1302:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1301:9:23"}},{"id":6133,"nodeType":"ErrorDefinition","src":"1312:33:23","nodes":[],"errorSelector":"f8cf8e02","name":"NotEmptySubnetCircSupply","nameLocation":"1318:24:23","parameters":{"id":6132,"nodeType":"ParameterList","parameters":[],"src":"1342:2:23"}},{"id":6135,"nodeType":"ErrorDefinition","src":"1346:25:23","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1352:16:23","parameters":{"id":6134,"nodeType":"ParameterList","parameters":[],"src":"1368:2:23"}},{"id":6137,"nodeType":"ErrorDefinition","src":"1372:35:23","nodes":[],"errorSelector":"60e9957e","name":"NotEnoughBalanceForRewards","nameLocation":"1378:26:23","parameters":{"id":6136,"nodeType":"ParameterList","parameters":[],"src":"1404:2:23"}},{"id":6139,"nodeType":"ErrorDefinition","src":"1408:28:23","nodes":[],"errorSelector":"34477cc0","name":"NotEnoughCollateral","nameLocation":"1414:19:23","parameters":{"id":6138,"nodeType":"ParameterList","parameters":[],"src":"1433:2:23"}},{"id":6141,"nodeType":"ErrorDefinition","src":"1437:21:23","nodes":[],"errorSelector":"688e55ae","name":"NotEnoughFee","nameLocation":"1443:12:23","parameters":{"id":6140,"nodeType":"ParameterList","parameters":[],"src":"1455:2:23"}},{"id":6143,"nodeType":"ErrorDefinition","src":"1459:23:23","nodes":[],"errorSelector":"81b5ad68","name":"NotEnoughFunds","nameLocation":"1465:14:23","parameters":{"id":6142,"nodeType":"ParameterList","parameters":[],"src":"1479:2:23"}},{"id":6145,"nodeType":"ErrorDefinition","src":"1483:32:23","nodes":[],"errorSelector":"79b33e79","name":"NotEnoughFundsToRelease","nameLocation":"1489:23:23","parameters":{"id":6144,"nodeType":"ParameterList","parameters":[],"src":"1512:2:23"}},{"id":6147,"nodeType":"ErrorDefinition","src":"1516:34:23","nodes":[],"errorSelector":"74db2854","name":"NotEnoughSubnetCircSupply","nameLocation":"1522:25:23","parameters":{"id":6146,"nodeType":"ParameterList","parameters":[],"src":"1547:2:23"}},{"id":6149,"nodeType":"ErrorDefinition","src":"1551:36:23","nodes":[],"errorSelector":"f8cf4679","name":"NotEnoughValidatorsInSubnet","nameLocation":"1557:27:23","parameters":{"id":6148,"nodeType":"ParameterList","parameters":[],"src":"1584:2:23"}},{"id":6151,"nodeType":"ErrorDefinition","src":"1588:19:23","nodes":[],"errorSelector":"e7e601db","name":"NotGateway","nameLocation":"1594:10:23","parameters":{"id":6150,"nodeType":"ParameterList","parameters":[],"src":"1604:2:23"}},{"id":6153,"nodeType":"ErrorDefinition","src":"1608:28:23","nodes":[],"errorSelector":"97d24a3a","name":"NotOwnerOfPublicKey","nameLocation":"1614:19:23","parameters":{"id":6152,"nodeType":"ParameterList","parameters":[],"src":"1633:2:23"}},{"id":6155,"nodeType":"ErrorDefinition","src":"1637:28:23","nodes":[],"errorSelector":"e991abd0","name":"NotRegisteredSubnet","nameLocation":"1643:19:23","parameters":{"id":6154,"nodeType":"ParameterList","parameters":[],"src":"1662:2:23"}},{"id":6157,"nodeType":"ErrorDefinition","src":"1666:24:23","nodes":[],"errorSelector":"528fc165","name":"NotStakedBefore","nameLocation":"1672:15:23","parameters":{"id":6156,"nodeType":"ParameterList","parameters":[],"src":"1687:2:23"}},{"id":6159,"nodeType":"ErrorDefinition","src":"1691:23:23","nodes":[],"errorSelector":"f0d97f3b","name":"NotSystemActor","nameLocation":"1697:14:23","parameters":{"id":6158,"nodeType":"ParameterList","parameters":[],"src":"1711:2:23"}},{"id":6163,"nodeType":"ErrorDefinition","src":"1715:28:23","nodes":[],"errorSelector":"ed3db8ac","name":"NotValidator","nameLocation":"1721:12:23","parameters":{"id":6162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6163,"src":"1734:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6160,"name":"address","nodeType":"ElementaryTypeName","src":"1734:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1733:9:23"}},{"id":6165,"nodeType":"ErrorDefinition","src":"1744:31:23","nodes":[],"errorSelector":"6e8d7c4a","name":"OldConfigurationNumber","nameLocation":"1750:22:23","parameters":{"id":6164,"nodeType":"ParameterList","parameters":[],"src":"1772:2:23"}},{"id":6167,"nodeType":"ErrorDefinition","src":"1776:32:23","nodes":[],"errorSelector":"f2755e37","name":"PQDoesNotContainAddress","nameLocation":"1782:23:23","parameters":{"id":6166,"nodeType":"ParameterList","parameters":[],"src":"1805:2:23"}},{"id":6169,"nodeType":"ErrorDefinition","src":"1809:16:23","nodes":[],"errorSelector":"40d9b011","name":"PQEmpty","nameLocation":"1815:7:23","parameters":{"id":6168,"nodeType":"ParameterList","parameters":[],"src":"1822:2:23"}},{"id":6171,"nodeType":"ErrorDefinition","src":"1826:39:23","nodes":[],"errorSelector":"2a75b082","name":"ParentFinalityAlreadyCommitted","nameLocation":"1832:30:23","parameters":{"id":6170,"nodeType":"ParameterList","parameters":[],"src":"1862:2:23"}},{"id":6173,"nodeType":"ErrorDefinition","src":"1866:24:23","nodes":[],"errorSelector":"24498941","name":"PostboxNotExist","nameLocation":"1872:15:23","parameters":{"id":6172,"nodeType":"ParameterList","parameters":[],"src":"1887:2:23"}},{"id":6175,"nodeType":"ErrorDefinition","src":"1891:24:23","nodes":[],"errorSelector":"b47fa1b2","name":"SignatureReplay","nameLocation":"1897:15:23","parameters":{"id":6174,"nodeType":"ParameterList","parameters":[],"src":"1912:2:23"}},{"id":6177,"nodeType":"ErrorDefinition","src":"1916:28:23","nodes":[],"errorSelector":"49191df6","name":"SubnetAlreadyKilled","nameLocation":"1922:19:23","parameters":{"id":6176,"nodeType":"ParameterList","parameters":[],"src":"1941:2:23"}},{"id":6179,"nodeType":"ErrorDefinition","src":"1945:24:23","nodes":[],"errorSelector":"c18316bf","name":"SubnetNotActive","nameLocation":"1951:15:23","parameters":{"id":6178,"nodeType":"ParameterList","parameters":[],"src":"1966:2:23"}},{"id":6181,"nodeType":"ErrorDefinition","src":"1970:23:23","nodes":[],"errorSelector":"00476ad8","name":"SubnetNotFound","nameLocation":"1976:14:23","parameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"1990:2:23"}},{"id":6183,"nodeType":"ErrorDefinition","src":"1994:36:23","nodes":[],"errorSelector":"ac693603","name":"WithdrawExceedingCollateral","nameLocation":"2000:27:23","parameters":{"id":6182,"nodeType":"ParameterList","parameters":[],"src":"2027:2:23"}},{"id":6185,"nodeType":"ErrorDefinition","src":"2031:29:23","nodes":[],"errorSelector":"4e8ac6e5","name":"ZeroMembershipWeight","nameLocation":"2037:20:23","parameters":{"id":6184,"nodeType":"ParameterList","parameters":[],"src":"2057:2:23"}},{"id":6187,"nodeType":"ErrorDefinition","src":"2061:34:23","nodes":[],"errorSelector":"3673e5e6","name":"SubnetAlreadyBootstrapped","nameLocation":"2067:25:23","parameters":{"id":6186,"nodeType":"ParameterList","parameters":[],"src":"2092:2:23"}},{"id":6189,"nodeType":"ErrorDefinition","src":"2096:26:23","nodes":[],"errorSelector":"f4086a20","name":"FacetCannotBeZero","nameLocation":"2102:17:23","parameters":{"id":6188,"nodeType":"ParameterList","parameters":[],"src":"2119:2:23"}},{"id":6191,"nodeType":"ErrorDefinition","src":"2123:21:23","nodes":[],"errorSelector":"3bed0499","name":"WrongGateway","nameLocation":"2129:12:23","parameters":{"id":6190,"nodeType":"ParameterList","parameters":[],"src":"2141:2:23"}},{"id":6193,"nodeType":"ErrorDefinition","src":"2145:25:23","nodes":[],"errorSelector":"4edce94e","name":"CannotFindSubnet","nameLocation":"2151:16:23","parameters":{"id":6192,"nodeType":"ParameterList","parameters":[],"src":"2167:2:23"}},{"id":6195,"nodeType":"ErrorDefinition","src":"2171:22:23","nodes":[],"errorSelector":"63b0e022","name":"UnknownSubnet","nameLocation":"2177:13:23","parameters":{"id":6194,"nodeType":"ParameterList","parameters":[],"src":"2190:2:23"}},{"id":6197,"nodeType":"ErrorDefinition","src":"2194:25:23","nodes":[],"errorSelector":"83f171d6","name":"MethodNotAllowed","nameLocation":"2200:16:23","parameters":{"id":6196,"nodeType":"ParameterList","parameters":[],"src":"2216:2:23"}}],"license":"MIT OR Apache-2.0"},"id":23} \ No newline at end of file diff --git a/contracts/out/IPCMsgType.sol/IPCMsgType.json b/contracts/out/IPCMsgType.sol/IPCMsgType.json deleted file mode 100644 index 2f2d3e1264..0000000000 --- a/contracts/out/IPCMsgType.sol/IPCMsgType.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/IPCMsgType.sol","id":6039,"exportedSymbols":{"IPCMsgType":[6038]},"nodeType":"SourceUnit","src":"46:131:21","nodes":[{"id":6035,"nodeType":"PragmaDirective","src":"46:23:21","nodes":[],"literals":["solidity","0.8",".19"]},{"id":6038,"nodeType":"EnumDefinition","src":"131:45:21","nodes":[],"canonicalName":"IPCMsgType","members":[{"id":6036,"name":"TopDown","nameLocation":"153:7:21","nodeType":"EnumValue","src":"153:7:21"},{"id":6037,"name":"BottomUp","nameLocation":"166:8:21","nodeType":"EnumValue","src":"166:8:21"}],"name":"IPCMsgType","nameLocation":"136:10:21"}],"license":"MIT OR Apache-2.0"},"id":21} \ No newline at end of file diff --git a/contracts/out/ISubnetActor.sol/ISubnetActor.json b/contracts/out/ISubnetActor.sol/ISubnetActor.json deleted file mode 100644 index 7134e911d3..0000000000 --- a/contracts/out/ISubnetActor.sol/ISubnetActor.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint64","internalType":"uint64"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"metadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint64,uint256)":"f9002bb1","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","stake()":"3a4b66f1","submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":"a8284de3","unstake(uint256)":"2e17de78"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"height\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Subnet Actor interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claim()\":{\"notice\":\"Validator claims released collateral\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims a reward\"},\"distributeRewardToRelayers(uint64,uint256)\":{\"notice\":\"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages.\"},\"join(bytes)\":{\"notice\":\"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet.\"},\"kill()\":{\"notice\":\"Unregister the subnet from the hierarchy, making it no longer discoverable.\"},\"leave()\":{\"notice\":\"Called by peers looking to leave a subnet.\"},\"preFund()\":{\"notice\":\"Method that allows to pre-fund an address in the subnet before it bootstraps.\"},\"preRelease(uint256)\":{\"notice\":\"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet.\"},\"stake()\":{\"notice\":\"Method that allows a validator to increase their stake\"},\"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])\":{\"notice\":\"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\"},\"unstake(uint256)\":{\"notice\":\"Method that allows a validator to unstake their collateral from a subnet\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISubnetActor.sol\":\"ISubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"metadata","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claim()":{"notice":"Validator claims released collateral"},"claimRewardForRelayer()":{"notice":"Relayer claims a reward"},"distributeRewardToRelayers(uint64,uint256)":{"notice":"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"join(bytes)":{"notice":"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet."},"kill()":{"notice":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"leave()":{"notice":"Called by peers looking to leave a subnet."},"preFund()":{"notice":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"preRelease(uint256)":{"notice":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"stake()":{"notice":"Method that allows a validator to increase their stake"},"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":{"notice":"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"unstake(uint256)":{"notice":"Method that allows a validator to unstake their collateral from a subnet"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISubnetActor.sol":"ISubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/ISubnetActor.sol","id":8920,"exportedSymbols":{"BottomUpCheckpoint":[16133],"CrossMsg":[16155],"FvmAddress":[16179],"ISubnetActor":[8919]},"nodeType":"SourceUnit","src":"46:2078:33","nodes":[{"id":8845,"nodeType":"PragmaDirective","src":"46:23:33","nodes":[],"literals":["solidity","0.8",".19"]},{"id":8848,"nodeType":"ImportDirective","src":"71:71:33","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":8920,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":8846,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"79:18:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8847,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"99:8:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8850,"nodeType":"ImportDirective","src":"143:53:33","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":8920,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":8849,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"151:10:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8919,"nodeType":"ContractDefinition","src":"259:1864:33","nodes":[{"id":8857,"nodeType":"FunctionDefinition","src":"420:56:33","nodes":[],"documentation":{"id":8852,"nodeType":"StructuredDocumentation","src":"288:127:33","text":"Called by peers looking to join a subnet.\n It implements the basic logic to onboard new peers to the subnet."},"functionSelector":"6170b162","implemented":false,"kind":"function","modifiers":[],"name":"join","nameLocation":"429:4:33","parameters":{"id":8855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8854,"mutability":"mutable","name":"metadata","nameLocation":"449:8:33","nodeType":"VariableDeclaration","scope":8857,"src":"434:23:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8853,"name":"bytes","nodeType":"ElementaryTypeName","src":"434:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"433:25:33"},"returnParameters":{"id":8856,"nodeType":"ParameterList","parameters":[],"src":"475:0:33"},"scope":8919,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8861,"nodeType":"FunctionDefinition","src":"533:26:33","nodes":[],"documentation":{"id":8858,"nodeType":"StructuredDocumentation","src":"482:46:33","text":"Called by peers looking to leave a subnet."},"functionSelector":"d66d9e19","implemented":false,"kind":"function","modifiers":[],"name":"leave","nameLocation":"542:5:33","parameters":{"id":8859,"nodeType":"ParameterList","parameters":[],"src":"547:2:33"},"returnParameters":{"id":8860,"nodeType":"ParameterList","parameters":[],"src":"558:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8865,"nodeType":"FunctionDefinition","src":"628:34:33","nodes":[],"documentation":{"id":8862,"nodeType":"StructuredDocumentation","src":"565:58:33","text":"Method that allows a validator to increase their stake"},"functionSelector":"3a4b66f1","implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"637:5:33","parameters":{"id":8863,"nodeType":"ParameterList","parameters":[],"src":"642:2:33"},"returnParameters":{"id":8864,"nodeType":"ParameterList","parameters":[],"src":"661:0:33"},"scope":8919,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8869,"nodeType":"FunctionDefinition","src":"754:36:33","nodes":[],"documentation":{"id":8866,"nodeType":"StructuredDocumentation","src":"668:81:33","text":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"functionSelector":"0b7fbe60","implemented":false,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"763:7:33","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[],"src":"770:2:33"},"returnParameters":{"id":8868,"nodeType":"ParameterList","parameters":[],"src":"789:0:33"},"scope":8919,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":8875,"nodeType":"FunctionDefinition","src":"909:45:33","nodes":[],"documentation":{"id":8870,"nodeType":"StructuredDocumentation","src":"796:108:33","text":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"functionSelector":"66783c9b","implemented":false,"kind":"function","modifiers":[],"name":"preRelease","nameLocation":"918:10:33","parameters":{"id":8873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8872,"mutability":"mutable","name":"amount","nameLocation":"937:6:33","nodeType":"VariableDeclaration","scope":8875,"src":"929:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8871,"name":"uint256","nodeType":"ElementaryTypeName","src":"929:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"928:16:33"},"returnParameters":{"id":8874,"nodeType":"ParameterList","parameters":[],"src":"953:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8881,"nodeType":"FunctionDefinition","src":"1041:42:33","nodes":[],"documentation":{"id":8876,"nodeType":"StructuredDocumentation","src":"960:76:33","text":"Method that allows a validator to unstake their collateral from a subnet"},"functionSelector":"2e17de78","implemented":false,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"1050:7:33","parameters":{"id":8879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8878,"mutability":"mutable","name":"amount","nameLocation":"1066:6:33","nodeType":"VariableDeclaration","scope":8881,"src":"1058:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8877,"name":"uint256","nodeType":"ElementaryTypeName","src":"1058:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1057:16:33"},"returnParameters":{"id":8880,"nodeType":"ParameterList","parameters":[],"src":"1082:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8885,"nodeType":"FunctionDefinition","src":"1173:25:33","nodes":[],"documentation":{"id":8882,"nodeType":"StructuredDocumentation","src":"1089:79:33","text":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1182:4:33","parameters":{"id":8883,"nodeType":"ParameterList","parameters":[],"src":"1186:2:33"},"returnParameters":{"id":8884,"nodeType":"ParameterList","parameters":[],"src":"1197:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8889,"nodeType":"FunctionDefinition","src":"1249:26:33","nodes":[],"documentation":{"id":8886,"nodeType":"StructuredDocumentation","src":"1204:40:33","text":"Validator claims released collateral"},"functionSelector":"4e71d92d","implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1258:5:33","parameters":{"id":8887,"nodeType":"ParameterList","parameters":[],"src":"1263:2:33"},"returnParameters":{"id":8888,"nodeType":"ParameterList","parameters":[],"src":"1274:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8893,"nodeType":"FunctionDefinition","src":"1313:42:33","nodes":[],"documentation":{"id":8890,"nodeType":"StructuredDocumentation","src":"1281:27:33","text":"Relayer claims a reward"},"functionSelector":"ed7c4da1","implemented":false,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"1322:21:33","parameters":{"id":8891,"nodeType":"ParameterList","parameters":[],"src":"1343:2:33"},"returnParameters":{"id":8892,"nodeType":"ParameterList","parameters":[],"src":"1354:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8910,"nodeType":"FunctionDefinition","src":"1624:204:33","nodes":[],"documentation":{"id":8894,"nodeType":"StructuredDocumentation","src":"1361:258:33","text":"Executes the checkpoint if it is valid.\n It triggers the commitment of the checkpoint, the execution of related cross-net messages,\n and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"functionSelector":"a8284de3","implemented":false,"kind":"function","modifiers":[],"name":"submitCheckpoint","nameLocation":"1633:16:33","parameters":{"id":8908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8897,"mutability":"mutable","name":"checkpoint","nameLocation":"1687:10:33","nodeType":"VariableDeclaration","scope":8910,"src":"1659:38:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":8896,"nodeType":"UserDefinedTypeName","pathNode":{"id":8895,"name":"BottomUpCheckpoint","nameLocations":["1659:18:33"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1659:18:33"},"referencedDeclaration":16133,"src":"1659:18:33","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":8901,"mutability":"mutable","name":"messages","nameLocation":"1727:8:33","nodeType":"VariableDeclaration","scope":8910,"src":"1707:28:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":8899,"nodeType":"UserDefinedTypeName","pathNode":{"id":8898,"name":"CrossMsg","nameLocations":["1707:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1707:8:33"},"referencedDeclaration":16155,"src":"1707:8:33","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":8900,"nodeType":"ArrayTypeName","src":"1707:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"},{"constant":false,"id":8904,"mutability":"mutable","name":"signatories","nameLocation":"1764:11:33","nodeType":"VariableDeclaration","scope":8910,"src":"1745:30:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8902,"name":"address","nodeType":"ElementaryTypeName","src":"1745:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8903,"nodeType":"ArrayTypeName","src":"1745:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8907,"mutability":"mutable","name":"signatures","nameLocation":"1802:10:33","nodeType":"VariableDeclaration","scope":8910,"src":"1785:27:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8905,"name":"bytes","nodeType":"ElementaryTypeName","src":"1785:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8906,"nodeType":"ArrayTypeName","src":"1785:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1649:169:33"},"returnParameters":{"id":8909,"nodeType":"ParameterList","parameters":[],"src":"1827:0:33"},"scope":8919,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8918,"nodeType":"FunctionDefinition","src":"2037:84:33","nodes":[],"documentation":{"id":8911,"nodeType":"StructuredDocumentation","src":"1834:198:33","text":"reward the relayers for processing checkpoint at height `height`.\n The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"functionSelector":"f9002bb1","implemented":false,"kind":"function","modifiers":[],"name":"distributeRewardToRelayers","nameLocation":"2046:26:33","parameters":{"id":8916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8913,"mutability":"mutable","name":"height","nameLocation":"2080:6:33","nodeType":"VariableDeclaration","scope":8918,"src":"2073:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8912,"name":"uint64","nodeType":"ElementaryTypeName","src":"2073:6:33","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":8915,"mutability":"mutable","name":"amount","nameLocation":"2096:6:33","nodeType":"VariableDeclaration","scope":8918,"src":"2088:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8914,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2072:31:33"},"returnParameters":{"id":8917,"nodeType":"ParameterList","parameters":[],"src":"2120:0:33"},"scope":8919,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISubnetActor","contractDependencies":[],"contractKind":"interface","documentation":{"id":8851,"nodeType":"StructuredDocumentation","src":"198:61:33","text":"@title Subnet Actor interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[8919],"name":"ISubnetActor","nameLocation":"269:12:33","scope":8920,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":33} \ No newline at end of file diff --git a/contracts/out/LibDiamond.sol/LibDiamond.json b/contracts/out/LibDiamond.sol/LibDiamond.json deleted file mode 100644 index 02898c6284..0000000000 --- a/contracts/out/LibDiamond.sol/LibDiamond.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DIAMOND_STORAGE_POSITION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsGivenToAdd","inputs":[]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotContractOwner","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_contractOwner","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346018576094908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea26469706673582212206d3a269153a06f9eb4ced4c19f06c8959aa5bdb53ea86b7d0832e18f2770170564736f6c63430008130033","sourceMap":"184:9446:37:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea26469706673582212206d3a269153a06f9eb4ced4c19f06c8959aa5bdb53ea86b7d0832e18f2770170564736f6c63430008130033","sourceMap":"184:9446:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:9446:37;;;;;260:43;184:9446;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DIAMOND_STORAGE_POSITION()":"b2bebf55"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoSelectorsGivenToAdd\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIAMOND_STORAGE_POSITION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibDiamond.sol\":\"LibDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[],"type":"error","name":"NoSelectorsGivenToAdd"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contractOwner","type":"address"}],"type":"error","name":"NotContractOwner"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DIAMOND_STORAGE_POSITION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibDiamond.sol":"LibDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibDiamond.sol","id":10201,"exportedSymbols":{"IDiamond":[8675],"IDiamondCut":[8694],"LibDiamond":[10200]},"nodeType":"SourceUnit","src":"46:9585:37","nodes":[{"id":9482,"nodeType":"PragmaDirective","src":"46:23:37","nodes":[],"literals":["solidity","0.8",".19"]},{"id":9484,"nodeType":"ImportDirective","src":"71:58:37","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":10201,"sourceUnit":8695,"symbolAliases":[{"foreign":{"id":9483,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"79:11:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9486,"nodeType":"ImportDirective","src":"130:52:37","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":10201,"sourceUnit":8676,"symbolAliases":[{"foreign":{"id":9485,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"138:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10200,"nodeType":"ContractDefinition","src":"184:9446:37","nodes":[{"id":9491,"nodeType":"VariableDeclaration","src":"209:94:37","nodes":[],"constant":true,"functionSelector":"b2bebf55","mutability":"constant","name":"DIAMOND_STORAGE_POSITION","nameLocation":"233:24:37","scope":10200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c69626469616d6f6e642e6c69622e6469616d6f6e642e73746f72616765","id":9489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:32:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""},"value":"libdiamond.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""}],"id":9488,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"260:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:43:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":9493,"nodeType":"ErrorDefinition","src":"310:17:37","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"316:8:37","parameters":{"id":9492,"nodeType":"ParameterList","parameters":[],"src":"324:2:37"}},{"id":9499,"nodeType":"ErrorDefinition","src":"332:69:37","nodes":[],"errorSelector":"919834b9","name":"NoBytecodeAtAddress","nameLocation":"338:19:37","parameters":{"id":9498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9495,"mutability":"mutable","name":"_contractAddress","nameLocation":"366:16:37","nodeType":"VariableDeclaration","scope":9499,"src":"358:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9494,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9497,"mutability":"mutable","name":"_message","nameLocation":"391:8:37","nodeType":"VariableDeclaration","scope":9499,"src":"384:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9496,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"357:43:37"}},{"id":9504,"nodeType":"ErrorDefinition","src":"406:66:37","nodes":[],"errorSelector":"7fe9a41e","name":"IncorrectFacetCutAction","nameLocation":"412:23:37","parameters":{"id":9503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9502,"mutability":"mutable","name":"_action","nameLocation":"463:7:37","nodeType":"VariableDeclaration","scope":9504,"src":"436:34:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":9501,"nodeType":"UserDefinedTypeName","pathNode":{"id":9500,"name":"IDiamondCut.FacetCutAction","nameLocations":["436:11:37","448:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":8655,"src":"436:26:37"},"referencedDeclaration":8655,"src":"436:26:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"src":"435:36:37"}},{"id":9508,"nodeType":"ErrorDefinition","src":"477:63:37","nodes":[],"errorSelector":"e767f91f","name":"NoSelectorsProvidedForFacetForCut","nameLocation":"483:33:37","parameters":{"id":9507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9506,"mutability":"mutable","name":"_facetAddress","nameLocation":"525:13:37","nodeType":"VariableDeclaration","scope":9508,"src":"517:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9505,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:23:37"}},{"id":9512,"nodeType":"ErrorDefinition","src":"545:68:37","nodes":[],"errorSelector":"ebbf5d07","name":"CannotAddFunctionToDiamondThatAlreadyExists","nameLocation":"551:43:37","parameters":{"id":9511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9510,"mutability":"mutable","name":"_selector","nameLocation":"602:9:37","nodeType":"VariableDeclaration","scope":9512,"src":"595:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9509,"name":"bytes4","nodeType":"ElementaryTypeName","src":"595:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"594:18:37"}},{"id":9517,"nodeType":"ErrorDefinition","src":"618:59:37","nodes":[],"errorSelector":"0ae3681c","name":"CannotAddSelectorsToZeroAddress","nameLocation":"624:31:37","parameters":{"id":9516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9515,"mutability":"mutable","name":"_selectors","nameLocation":"665:10:37","nodeType":"VariableDeclaration","scope":9517,"src":"656:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9513,"name":"bytes4","nodeType":"ElementaryTypeName","src":"656:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9514,"nodeType":"ArrayTypeName","src":"656:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"655:21:37"}},{"id":9523,"nodeType":"ErrorDefinition","src":"682:94:37","nodes":[],"errorSelector":"192105d7","name":"InitializationFunctionReverted","nameLocation":"688:30:37","parameters":{"id":9522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9519,"mutability":"mutable","name":"_initializationContractAddress","nameLocation":"727:30:37","nodeType":"VariableDeclaration","scope":9523,"src":"719:38:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9518,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9521,"mutability":"mutable","name":"_calldata","nameLocation":"765:9:37","nodeType":"VariableDeclaration","scope":9523,"src":"759:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9520,"name":"bytes","nodeType":"ElementaryTypeName","src":"759:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"718:57:37"}},{"id":9525,"nodeType":"ErrorDefinition","src":"781:30:37","nodes":[],"errorSelector":"eb6ba048","name":"NoSelectorsGivenToAdd","nameLocation":"787:21:37","parameters":{"id":9524,"nodeType":"ParameterList","parameters":[],"src":"808:2:37"}},{"id":9531,"nodeType":"ErrorDefinition","src":"816:62:37","nodes":[],"errorSelector":"ff4127cb","name":"NotContractOwner","nameLocation":"822:16:37","parameters":{"id":9530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9527,"mutability":"mutable","name":"_user","nameLocation":"847:5:37","nodeType":"VariableDeclaration","scope":9531,"src":"839:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9526,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9529,"mutability":"mutable","name":"_contractOwner","nameLocation":"862:14:37","nodeType":"VariableDeclaration","scope":9531,"src":"854:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9528,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"838:39:37"}},{"id":9536,"nodeType":"ErrorDefinition","src":"883:74:37","nodes":[],"errorSelector":"cd98a96f","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nameLocation":"889:46:37","parameters":{"id":9535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9534,"mutability":"mutable","name":"_selectors","nameLocation":"945:10:37","nodeType":"VariableDeclaration","scope":9536,"src":"936:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9532,"name":"bytes4","nodeType":"ElementaryTypeName","src":"936:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9533,"nodeType":"ArrayTypeName","src":"936:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"935:21:37"}},{"id":9540,"nodeType":"ErrorDefinition","src":"962:55:37","nodes":[],"errorSelector":"520300da","name":"CannotReplaceImmutableFunction","nameLocation":"968:30:37","parameters":{"id":9539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9538,"mutability":"mutable","name":"_selector","nameLocation":"1006:9:37","nodeType":"VariableDeclaration","scope":9540,"src":"999:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9537,"name":"bytes4","nodeType":"ElementaryTypeName","src":"999:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"998:18:37"}},{"id":9544,"nodeType":"ErrorDefinition","src":"1022:81:37","nodes":[],"errorSelector":"358d9d1a","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nameLocation":"1028:56:37","parameters":{"id":9543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9542,"mutability":"mutable","name":"_selector","nameLocation":"1092:9:37","nodeType":"VariableDeclaration","scope":9544,"src":"1085:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9541,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1085:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1084:18:37"}},{"id":9548,"nodeType":"ErrorDefinition","src":"1108:63:37","nodes":[],"errorSelector":"7479f939","name":"CannotReplaceFunctionThatDoesNotExists","nameLocation":"1114:38:37","parameters":{"id":9547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9546,"mutability":"mutable","name":"_selector","nameLocation":"1160:9:37","nodeType":"VariableDeclaration","scope":9548,"src":"1153:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1153:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1152:18:37"}},{"id":9552,"nodeType":"ErrorDefinition","src":"1176:65:37","nodes":[],"errorSelector":"d091bc81","name":"RemoveFacetAddressMustBeZeroAddress","nameLocation":"1182:35:37","parameters":{"id":9551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9550,"mutability":"mutable","name":"_facetAddress","nameLocation":"1226:13:37","nodeType":"VariableDeclaration","scope":9552,"src":"1218:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9549,"name":"address","nodeType":"ElementaryTypeName","src":"1218:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1217:23:37"}},{"id":9556,"nodeType":"ErrorDefinition","src":"1246:61:37","nodes":[],"errorSelector":"7a08a22d","name":"CannotRemoveFunctionThatDoesNotExist","nameLocation":"1252:36:37","parameters":{"id":9555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9554,"mutability":"mutable","name":"_selector","nameLocation":"1296:9:37","nodeType":"VariableDeclaration","scope":9556,"src":"1289:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9553,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1289:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1288:18:37"}},{"id":9560,"nodeType":"ErrorDefinition","src":"1312:54:37","nodes":[],"errorSelector":"6fafeb08","name":"CannotRemoveImmutableFunction","nameLocation":"1318:29:37","parameters":{"id":9559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9558,"mutability":"mutable","name":"_selector","nameLocation":"1355:9:37","nodeType":"VariableDeclaration","scope":9560,"src":"1348:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9557,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1348:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1347:18:37"}},{"id":9570,"nodeType":"EventDefinition","src":"1372:85:37","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"1378:10:37","parameters":{"id":9569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9564,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"1412:11:37","nodeType":"VariableDeclaration","scope":9570,"src":"1389:34:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":9562,"nodeType":"UserDefinedTypeName","pathNode":{"id":9561,"name":"IDiamondCut.FacetCut","nameLocations":["1389:11:37","1401:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"1389:20:37"},"referencedDeclaration":8664,"src":"1389:20:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":9563,"nodeType":"ArrayTypeName","src":"1389:22:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":9566,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"1433:5:37","nodeType":"VariableDeclaration","scope":9570,"src":"1425:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9565,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9568,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"1446:9:37","nodeType":"VariableDeclaration","scope":9570,"src":"1440:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9567,"name":"bytes","nodeType":"ElementaryTypeName","src":"1440:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1388:68:37"}},{"id":9575,"nodeType":"StructDefinition","src":"1463:109:37","nodes":[],"canonicalName":"LibDiamond.FacetAddressAndSelectorPosition","members":[{"constant":false,"id":9572,"mutability":"mutable","name":"facetAddress","nameLocation":"1520:12:37","nodeType":"VariableDeclaration","scope":9575,"src":"1512:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9571,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9574,"mutability":"mutable","name":"selectorPosition","nameLocation":"1549:16:37","nodeType":"VariableDeclaration","scope":9575,"src":"1542:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9573,"name":"uint16","nodeType":"ElementaryTypeName","src":"1542:6:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"FacetAddressAndSelectorPosition","nameLocation":"1470:31:37","scope":10200,"visibility":"public"},{"id":9590,"nodeType":"StructDefinition","src":"1578:353:37","nodes":[],"canonicalName":"LibDiamond.DiamondStorage","members":[{"constant":false,"id":9580,"mutability":"mutable","name":"facetAddressAndSelectorPosition","nameLocation":"1748:31:37","nodeType":"VariableDeclaration","scope":9590,"src":"1697:82:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"typeName":{"id":9579,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9576,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1697:50:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9578,"nodeType":"UserDefinedTypeName","pathNode":{"id":9577,"name":"FacetAddressAndSelectorPosition","nameLocations":["1715:31:37"],"nodeType":"IdentifierPath","referencedDeclaration":9575,"src":"1715:31:37"},"referencedDeclaration":9575,"src":"1715:31:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}}},"visibility":"internal"},{"constant":false,"id":9583,"mutability":"mutable","name":"selectors","nameLocation":"1798:9:37","nodeType":"VariableDeclaration","scope":9590,"src":"1789:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9581,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1789:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9582,"nodeType":"ArrayTypeName","src":"1789:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":9587,"mutability":"mutable","name":"supportedInterfaces","nameLocation":"1841:19:37","nodeType":"VariableDeclaration","scope":9590,"src":"1817:43:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"typeName":{"id":9586,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9584,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1825:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1817:23:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9585,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":9589,"mutability":"mutable","name":"contractOwner","nameLocation":"1911:13:37","nodeType":"VariableDeclaration","scope":9590,"src":"1903:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9588,"name":"address","nodeType":"ElementaryTypeName","src":"1903:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DiamondStorage","nameLocation":"1585:14:37","scope":10200,"visibility":"public"},{"id":9602,"nodeType":"FunctionDefinition","src":"1937:197:37","nodes":[],"body":{"id":9601,"nodeType":"Block","src":"2013:121:37","nodes":[],"statements":[{"assignments":[9597],"declarations":[{"constant":false,"id":9597,"mutability":"mutable","name":"position","nameLocation":"2031:8:37","nodeType":"VariableDeclaration","scope":9601,"src":"2023:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9599,"initialValue":{"id":9598,"name":"DIAMOND_STORAGE_POSITION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9491,"src":"2042:24:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2023:43:37"},{"AST":{"nodeType":"YulBlock","src":"2085:43:37","statements":[{"nodeType":"YulAssignment","src":"2099:19:37","value":{"name":"position","nodeType":"YulIdentifier","src":"2110:8:37"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2099:7:37"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":9594,"isOffset":false,"isSlot":true,"src":"2099:7:37","suffix":"slot","valueSize":1},{"declaration":9597,"isOffset":false,"isSlot":false,"src":"2110:8:37","valueSize":1}],"id":9600,"nodeType":"InlineAssembly","src":"2076:52:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondStorage","nameLocation":"1946:14:37","parameters":{"id":9591,"nodeType":"ParameterList","parameters":[],"src":"1960:2:37"},"returnParameters":{"id":9595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9594,"mutability":"mutable","name":"ds","nameLocation":"2009:2:37","nodeType":"VariableDeclaration","scope":9602,"src":"1986:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":9593,"nodeType":"UserDefinedTypeName","pathNode":{"id":9592,"name":"DiamondStorage","nameLocations":["1986:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"1986:14:37"},"referencedDeclaration":9590,"src":"1986:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"src":"1985:27:37"},"scope":10200,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9620,"nodeType":"FunctionDefinition","src":"2140:153:37","nodes":[],"body":{"id":9619,"nodeType":"Block","src":"2194:99:37","nodes":[],"statements":[{"assignments":[9609],"declarations":[{"constant":false,"id":9609,"mutability":"mutable","name":"ds","nameLocation":"2227:2:37","nodeType":"VariableDeclaration","scope":9619,"src":"2204:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":9608,"nodeType":"UserDefinedTypeName","pathNode":{"id":9607,"name":"DiamondStorage","nameLocations":["2204:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"2204:14:37"},"referencedDeclaration":9590,"src":"2204:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":9612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9610,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"2232:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":9611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2232:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2204:44:37"},{"expression":{"id":9617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9613,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"2258:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2261:13:37","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":9589,"src":"2258:16:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9616,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9604,"src":"2277:9:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2258:28:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9618,"nodeType":"ExpressionStatement","src":"2258:28:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setContractOwner","nameLocation":"2149:16:37","parameters":{"id":9605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9604,"mutability":"mutable","name":"_newOwner","nameLocation":"2174:9:37","nodeType":"VariableDeclaration","scope":9620,"src":"2166:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9603,"name":"address","nodeType":"ElementaryTypeName","src":"2166:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2165:19:37"},"returnParameters":{"id":9606,"nodeType":"ParameterList","parameters":[],"src":"2194:0:37"},"scope":10200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9632,"nodeType":"FunctionDefinition","src":"2299:136:37","nodes":[],"body":{"id":9631,"nodeType":"Block","src":"2371:64:37","nodes":[],"statements":[{"expression":{"id":9629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9625,"name":"contractOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9623,"src":"2381:14:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9626,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"2398:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":9627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2415:13:37","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":9589,"src":"2398:30:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2381:47:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9630,"nodeType":"ExpressionStatement","src":"2381:47:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contractOwner","nameLocation":"2308:13:37","parameters":{"id":9621,"nodeType":"ParameterList","parameters":[],"src":"2321:2:37"},"returnParameters":{"id":9624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9623,"mutability":"mutable","name":"contractOwner_","nameLocation":"2355:14:37","nodeType":"VariableDeclaration","scope":9632,"src":"2347:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9622,"name":"address","nodeType":"ElementaryTypeName","src":"2347:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:24:37"},"scope":10200,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9647,"nodeType":"ModifierDefinition","src":"2441:140:37","nodes":[],"body":{"id":9646,"nodeType":"Block","src":"2462:119:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9634,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2476:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2480:6:37","memberName":"sender","nodeType":"MemberAccess","src":"2476:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9636,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"2490:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":9637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2507:13:37","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":9589,"src":"2490:30:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2476:44:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9644,"nodeType":"IfStatement","src":"2472:92:37","trueBody":{"id":9643,"nodeType":"Block","src":"2522:42:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9640,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9493,"src":"2543:8:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9642,"nodeType":"RevertStatement","src":"2536:17:37"}]}},{"id":9645,"nodeType":"PlaceholderStatement","src":"2573:1:37"}]},"name":"onlyOwner","nameLocation":"2450:9:37","parameters":{"id":9633,"nodeType":"ParameterList","parameters":[],"src":"2459:2:37"},"virtual":false,"visibility":"internal"},{"id":9662,"nodeType":"FunctionDefinition","src":"2587:156:37","nodes":[],"body":{"id":9661,"nodeType":"Block","src":"2635:108:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9650,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:37","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9652,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"2663:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":9653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:13:37","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":9589,"src":"2663:30:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:44:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9660,"nodeType":"IfStatement","src":"2645:92:37","trueBody":{"id":9659,"nodeType":"Block","src":"2695:42:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9656,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9493,"src":"2716:8:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2716:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9658,"nodeType":"RevertStatement","src":"2709:17:37"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceIsContractOwner","nameLocation":"2596:22:37","parameters":{"id":9648,"nodeType":"ParameterList","parameters":[],"src":"2618:2:37"},"returnParameters":{"id":9649,"nodeType":"ParameterList","parameters":[],"src":"2635:0:37"},"scope":10200,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9780,"nodeType":"FunctionDefinition","src":"2749:1291:37","nodes":[],"body":{"id":9779,"nodeType":"Block","src":"2857:1183:37","nodes":[],"statements":[{"assignments":[9674],"declarations":[{"constant":false,"id":9674,"mutability":"mutable","name":"length","nameLocation":"2875:6:37","nodeType":"VariableDeclaration","scope":9779,"src":"2867:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9673,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9677,"initialValue":{"expression":{"id":9675,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"2884:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":9676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:6:37","memberName":"length","nodeType":"MemberAccess","src":"2884:18:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:35:37"},{"body":{"id":9766,"nodeType":"Block","src":"2960:937:37","statements":[{"assignments":[9688],"declarations":[{"constant":false,"id":9688,"mutability":"mutable","name":"functionSelectors","nameLocation":"2990:17:37","nodeType":"VariableDeclaration","scope":9766,"src":"2974:33:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9686,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2974:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9687,"nodeType":"ArrayTypeName","src":"2974:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":9693,"initialValue":{"expression":{"baseExpression":{"id":9689,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"3010:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":9691,"indexExpression":{"id":9690,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"3022:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:23:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":9692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3034:17:37","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":8663,"src":"3010:41:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2974:77:37"},{"assignments":[9695],"declarations":[{"constant":false,"id":9695,"mutability":"mutable","name":"facetAddress","nameLocation":"3073:12:37","nodeType":"VariableDeclaration","scope":9766,"src":"3065:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9694,"name":"address","nodeType":"ElementaryTypeName","src":"3065:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9700,"initialValue":{"expression":{"baseExpression":{"id":9696,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"3088:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":9698,"indexExpression":{"id":9697,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"3100:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3088:23:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":9699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3112:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":8657,"src":"3088:36:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3065:59:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9701,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9688,"src":"3142:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":9702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3160:6:37","memberName":"length","nodeType":"MemberAccess","src":"3142:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3170:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3142:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9710,"nodeType":"IfStatement","src":"3138:122:37","trueBody":{"id":9709,"nodeType":"Block","src":"3173:87:37","statements":[{"errorCall":{"arguments":[{"id":9706,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"3232:12:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9705,"name":"NoSelectorsProvidedForFacetForCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9508,"src":"3198:33:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":9707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3198:47:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9708,"nodeType":"RevertStatement","src":"3191:54:37"}]}},{"assignments":[9715],"declarations":[{"constant":false,"id":9715,"mutability":"mutable","name":"action","nameLocation":"3300:6:37","nodeType":"VariableDeclaration","scope":9766,"src":"3273:33:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":9714,"nodeType":"UserDefinedTypeName","pathNode":{"id":9713,"name":"IDiamondCut.FacetCutAction","nameLocations":["3273:11:37","3285:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":8655,"src":"3273:26:37"},"referencedDeclaration":8655,"src":"3273:26:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"id":9720,"initialValue":{"expression":{"baseExpression":{"id":9716,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"3309:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":9718,"indexExpression":{"id":9717,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"3321:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3309:23:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":9719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:6:37","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":8660,"src":"3309:30:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"VariableDeclarationStatement","src":"3273:66:37"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},"id":9725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9721,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9715,"src":"3357:6:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9722,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"3367:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":9723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3376:14:37","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":8655,"src":"3367:23:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$8655_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":9724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3391:3:37","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":8652,"src":"3367:27:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"src":"3357:37:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},"id":9736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9732,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9715,"src":"3484:6:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9733,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"3494:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":9734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3503:14:37","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":8655,"src":"3494:23:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$8655_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":9735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3518:7:37","memberName":"Replace","nodeType":"MemberAccess","referencedDeclaration":8653,"src":"3494:31:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"src":"3484:41:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9743,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9715,"src":"3619:6:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9744,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"3629:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":9745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:14:37","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":8655,"src":"3629:23:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$8655_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":9746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3653:6:37","memberName":"Remove","nodeType":"MemberAccess","referencedDeclaration":8654,"src":"3629:30:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},"src":"3619:40:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9758,"nodeType":"Block","src":"3748:71:37","statements":[{"errorCall":{"arguments":[{"id":9755,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9715,"src":"3797:6:37","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}],"id":9754,"name":"IncorrectFacetCutAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9504,"src":"3773:23:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_FacetCutAction_$8655_$returns$__$","typeString":"function (enum IDiamond.FacetCutAction) pure"}},"id":9756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9757,"nodeType":"RevertStatement","src":"3766:38:37"}]},"id":9759,"nodeType":"IfStatement","src":"3615:204:37","trueBody":{"id":9753,"nodeType":"Block","src":"3661:81:37","statements":[{"expression":{"arguments":[{"id":9749,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"3695:12:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9750,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9688,"src":"3709:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":9748,"name":"removeFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"3679:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3679:48:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9752,"nodeType":"ExpressionStatement","src":"3679:48:37"}]}},"id":9760,"nodeType":"IfStatement","src":"3480:339:37","trueBody":{"id":9742,"nodeType":"Block","src":"3527:82:37","statements":[{"expression":{"arguments":[{"id":9738,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"3562:12:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9739,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9688,"src":"3576:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":9737,"name":"replaceFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9991,"src":"3545:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":9740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:49:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9741,"nodeType":"ExpressionStatement","src":"3545:49:37"}]}},"id":9761,"nodeType":"IfStatement","src":"3353:466:37","trueBody":{"id":9731,"nodeType":"Block","src":"3396:78:37","statements":[{"expression":{"arguments":[{"id":9727,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"3427:12:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9728,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9688,"src":"3441:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":9726,"name":"addFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9886,"src":"3414:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9730,"nodeType":"ExpressionStatement","src":"3414:45:37"}]}},{"id":9765,"nodeType":"UncheckedBlock","src":"3832:55:37","statements":[{"expression":{"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3860:12:37","subExpression":{"id":9762,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"3862:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9764,"nodeType":"ExpressionStatement","src":"3860:12:37"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9681,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"2937:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9682,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"2950:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2937:19:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9767,"initializationExpression":{"assignments":[9679],"declarations":[{"constant":false,"id":9679,"mutability":"mutable","name":"facetIndex","nameLocation":"2925:10:37","nodeType":"VariableDeclaration","scope":9767,"src":"2917:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9678,"name":"uint256","nodeType":"ElementaryTypeName","src":"2917:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9680,"nodeType":"VariableDeclarationStatement","src":"2917:18:37"},"nodeType":"ForStatement","src":"2912:985:37"},{"eventCall":{"arguments":[{"id":9769,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"3936:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":9770,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9668,"src":"3956:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9771,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"3974:9:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9768,"name":"DiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9570,"src":"3911:10:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":9772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3923:11:37","3949:5:37","3963:9:37"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"3911:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9773,"nodeType":"EmitStatement","src":"3906:79:37"},{"expression":{"arguments":[{"id":9775,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9668,"src":"4016:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9776,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"4023:9:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9774,"name":"initializeDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"3995:20:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":9777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9778,"nodeType":"ExpressionStatement","src":"3995:38:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"2758:10:37","parameters":{"id":9671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9666,"mutability":"mutable","name":"_diamondCut","nameLocation":"2796:11:37","nodeType":"VariableDeclaration","scope":9780,"src":"2769:38:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":9664,"nodeType":"UserDefinedTypeName","pathNode":{"id":9663,"name":"IDiamond.FacetCut","nameLocations":["2769:8:37","2778:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"2769:17:37"},"referencedDeclaration":8664,"src":"2769:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":9665,"nodeType":"ArrayTypeName","src":"2769:19:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":9668,"mutability":"mutable","name":"_init","nameLocation":"2817:5:37","nodeType":"VariableDeclaration","scope":9780,"src":"2809:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9667,"name":"address","nodeType":"ElementaryTypeName","src":"2809:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9670,"mutability":"mutable","name":"_calldata","nameLocation":"2837:9:37","nodeType":"VariableDeclaration","scope":9780,"src":"2824:22:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9669,"name":"bytes","nodeType":"ElementaryTypeName","src":"2824:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2768:79:37"},"returnParameters":{"id":9672,"nodeType":"ParameterList","parameters":[],"src":"2857:0:37"},"scope":10200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9886,"nodeType":"FunctionDefinition","src":"4046:1158:37","nodes":[],"body":{"id":9885,"nodeType":"Block","src":"4136:1068:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9788,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9782,"src":"4150:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4175:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4167:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9789,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:37","typeDescriptions":{}}},"id":9792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4150:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9799,"nodeType":"IfStatement","src":"4146:116:37","trueBody":{"id":9798,"nodeType":"Block","src":"4179:83:37","statements":[{"errorCall":{"arguments":[{"id":9795,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"4232:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":9794,"name":"CannotAddSelectorsToZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9517,"src":"4200:31:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4200:51:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9797,"nodeType":"RevertStatement","src":"4193:58:37"}]}},{"assignments":[9802],"declarations":[{"constant":false,"id":9802,"mutability":"mutable","name":"ds","nameLocation":"4294:2:37","nodeType":"VariableDeclaration","scope":9885,"src":"4271:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":9801,"nodeType":"UserDefinedTypeName","pathNode":{"id":9800,"name":"DiamondStorage","nameLocations":["4271:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"4271:14:37"},"referencedDeclaration":9590,"src":"4271:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":9805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9803,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"4299:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":9804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4271:44:37"},{"assignments":[9807],"declarations":[{"constant":false,"id":9807,"mutability":"mutable","name":"selectorCount","nameLocation":"4332:13:37","nodeType":"VariableDeclaration","scope":9885,"src":"4325:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9806,"name":"uint16","nodeType":"ElementaryTypeName","src":"4325:6:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":9814,"initialValue":{"arguments":[{"expression":{"expression":{"id":9810,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"4355:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:9:37","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"4355:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":9812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4368:6:37","memberName":"length","nodeType":"MemberAccess","src":"4355:19:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9808,"name":"uint16","nodeType":"ElementaryTypeName","src":"4348:6:37","typeDescriptions":{}}},"id":9813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4325:50:37"},{"expression":{"arguments":[{"id":9816,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9782,"src":"4408:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a2041646420666163657420686173206e6f20636f6465","id":9817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:35:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""},"value":"diamondCut: Add facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""}],"id":9815,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"4385:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":9818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9819,"nodeType":"ExpressionStatement","src":"4385:74:37"},{"assignments":[9821],"declarations":[{"constant":false,"id":9821,"mutability":"mutable","name":"length","nameLocation":"4477:6:37","nodeType":"VariableDeclaration","scope":9885,"src":"4469:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9820,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9824,"initialValue":{"expression":{"id":9822,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"4486:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":9823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4505:6:37","memberName":"length","nodeType":"MemberAccess","src":"4486:25:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4469:42:37"},{"body":{"id":9883,"nodeType":"Block","src":"4575:623:37","statements":[{"assignments":[9832],"declarations":[{"constant":false,"id":9832,"mutability":"mutable","name":"selector","nameLocation":"4596:8:37","nodeType":"VariableDeclaration","scope":9883,"src":"4589:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9831,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4589:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":9836,"initialValue":{"baseExpression":{"id":9833,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"4607:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":9835,"indexExpression":{"id":9834,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4626:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4607:33:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4589:51:37"},{"assignments":[9838],"declarations":[{"constant":false,"id":9838,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"4662:15:37","nodeType":"VariableDeclaration","scope":9883,"src":"4654:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9837,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9844,"initialValue":{"expression":{"baseExpression":{"expression":{"id":9839,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"4680:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"4680:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":9842,"indexExpression":{"id":9841,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4715:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4680:44:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":9843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"4680:57:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4654:83:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9845,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9838,"src":"4755:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4782:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4774:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9846,"name":"address","nodeType":"ElementaryTypeName","src":"4774:7:37","typeDescriptions":{}}},"id":9849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4755:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9856,"nodeType":"IfStatement","src":"4751:128:37","trueBody":{"id":9855,"nodeType":"Block","src":"4786:93:37","statements":[{"errorCall":{"arguments":[{"id":9852,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4855:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":9851,"name":"CannotAddFunctionToDiamondThatAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9512,"src":"4811:43:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":9853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:53:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9854,"nodeType":"RevertStatement","src":"4804:60:37"}]}},{"expression":{"id":9866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9857,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"4892:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"4892:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":9861,"indexExpression":{"id":9859,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4927:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4892:44:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9863,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9782,"src":"4988:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9864,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9807,"src":"5019:13:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":9862,"name":"FacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"4939:31:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_ptr_$","typeString":"type(struct LibDiamond.FacetAddressAndSelectorPosition storage pointer)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4939:107:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"src":"4892:154:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":9867,"nodeType":"ExpressionStatement","src":"4892:154:37"},{"expression":{"arguments":[{"id":9873,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"5078:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":9868,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"5060:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5063:9:37","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"5060:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":9872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5073:4:37","memberName":"push","nodeType":"MemberAccess","src":"5060:17:37","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$_t_bytes4_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer,bytes4)"}},"id":9874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5060:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9875,"nodeType":"ExpressionStatement","src":"5060:27:37"},{"expression":{"id":9877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5101:15:37","subExpression":{"id":9876,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9807,"src":"5103:13:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":9878,"nodeType":"ExpressionStatement","src":"5101:15:37"},{"id":9882,"nodeType":"UncheckedBlock","src":"5130:58:37","statements":[{"expression":{"id":9880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5158:15:37","subExpression":{"id":9879,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"5160:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9881,"nodeType":"ExpressionStatement","src":"5158:15:37"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9828,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4549:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9829,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9821,"src":"4565:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4549:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9884,"initializationExpression":{"assignments":[9826],"declarations":[{"constant":false,"id":9826,"mutability":"mutable","name":"selectorIndex","nameLocation":"4534:13:37","nodeType":"VariableDeclaration","scope":9884,"src":"4526:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9825,"name":"uint256","nodeType":"ElementaryTypeName","src":"4526:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9827,"nodeType":"VariableDeclarationStatement","src":"4526:21:37"},"nodeType":"ForStatement","src":"4521:677:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addFunctions","nameLocation":"4055:12:37","parameters":{"id":9786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9782,"mutability":"mutable","name":"_facetAddress","nameLocation":"4076:13:37","nodeType":"VariableDeclaration","scope":9886,"src":"4068:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9781,"name":"address","nodeType":"ElementaryTypeName","src":"4068:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9785,"mutability":"mutable","name":"_functionSelectors","nameLocation":"4107:18:37","nodeType":"VariableDeclaration","scope":9886,"src":"4091:34:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4091:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9784,"nodeType":"ArrayTypeName","src":"4091:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"4067:59:37"},"returnParameters":{"id":9787,"nodeType":"ParameterList","parameters":[],"src":"4136:0:37"},"scope":10200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9991,"nodeType":"FunctionDefinition","src":"5210:1396:37","nodes":[],"body":{"id":9990,"nodeType":"Block","src":"5304:1302:37","nodes":[],"statements":[{"assignments":[9896],"declarations":[{"constant":false,"id":9896,"mutability":"mutable","name":"ds","nameLocation":"5337:2:37","nodeType":"VariableDeclaration","scope":9990,"src":"5314:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":9895,"nodeType":"UserDefinedTypeName","pathNode":{"id":9894,"name":"DiamondStorage","nameLocations":["5314:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"5314:14:37"},"referencedDeclaration":9590,"src":"5314:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":9899,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9897,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"5342:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":9898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5314:44:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9900,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"5372:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5397:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9901,"name":"address","nodeType":"ElementaryTypeName","src":"5389:7:37","typeDescriptions":{}}},"id":9904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5372:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9911,"nodeType":"IfStatement","src":"5368:131:37","trueBody":{"id":9910,"nodeType":"Block","src":"5401:98:37","statements":[{"errorCall":{"arguments":[{"id":9907,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9891,"src":"5469:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":9906,"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"5422:46:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":9908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:66:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9909,"nodeType":"RevertStatement","src":"5415:73:37"}]}},{"expression":{"arguments":[{"id":9913,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"5531:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465","id":9914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5546:42:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""},"value":"LibDiamondCut: Replace facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""}],"id":9912,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"5508:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":9915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:81:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9916,"nodeType":"ExpressionStatement","src":"5508:81:37"},{"assignments":[9918],"declarations":[{"constant":false,"id":9918,"mutability":"mutable","name":"fl","nameLocation":"5607:2:37","nodeType":"VariableDeclaration","scope":9990,"src":"5599:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9917,"name":"uint256","nodeType":"ElementaryTypeName","src":"5599:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9921,"initialValue":{"expression":{"id":9919,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9891,"src":"5612:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":9920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5631:6:37","memberName":"length","nodeType":"MemberAccess","src":"5612:25:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5599:38:37"},{"body":{"id":9988,"nodeType":"Block","src":"5697:903:37","statements":[{"assignments":[9929],"declarations":[{"constant":false,"id":9929,"mutability":"mutable","name":"selector","nameLocation":"5718:8:37","nodeType":"VariableDeclaration","scope":9988,"src":"5711:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9928,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5711:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":9933,"initialValue":{"baseExpression":{"id":9930,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9891,"src":"5729:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":9932,"indexExpression":{"id":9931,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9923,"src":"5748:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5729:33:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5711:51:37"},{"assignments":[9935],"declarations":[{"constant":false,"id":9935,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"5784:15:37","nodeType":"VariableDeclaration","scope":9988,"src":"5776:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9934,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9941,"initialValue":{"expression":{"baseExpression":{"expression":{"id":9936,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"5802:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5805:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"5802:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":9939,"indexExpression":{"id":9938,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"5837:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5802:44:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":9940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5847:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"5802:57:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5776:83:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9942,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"5984:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":9945,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6011:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$10200","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$10200","typeString":"library LibDiamond"}],"id":9944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9943,"name":"address","nodeType":"ElementaryTypeName","src":"6003:7:37","typeDescriptions":{}}},"id":9946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5984:32:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9953,"nodeType":"IfStatement","src":"5980:118:37","trueBody":{"id":9952,"nodeType":"Block","src":"6018:80:37","statements":[{"errorCall":{"arguments":[{"id":9949,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"6074:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":9948,"name":"CannotReplaceImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"6043:30:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":9950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6043:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9951,"nodeType":"RevertStatement","src":"6036:47:37"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9954,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"6115:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9955,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6134:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6115:32:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9962,"nodeType":"IfStatement","src":"6111:144:37","trueBody":{"id":9961,"nodeType":"Block","src":"6149:106:37","statements":[{"errorCall":{"arguments":[{"id":9958,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"6231:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":9957,"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"6174:56:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":9959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:66:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9960,"nodeType":"RevertStatement","src":"6167:73:37"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9963,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"6272:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6291:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9964,"name":"address","nodeType":"ElementaryTypeName","src":"6291:7:37","typeDescriptions":{}}},"id":9967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6291:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6272:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9974,"nodeType":"IfStatement","src":"6268:123:37","trueBody":{"id":9973,"nodeType":"Block","src":"6303:88:37","statements":[{"errorCall":{"arguments":[{"id":9970,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"6367:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":9969,"name":"CannotReplaceFunctionThatDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9548,"src":"6328:38:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6328:48:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9972,"nodeType":"RevertStatement","src":"6321:55:37"}]}},{"expression":{"id":9982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":9975,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"6445:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":9978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6448:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"6445:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":9979,"indexExpression":{"id":9977,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"6480:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6445:44:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":9980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6490:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"6445:57:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9981,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6505:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6445:73:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9983,"nodeType":"ExpressionStatement","src":"6445:73:37"},{"id":9987,"nodeType":"UncheckedBlock","src":"6532:58:37","statements":[{"expression":{"id":9985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6560:15:37","subExpression":{"id":9984,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9923,"src":"6562:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9986,"nodeType":"ExpressionStatement","src":"6560:15:37"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9925,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9923,"src":"5675:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9926,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"5691:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5675:18:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9989,"initializationExpression":{"assignments":[9923],"declarations":[{"constant":false,"id":9923,"mutability":"mutable","name":"selectorIndex","nameLocation":"5660:13:37","nodeType":"VariableDeclaration","scope":9989,"src":"5652:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9922,"name":"uint256","nodeType":"ElementaryTypeName","src":"5652:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9924,"nodeType":"VariableDeclarationStatement","src":"5652:21:37"},"nodeType":"ForStatement","src":"5647:953:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"replaceFunctions","nameLocation":"5219:16:37","parameters":{"id":9892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9888,"mutability":"mutable","name":"_facetAddress","nameLocation":"5244:13:37","nodeType":"VariableDeclaration","scope":9991,"src":"5236:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9887,"name":"address","nodeType":"ElementaryTypeName","src":"5236:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9891,"mutability":"mutable","name":"_functionSelectors","nameLocation":"5275:18:37","nodeType":"VariableDeclaration","scope":9991,"src":"5259:34:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9889,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5259:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9890,"nodeType":"ArrayTypeName","src":"5259:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"5235:59:37"},"returnParameters":{"id":9893,"nodeType":"ParameterList","parameters":[],"src":"5304:0:37"},"scope":10200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10129,"nodeType":"FunctionDefinition","src":"6612:1796:37","nodes":[],"body":{"id":10128,"nodeType":"Block","src":"6705:1703:37","nodes":[],"statements":[{"assignments":[10001],"declarations":[{"constant":false,"id":10001,"mutability":"mutable","name":"ds","nameLocation":"6738:2:37","nodeType":"VariableDeclaration","scope":10128,"src":"6715:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":10000,"nodeType":"UserDefinedTypeName","pathNode":{"id":9999,"name":"DiamondStorage","nameLocations":["6715:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"6715:14:37"},"referencedDeclaration":9590,"src":"6715:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":10004,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10002,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"6743:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6715:44:37"},{"assignments":[10006],"declarations":[{"constant":false,"id":10006,"mutability":"mutable","name":"selectorCount","nameLocation":"6777:13:37","nodeType":"VariableDeclaration","scope":10128,"src":"6769:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10005,"name":"uint256","nodeType":"ElementaryTypeName","src":"6769:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10010,"initialValue":{"expression":{"expression":{"id":10007,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"6793:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6796:9:37","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"6793:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":10009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6806:6:37","memberName":"length","nodeType":"MemberAccess","src":"6793:19:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6769:43:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10011,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9993,"src":"6826:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6851:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6843:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10012,"name":"address","nodeType":"ElementaryTypeName","src":"6843:7:37","typeDescriptions":{}}},"id":10015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6826:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10022,"nodeType":"IfStatement","src":"6822:115:37","trueBody":{"id":10021,"nodeType":"Block","src":"6855:82:37","statements":[{"errorCall":{"arguments":[{"id":10018,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9993,"src":"6912:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10017,"name":"RemoveFacetAddressMustBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9552,"src":"6876:35:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":10019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6876:50:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10020,"nodeType":"RevertStatement","src":"6869:57:37"}]}},{"assignments":[10024],"declarations":[{"constant":false,"id":10024,"mutability":"mutable","name":"fl","nameLocation":"6954:2:37","nodeType":"VariableDeclaration","scope":10128,"src":"6946:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10023,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10027,"initialValue":{"expression":{"id":10025,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"6959:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6978:6:37","memberName":"length","nodeType":"MemberAccess","src":"6959:25:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6946:38:37"},{"body":{"id":10126,"nodeType":"Block","src":"7044:1358:37","statements":[{"assignments":[10035],"declarations":[{"constant":false,"id":10035,"mutability":"mutable","name":"selector","nameLocation":"7065:8:37","nodeType":"VariableDeclaration","scope":10126,"src":"7058:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10034,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7058:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":10039,"initialValue":{"baseExpression":{"id":10036,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"7076:18:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":10038,"indexExpression":{"id":10037,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10029,"src":"7095:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7076:33:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7058:51:37"},{"assignments":[10042],"declarations":[{"constant":false,"id":10042,"mutability":"mutable","name":"oldFacetAddressAndSelectorPosition","nameLocation":"7162:34:37","nodeType":"VariableDeclaration","scope":10126,"src":"7123:73:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"},"typeName":{"id":10041,"nodeType":"UserDefinedTypeName","pathNode":{"id":10040,"name":"FacetAddressAndSelectorPosition","nameLocations":["7123:31:37"],"nodeType":"IdentifierPath","referencedDeclaration":9575,"src":"7123:31:37"},"referencedDeclaration":9575,"src":"7123:31:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}},"visibility":"internal"}],"id":10047,"initialValue":{"baseExpression":{"expression":{"id":10043,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7199:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7219:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"7199:51:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":10046,"indexExpression":{"id":10045,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"7251:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:61:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7123:137:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10048,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10042,"src":"7278:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":10049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7313:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"7278:47:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":10052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7337:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10050,"name":"address","nodeType":"ElementaryTypeName","src":"7329:7:37","typeDescriptions":{}}},"id":10053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7278:61:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10060,"nodeType":"IfStatement","src":"7274:153:37","trueBody":{"id":10059,"nodeType":"Block","src":"7341:86:37","statements":[{"errorCall":{"arguments":[{"id":10056,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"7403:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":10055,"name":"CannotRemoveFunctionThatDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9556,"src":"7366:36:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":10057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7366:46:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10058,"nodeType":"RevertStatement","src":"7359:53:37"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10061,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10042,"src":"7538:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":10062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7573:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"7538:47:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":10065,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7597:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$10200","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$10200","typeString":"library LibDiamond"}],"id":10064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7589:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10063,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:37","typeDescriptions":{}}},"id":10066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7538:64:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10073,"nodeType":"IfStatement","src":"7534:149:37","trueBody":{"id":10072,"nodeType":"Block","src":"7604:79:37","statements":[{"errorCall":{"arguments":[{"id":10069,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"7659:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":10068,"name":"CannotRemoveImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9560,"src":"7629:29:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":10070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10071,"nodeType":"RevertStatement","src":"7622:46:37"}]}},{"expression":{"id":10075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"7747:15:37","subExpression":{"id":10074,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7749:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10076,"nodeType":"ExpressionStatement","src":"7747:15:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10077,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10042,"src":"7780:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":10078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7815:16:37","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":9574,"src":"7780:51:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10079,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7835:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7780:68:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10108,"nodeType":"IfStatement","src":"7776:412:37","trueBody":{"id":10107,"nodeType":"Block","src":"7850:338:37","statements":[{"assignments":[10082],"declarations":[{"constant":false,"id":10082,"mutability":"mutable","name":"lastSelector","nameLocation":"7875:12:37","nodeType":"VariableDeclaration","scope":10107,"src":"7868:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10081,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7868:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":10087,"initialValue":{"baseExpression":{"expression":{"id":10083,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7890:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7893:9:37","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"7890:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":10086,"indexExpression":{"id":10085,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7903:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:27:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7868:49:37"},{"expression":{"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10088,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7935:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:37","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"7935:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":10093,"indexExpression":{"expression":{"id":10090,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10042,"src":"7948:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":10091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7983:16:37","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":9574,"src":"7948:51:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7935:65:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10094,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10082,"src":"8003:12:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7935:80:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":10096,"nodeType":"ExpressionStatement","src":"7935:80:37"},{"expression":{"id":10105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":10097,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"8033:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8036:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"8033:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":10101,"indexExpression":{"id":10099,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10082,"src":"8068:12:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8033:48:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":10102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8082:16:37","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":9574,"src":"8033:65:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10103,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10042,"src":"8101:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":10104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8157:16:37","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":9574,"src":"8101:72:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8033:140:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":10106,"nodeType":"ExpressionStatement","src":"8033:140:37"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10109,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"8237:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8240:9:37","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":9583,"src":"8237:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":10113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8250:3:37","memberName":"pop","nodeType":"MemberAccess","src":"8237:16:37","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer)"}},"id":10114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10115,"nodeType":"ExpressionStatement","src":"8237:18:37"},{"expression":{"id":10120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8269:51:37","subExpression":{"baseExpression":{"expression":{"id":10116,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"8276:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":10117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8279:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"8276:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":10119,"indexExpression":{"id":10118,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"8311:8:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8276:44:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10121,"nodeType":"ExpressionStatement","src":"8269:51:37"},{"id":10125,"nodeType":"UncheckedBlock","src":"8334:58:37","statements":[{"expression":{"id":10123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8362:15:37","subExpression":{"id":10122,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10029,"src":"8364:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10124,"nodeType":"ExpressionStatement","src":"8362:15:37"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10031,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10029,"src":"7022:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10032,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10024,"src":"7038:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7022:18:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10127,"initializationExpression":{"assignments":[10029],"declarations":[{"constant":false,"id":10029,"mutability":"mutable","name":"selectorIndex","nameLocation":"7007:13:37","nodeType":"VariableDeclaration","scope":10127,"src":"6999:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10028,"name":"uint256","nodeType":"ElementaryTypeName","src":"6999:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10030,"nodeType":"VariableDeclarationStatement","src":"6999:21:37"},"nodeType":"ForStatement","src":"6994:1408:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeFunctions","nameLocation":"6621:15:37","parameters":{"id":9997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9993,"mutability":"mutable","name":"_facetAddress","nameLocation":"6645:13:37","nodeType":"VariableDeclaration","scope":10129,"src":"6637:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9992,"name":"address","nodeType":"ElementaryTypeName","src":"6637:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9996,"mutability":"mutable","name":"_functionSelectors","nameLocation":"6676:18:37","nodeType":"VariableDeclaration","scope":10129,"src":"6660:34:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":9994,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6660:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9995,"nodeType":"ArrayTypeName","src":"6660:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"6636:59:37"},"returnParameters":{"id":9998,"nodeType":"ParameterList","parameters":[],"src":"6705:0:37"},"scope":10200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10177,"nodeType":"FunctionDefinition","src":"8414:888:37","nodes":[],"body":{"id":10176,"nodeType":"Block","src":"8492:810:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10136,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"8506:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":10139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8515:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10137,"name":"address","nodeType":"ElementaryTypeName","src":"8515:7:37","typeDescriptions":{}}},"id":10140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8515:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8506:19:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10144,"nodeType":"IfStatement","src":"8502:56:37","trueBody":{"id":10143,"nodeType":"Block","src":"8527:31:37","statements":[{"functionReturnParameters":10135,"id":10142,"nodeType":"Return","src":"8541:7:37"}]}},{"expression":{"arguments":[{"id":10146,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"8590:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465","id":10147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8597:39:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""},"value":"diamondCut: _init address has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""}],"id":10145,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"8567:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":10148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:70:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10149,"nodeType":"ExpressionStatement","src":"8567:70:37"},{"assignments":[10151,10153],"declarations":[{"constant":false,"id":10151,"mutability":"mutable","name":"success","nameLocation":"8706:7:37","nodeType":"VariableDeclaration","scope":10176,"src":"8701:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10150,"name":"bool","nodeType":"ElementaryTypeName","src":"8701:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10153,"mutability":"mutable","name":"error","nameLocation":"8728:5:37","nodeType":"VariableDeclaration","scope":10176,"src":"8715:18:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10152,"name":"bytes","nodeType":"ElementaryTypeName","src":"8715:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10158,"initialValue":{"arguments":[{"id":10156,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10133,"src":"8756:9:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10154,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"8737:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:12:37","memberName":"delegatecall","nodeType":"MemberAccess","src":"8737:18:37","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":10157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:29:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8700:66:37"},{"condition":{"id":10160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8826:8:37","subExpression":{"id":10159,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"8827:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10175,"nodeType":"IfStatement","src":"8822:474:37","trueBody":{"id":10174,"nodeType":"Block","src":"8836:460:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10161,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10153,"src":"8911:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8917:6:37","memberName":"length","nodeType":"MemberAccess","src":"8911:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8927:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8911:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10172,"nodeType":"Block","src":"9198:88:37","statements":[{"errorCall":{"arguments":[{"id":10168,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"9254:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10169,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10133,"src":"9261:9:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10167,"name":"InitializationFunctionReverted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9523,"src":"9223:30:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":10170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9223:48:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10171,"nodeType":"RevertStatement","src":"9216:55:37"}]},"id":10173,"nodeType":"IfStatement","src":"8907:379:37","trueBody":{"id":10166,"nodeType":"Block","src":"8930:262:37","statements":[{"AST":{"nodeType":"YulBlock","src":"9043:135:37","statements":[{"nodeType":"YulVariableDeclaration","src":"9065:35:37","value":{"arguments":[{"name":"error","nodeType":"YulIdentifier","src":"9094:5:37"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9088:5:37"},"nodeType":"YulFunctionCall","src":"9088:12:37"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9069:15:37","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9132:2:37","type":"","value":"32"},{"name":"error","nodeType":"YulIdentifier","src":"9136:5:37"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9128:3:37"},"nodeType":"YulFunctionCall","src":"9128:14:37"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9144:15:37"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9121:6:37"},"nodeType":"YulFunctionCall","src":"9121:39:37"},"nodeType":"YulExpressionStatement","src":"9121:39:37"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10153,"isOffset":false,"isSlot":false,"src":"9094:5:37","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"9136:5:37","valueSize":1}],"id":10165,"nodeType":"InlineAssembly","src":"9034:144:37"}]}}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"initializeDiamondCut","nameLocation":"8423:20:37","parameters":{"id":10134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10131,"mutability":"mutable","name":"_init","nameLocation":"8452:5:37","nodeType":"VariableDeclaration","scope":10177,"src":"8444:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10130,"name":"address","nodeType":"ElementaryTypeName","src":"8444:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10133,"mutability":"mutable","name":"_calldata","nameLocation":"8472:9:37","nodeType":"VariableDeclaration","scope":10177,"src":"8459:22:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10132,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8443:39:37"},"returnParameters":{"id":10135,"nodeType":"ParameterList","parameters":[],"src":"8492:0:37"},"scope":10200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10199,"nodeType":"FunctionDefinition","src":"9308:320:37","nodes":[],"body":{"id":10198,"nodeType":"Block","src":"9402:226:37","nodes":[],"statements":[{"assignments":[10185],"declarations":[{"constant":false,"id":10185,"mutability":"mutable","name":"contractSize","nameLocation":"9420:12:37","nodeType":"VariableDeclaration","scope":10198,"src":"9412:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10184,"name":"uint256","nodeType":"ElementaryTypeName","src":"9412:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10186,"nodeType":"VariableDeclarationStatement","src":"9412:20:37"},{"AST":{"nodeType":"YulBlock","src":"9451:62:37","statements":[{"nodeType":"YulAssignment","src":"9465:38:37","value":{"arguments":[{"name":"_contract","nodeType":"YulIdentifier","src":"9493:9:37"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"9481:11:37"},"nodeType":"YulFunctionCall","src":"9481:22:37"},"variableNames":[{"name":"contractSize","nodeType":"YulIdentifier","src":"9465:12:37"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10179,"isOffset":false,"isSlot":false,"src":"9493:9:37","valueSize":1},{"declaration":10185,"isOffset":false,"isSlot":false,"src":"9465:12:37","valueSize":1}],"id":10187,"nodeType":"InlineAssembly","src":"9442:71:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10188,"name":"contractSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10185,"src":"9526:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9542:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9526:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10197,"nodeType":"IfStatement","src":"9522:100:37","trueBody":{"id":10196,"nodeType":"Block","src":"9545:77:37","statements":[{"errorCall":{"arguments":[{"id":10192,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10179,"src":"9586:9:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10193,"name":"_errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10181,"src":"9597:13:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10191,"name":"NoBytecodeAtAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"9566:19:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) pure"}},"id":10194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9566:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10195,"nodeType":"RevertStatement","src":"9559:52:37"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceHasContractCode","nameLocation":"9317:22:37","parameters":{"id":10182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10179,"mutability":"mutable","name":"_contract","nameLocation":"9348:9:37","nodeType":"VariableDeclaration","scope":10199,"src":"9340:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10178,"name":"address","nodeType":"ElementaryTypeName","src":"9340:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10181,"mutability":"mutable","name":"_errorMessage","nameLocation":"9373:13:37","nodeType":"VariableDeclaration","scope":10199,"src":"9359:27:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10180,"name":"string","nodeType":"ElementaryTypeName","src":"9359:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9339:48:37"},"returnParameters":{"id":10183,"nodeType":"ParameterList","parameters":[],"src":"9402:0:37"},"scope":10200,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDiamond","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[10200],"name":"LibDiamond","nameLocation":"192:10:37","scope":10201,"usedErrors":[9493,9499,9504,9508,9512,9517,9523,9525,9531,9536,9540,9544,9548,9552,9556,9560]}],"license":"MIT OR Apache-2.0"},"id":37} \ No newline at end of file diff --git a/contracts/out/LibGateway.sol/LibGateway.json b/contracts/out/LibGateway.sol/LibGateway.json deleted file mode 100644 index d23ebaf2a1..0000000000 --- a/contracts/out/LibGateway.sol/LibGateway.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"MembershipUpdated","inputs":[{"name":"","type":"tuple","indexed":false,"internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"NewTopDownMessage","inputs":[{"name":"subnet","type":"address","indexed":true,"internalType":"address"},{"name":"message","type":"tuple","indexed":false,"internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c2b2153020d22190a4f7bcc97960acf80fe69f2427e86fe361ec2b5a6f84f70164736f6c63430008130033","sourceMap":"937:10021:38:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220c2b2153020d22190a4f7bcc97960acf80fe69f2427e86fe361ec2b5a6f84f70164736f6c63430008130033","sourceMap":"937:10021:38:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"MembershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct CrossMsg\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"NewTopDownMessage\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"NewTopDownMessage(address,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"subnet refers to the next \\\"down\\\" subnet that the `CrossMsg.message.to` should be forwarded to.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGateway.sol\":\"LibGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e\",\"dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}],"indexed":false}],"type":"event","name":"MembershipUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"subnet","type":"address","indexed":true},{"internalType":"struct CrossMsg","name":"message","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}],"indexed":false}],"type":"event","name":"NewTopDownMessage","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGateway.sol":"LibGateway"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x6508e7f88a9f005db0bbfb3c6778c253c31a117fba0b55fe379c7f463378d710","urls":["bzz-raw://18d76e001a128a6c585ce0da6ab4f807e888ae96a84808920d18e34f92fddb4e","dweb:/ipfs/QmU76ZuDa3oyhH9v64KirmQd8GGGsDMn37FKmPBCYj1vW8"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGateway.sol","id":11024,"exportedSymbols":{"Address":[1625],"BottomUpCheckpoint":[16133],"CheckpointInfo":[16149],"CrossMsg":[16155],"CrossMsgHelper":[9299],"FilAddress":[298],"FvmAddress":[16179],"FvmAddressHelper":[9480],"GatewayActorStorage":[11147],"ISubnetActor":[8919],"InvalidActorAddress":[6081],"LibGateway":[11023],"LibGatewayActorStorage":[11158],"Membership":[16341],"NotRegisteredSubnet":[6155],"OldConfigurationNumber":[6165],"ParentFinality":[16116],"ParentFinalityAlreadyCommitted":[6171],"Subnet":[16226],"SubnetID":[16209],"SubnetIDHelper":[14630],"Validator":[16334]},"nodeType":"SourceUnit","src":"46:10913:38","nodes":[{"id":10202,"nodeType":"PragmaDirective","src":"46:23:38","nodes":[],"literals":["solidity","0.8",".19"]},{"id":10204,"nodeType":"ImportDirective","src":"71:60:38","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":8920,"symbolAliases":[{"foreign":{"id":10203,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"79:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10207,"nodeType":"ImportDirective","src":"132:94:38","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":10205,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"140:19:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10206,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"161:22:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10210,"nodeType":"ImportDirective","src":"227:55:38","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":10208,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"235:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10209,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16226,"src":"245:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10215,"nodeType":"ImportDirective","src":"283:103:38","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":10211,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"291:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10212,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"301:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10213,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"321:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10214,"name":"CheckpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16149,"src":"337:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10218,"nodeType":"ImportDirective","src":"387:60:38","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":10216,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"395:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10217,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"407:9:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10223,"nodeType":"ImportDirective","src":"448:137:38","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":10219,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"456:22:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10220,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"480:19:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10221,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6081,"src":"501:19:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10222,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"522:30:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10225,"nodeType":"ImportDirective","src":"586:65:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":10224,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"594:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10227,"nodeType":"ImportDirective","src":"652:56:38","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":10226,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"660:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10229,"nodeType":"ImportDirective","src":"709:57:38","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":9300,"symbolAliases":[{"foreign":{"id":10228,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"717:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10231,"nodeType":"ImportDirective","src":"767:57:38","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":10230,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"775:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10233,"nodeType":"ImportDirective","src":"825:53:38","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":10232,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"833:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10235,"nodeType":"ImportDirective","src":"879:56:38","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"./FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":11024,"sourceUnit":9481,"symbolAliases":[{"foreign":{"id":10234,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"887:16:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11023,"nodeType":"ContractDefinition","src":"937:10021:38","nodes":[{"id":10238,"nodeType":"UsingForDirective","src":"962:29:38","nodes":[],"global":false,"libraryName":{"id":10236,"name":"FilAddress","nameLocations":["968:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"968:10:38"},"typeName":{"id":10237,"name":"address","nodeType":"ElementaryTypeName","src":"983:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":10241,"nodeType":"UsingForDirective","src":"996:37:38","nodes":[],"global":false,"libraryName":{"id":10239,"name":"FilAddress","nameLocations":["1002:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"1002:10:38"},"typeName":{"id":10240,"name":"address","nodeType":"ElementaryTypeName","src":"1017:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":10245,"nodeType":"UsingForDirective","src":"1038:38:38","nodes":[],"global":false,"libraryName":{"id":10242,"name":"FvmAddressHelper","nameLocations":["1044:16:38"],"nodeType":"IdentifierPath","referencedDeclaration":9480,"src":"1044:16:38"},"typeName":{"id":10244,"nodeType":"UserDefinedTypeName","pathNode":{"id":10243,"name":"FvmAddress","nameLocations":["1065:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"1065:10:38"},"referencedDeclaration":16179,"src":"1065:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}}},{"id":10249,"nodeType":"UsingForDirective","src":"1081:34:38","nodes":[],"global":false,"libraryName":{"id":10246,"name":"SubnetIDHelper","nameLocations":["1087:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"1087:14:38"},"typeName":{"id":10248,"nodeType":"UserDefinedTypeName","pathNode":{"id":10247,"name":"SubnetID","nameLocations":["1106:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1106:8:38"},"referencedDeclaration":16209,"src":"1106:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":10253,"nodeType":"UsingForDirective","src":"1120:34:38","nodes":[],"global":false,"libraryName":{"id":10250,"name":"CrossMsgHelper","nameLocations":["1126:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":9299,"src":"1126:14:38"},"typeName":{"id":10252,"nodeType":"UserDefinedTypeName","pathNode":{"id":10251,"name":"CrossMsg","nameLocations":["1145:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1145:8:38"},"referencedDeclaration":16155,"src":"1145:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}}},{"id":10258,"nodeType":"EventDefinition","src":"1160:36:38","nodes":[],"anonymous":false,"eventSelector":"7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481","name":"MembershipUpdated","nameLocation":"1166:17:38","parameters":{"id":10257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10256,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10258,"src":"1184:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":10255,"nodeType":"UserDefinedTypeName","pathNode":{"id":10254,"name":"Membership","nameLocations":["1184:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"1184:10:38"},"referencedDeclaration":16341,"src":"1184:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"1183:12:38"}},{"id":10266,"nodeType":"EventDefinition","src":"1309:66:38","nodes":[],"anonymous":false,"documentation":{"id":10259,"nodeType":"StructuredDocumentation","src":"1201:103:38","text":"@dev subnet refers to the next \"down\" subnet that the `CrossMsg.message.to` should be forwarded to."},"eventSelector":"392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096","name":"NewTopDownMessage","nameLocation":"1315:17:38","parameters":{"id":10265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10261,"indexed":true,"mutability":"mutable","name":"subnet","nameLocation":"1349:6:38","nodeType":"VariableDeclaration","scope":10266,"src":"1333:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10260,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10264,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"1366:7:38","nodeType":"VariableDeclaration","scope":10266,"src":"1357:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":10263,"nodeType":"UserDefinedTypeName","pathNode":{"id":10262,"name":"CrossMsg","nameLocations":["1357:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1357:8:38"},"referencedDeclaration":16155,"src":"1357:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1332:42:38"}},{"id":10310,"nodeType":"FunctionDefinition","src":"1596:418:38","nodes":[],"body":{"id":10309,"nodeType":"Block","src":"1752:262:38","nodes":[],"statements":[{"assignments":[10279],"declarations":[{"constant":false,"id":10279,"mutability":"mutable","name":"s","nameLocation":"1790:1:38","nodeType":"VariableDeclaration","scope":10309,"src":"1762:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10278,"nodeType":"UserDefinedTypeName","pathNode":{"id":10277,"name":"GatewayActorStorage","nameLocations":["1762:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"1762:19:38"},"referencedDeclaration":11147,"src":"1762:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10283,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10280,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"1794:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1817:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"1794:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1794:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1762:67:38"},{"expression":{"id":10292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10284,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10272,"src":"1839:5:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":10287,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1871:5:38","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1877:6:38","memberName":"number","nodeType":"MemberAccess","src":"1871:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":10289,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10279,"src":"1885:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1887:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":11142,"src":"1885:21:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":10285,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"1847:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$11023_$","typeString":"type(library LibGateway)"}},"id":10286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1858:12:38","memberName":"getNextEpoch","nodeType":"MemberAccess","referencedDeclaration":11022,"src":"1847:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint64_$returns$_t_uint64_$","typeString":"function (uint256,uint64) pure returns (uint64)"}},"id":10291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1847:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1839:68:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":10293,"nodeType":"ExpressionStatement","src":"1839:68:38"},{"expression":{"id":10299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10294,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10275,"src":"1917:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":10295,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10279,"src":"1930:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1932:19:38","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"1930:21:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":10298,"indexExpression":{"id":10297,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10272,"src":"1952:5:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"1917:41:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":10300,"nodeType":"ExpressionStatement","src":"1917:41:38"},{"expression":{"id":10307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10301,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"1968:6:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1977:30:38","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10302,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10275,"src":"1978:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":10303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1989:8:38","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"1978:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":10304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1998:7:38","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"1978:27:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":10305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1968:39:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10308,"nodeType":"ExpressionStatement","src":"1968:39:38"}]},"documentation":{"id":10267,"nodeType":"StructuredDocumentation","src":"1381:210:38","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"1605:28:38","parameters":{"id":10268,"nodeType":"ParameterList","parameters":[],"src":"1633:2:38"},"returnParameters":{"id":10276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10270,"mutability":"mutable","name":"exists","nameLocation":"1688:6:38","nodeType":"VariableDeclaration","scope":10310,"src":"1683:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10269,"name":"bool","nodeType":"ElementaryTypeName","src":"1683:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10272,"mutability":"mutable","name":"epoch","nameLocation":"1703:5:38","nodeType":"VariableDeclaration","scope":10310,"src":"1696:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10271,"name":"uint64","nodeType":"ElementaryTypeName","src":"1696:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":10275,"mutability":"mutable","name":"checkpoint","nameLocation":"1736:10:38","nodeType":"VariableDeclaration","scope":10310,"src":"1710:36:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":10274,"nodeType":"UserDefinedTypeName","pathNode":{"id":10273,"name":"BottomUpCheckpoint","nameLocations":["1710:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1710:18:38"},"referencedDeclaration":16133,"src":"1710:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1682:65:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10353,"nodeType":"FunctionDefinition","src":"2102:450:38","nodes":[],"body":{"id":10352,"nodeType":"Block","src":"2311:241:38","nodes":[],"statements":[{"assignments":[10326],"declarations":[{"constant":false,"id":10326,"mutability":"mutable","name":"s","nameLocation":"2349:1:38","nodeType":"VariableDeclaration","scope":10352,"src":"2321:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10325,"nodeType":"UserDefinedTypeName","pathNode":{"id":10324,"name":"GatewayActorStorage","nameLocations":["2321:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"2321:19:38"},"referencedDeclaration":11147,"src":"2321:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10327,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"2353:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"2353:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2353:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2321:67:38"},{"expression":{"id":10336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10331,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10319,"src":"2399:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":10332,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"2412:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2414:19:38","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"2412:21:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":10335,"indexExpression":{"id":10334,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"2434:5:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2412:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2399:41:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":10337,"nodeType":"ExpressionStatement","src":"2399:41:38"},{"expression":{"id":10343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10338,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10322,"src":"2450:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":10339,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"2467:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2469:22:38","memberName":"bottomUpCheckpointInfo","nodeType":"MemberAccess","referencedDeclaration":11087,"src":"2467:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo storage ref)"}},"id":10342,"indexExpression":{"id":10341,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"2492:5:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2467:31:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"src":"2450:48:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo storage pointer"}},"id":10344,"nodeType":"ExpressionStatement","src":"2450:48:38"},{"expression":{"id":10350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10345,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10316,"src":"2509:6:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10346,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10319,"src":"2518:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":10347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2529:11:38","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"2518:22:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2544:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2518:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2509:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10351,"nodeType":"ExpressionStatement","src":"2509:36:38"}]},"documentation":{"id":10311,"nodeType":"StructuredDocumentation","src":"2020:77:38","text":"@notice returns the bottom-up checkpoint and its info at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpCheckpointWithInfo","nameLocation":"2111:29:38","parameters":{"id":10314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10313,"mutability":"mutable","name":"epoch","nameLocation":"2157:5:38","nodeType":"VariableDeclaration","scope":10353,"src":"2150:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10312,"name":"uint64","nodeType":"ElementaryTypeName","src":"2150:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2140:28:38"},"returnParameters":{"id":10323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10316,"mutability":"mutable","name":"exists","nameLocation":"2221:6:38","nodeType":"VariableDeclaration","scope":10353,"src":"2216:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10315,"name":"bool","nodeType":"ElementaryTypeName","src":"2216:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10319,"mutability":"mutable","name":"checkpoint","nameLocation":"2256:10:38","nodeType":"VariableDeclaration","scope":10353,"src":"2229:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":10318,"nodeType":"UserDefinedTypeName","pathNode":{"id":10317,"name":"BottomUpCheckpoint","nameLocations":["2229:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"2229:18:38"},"referencedDeclaration":16133,"src":"2229:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":10322,"mutability":"mutable","name":"checkpointInfo","nameLocation":"2291:14:38","nodeType":"VariableDeclaration","scope":10353,"src":"2268:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"},"typeName":{"id":10321,"nodeType":"UserDefinedTypeName","pathNode":{"id":10320,"name":"CheckpointInfo","nameLocations":["2268:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"2268:14:38"},"referencedDeclaration":16149,"src":"2268:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}},"visibility":"internal"}],"src":"2215:91:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10377,"nodeType":"FunctionDefinition","src":"2644:223:38","nodes":[],"body":{"id":10376,"nodeType":"Block","src":"2721:146:38","nodes":[],"statements":[{"assignments":[10363],"declarations":[{"constant":false,"id":10363,"mutability":"mutable","name":"s","nameLocation":"2759:1:38","nodeType":"VariableDeclaration","scope":10376,"src":"2731:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10362,"nodeType":"UserDefinedTypeName","pathNode":{"id":10361,"name":"GatewayActorStorage","nameLocations":["2731:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"2731:19:38"},"referencedDeclaration":11147,"src":"2731:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10367,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10364,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"2763:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2786:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"2763:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2763:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2731:67:38"},{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":10368,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10363,"src":"2815:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2817:19:38","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"2815:21:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":10371,"indexExpression":{"id":10370,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10356,"src":"2837:5:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2815:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":10372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2844:11:38","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"2815:40:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2815:45:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10360,"id":10375,"nodeType":"Return","src":"2808:52:38"}]},"documentation":{"id":10354,"nodeType":"StructuredDocumentation","src":"2558:81:38","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointExists","nameLocation":"2653:24:38","parameters":{"id":10357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10356,"mutability":"mutable","name":"epoch","nameLocation":"2685:5:38","nodeType":"VariableDeclaration","scope":10377,"src":"2678:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10355,"name":"uint64","nodeType":"ElementaryTypeName","src":"2678:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2677:14:38"},"returnParameters":{"id":10360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10377,"src":"2715:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10358,"name":"bool","nodeType":"ElementaryTypeName","src":"2715:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2714:6:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10413,"nodeType":"FunctionDefinition","src":"2932:376:38","nodes":[],"body":{"id":10412,"nodeType":"Block","src":"3080:228:38","nodes":[],"statements":[{"assignments":[10389],"declarations":[{"constant":false,"id":10389,"mutability":"mutable","name":"s","nameLocation":"3118:1:38","nodeType":"VariableDeclaration","scope":10412,"src":"3090:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10388,"nodeType":"UserDefinedTypeName","pathNode":{"id":10387,"name":"GatewayActorStorage","nameLocations":["3090:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3090:19:38"},"referencedDeclaration":11147,"src":"3090:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10390,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"3122:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3145:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"3122:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3122:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3090:67:38"},{"expression":{"id":10401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10394,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10389,"src":"3168:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3170:19:38","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"3168:21:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":10399,"indexExpression":{"expression":{"id":10396,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"3190:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":10397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3201:11:38","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"3190:22:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3168:45:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10400,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"3216:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"src":"3168:58:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":10402,"nodeType":"ExpressionStatement","src":"3168:58:38"},{"expression":{"id":10410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10403,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10389,"src":"3236:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3238:22:38","memberName":"bottomUpCheckpointInfo","nodeType":"MemberAccess","referencedDeclaration":11087,"src":"3236:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo storage ref)"}},"id":10408,"indexExpression":{"expression":{"id":10405,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"3261:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":10406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3272:11:38","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"3261:22:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3236:48:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10409,"name":"checkpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10384,"src":"3287:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo memory"}},"src":"3236:65:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage","typeString":"struct CheckpointInfo storage ref"}},"id":10411,"nodeType":"ExpressionStatement","src":"3236:65:38"}]},"documentation":{"id":10378,"nodeType":"StructuredDocumentation","src":"2873:54:38","text":"@notice stores checkpoint and its info to storage."},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpCheckpointWithInfo","nameLocation":"2941:31:38","parameters":{"id":10385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10381,"mutability":"mutable","name":"checkpoint","nameLocation":"3008:10:38","nodeType":"VariableDeclaration","scope":10413,"src":"2982:36:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":10380,"nodeType":"UserDefinedTypeName","pathNode":{"id":10379,"name":"BottomUpCheckpoint","nameLocations":["2982:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"2982:18:38"},"referencedDeclaration":16133,"src":"2982:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":10384,"mutability":"mutable","name":"checkpointInfo","nameLocation":"3050:14:38","nodeType":"VariableDeclaration","scope":10413,"src":"3028:36:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_memory_ptr","typeString":"struct CheckpointInfo"},"typeName":{"id":10383,"nodeType":"UserDefinedTypeName","pathNode":{"id":10382,"name":"CheckpointInfo","nameLocations":["3028:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"3028:14:38"},"referencedDeclaration":16149,"src":"3028:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}},"visibility":"internal"}],"src":"2972:98:38"},"returnParameters":{"id":10386,"nodeType":"ParameterList","parameters":[],"src":"3080:0:38"},"scope":11023,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10435,"nodeType":"FunctionDefinition","src":"3454:223:38","nodes":[],"body":{"id":10434,"nodeType":"Block","src":"3548:129:38","nodes":[],"statements":[{"assignments":[10424],"declarations":[{"constant":false,"id":10424,"mutability":"mutable","name":"s","nameLocation":"3586:1:38","nodeType":"VariableDeclaration","scope":10434,"src":"3558:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10423,"nodeType":"UserDefinedTypeName","pathNode":{"id":10422,"name":"GatewayActorStorage","nameLocations":["3558:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3558:19:38"},"referencedDeclaration":11147,"src":"3558:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10428,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10425,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"3590:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3613:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"3590:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3590:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3558:67:38"},{"expression":{"baseExpression":{"expression":{"id":10429,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10424,"src":"3642:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:13:38","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":11058,"src":"3642:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":10432,"indexExpression":{"id":10431,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10416,"src":"3658:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3642:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage","typeString":"struct ParentFinality storage ref"}},"functionReturnParameters":10421,"id":10433,"nodeType":"Return","src":"3635:35:38"}]},"documentation":{"id":10414,"nodeType":"StructuredDocumentation","src":"3314:135:38","text":"@notice obtain the ipc parent finality at certain block number\n @param blockNumber - the block number to obtain the finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"3463:17:38","parameters":{"id":10417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10416,"mutability":"mutable","name":"blockNumber","nameLocation":"3489:11:38","nodeType":"VariableDeclaration","scope":10435,"src":"3481:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3481:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3480:21:38"},"returnParameters":{"id":10421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10435,"src":"3525:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":10419,"nodeType":"UserDefinedTypeName","pathNode":{"id":10418,"name":"ParentFinality","nameLocations":["3525:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"3525:14:38"},"referencedDeclaration":16116,"src":"3525:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3524:23:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10455,"nodeType":"FunctionDefinition","src":"3747:221:38","nodes":[],"body":{"id":10454,"nodeType":"Block","src":"3828:140:38","nodes":[],"statements":[{"assignments":[10444],"declarations":[{"constant":false,"id":10444,"mutability":"mutable","name":"s","nameLocation":"3866:1:38","nodeType":"VariableDeclaration","scope":10454,"src":"3838:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10443,"nodeType":"UserDefinedTypeName","pathNode":{"id":10442,"name":"GatewayActorStorage","nameLocations":["3838:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3838:19:38"},"referencedDeclaration":11147,"src":"3838:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10448,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10445,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"3870:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3893:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"3870:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3870:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3838:67:38"},{"expression":{"arguments":[{"expression":{"id":10450,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10444,"src":"3940:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3942:18:38","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":11061,"src":"3940:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10449,"name":"getParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10435,"src":"3922:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$16116_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":10452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3922:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":10441,"id":10453,"nodeType":"Return","src":"3915:46:38"}]},"documentation":{"id":10436,"nodeType":"StructuredDocumentation","src":"3683:59:38","text":"@notice obtain the latest committed ipc parent finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"3756:23:38","parameters":{"id":10437,"nodeType":"ParameterList","parameters":[],"src":"3779:2:38"},"returnParameters":{"id":10441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10455,"src":"3805:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":10439,"nodeType":"UserDefinedTypeName","pathNode":{"id":10438,"name":"ParentFinality","nameLocations":["3805:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"3805:14:38"},"referencedDeclaration":16116,"src":"3805:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3804:23:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10510,"nodeType":"FunctionDefinition","src":"4089:529:38","nodes":[],"body":{"id":10509,"nodeType":"Block","src":"4221:397:38","nodes":[],"statements":[{"assignments":[10467],"declarations":[{"constant":false,"id":10467,"mutability":"mutable","name":"s","nameLocation":"4259:1:38","nodeType":"VariableDeclaration","scope":10509,"src":"4231:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10466,"nodeType":"UserDefinedTypeName","pathNode":{"id":10465,"name":"GatewayActorStorage","nameLocations":["4231:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"4231:19:38"},"referencedDeclaration":11147,"src":"4231:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10471,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10468,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"4263:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4286:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"4263:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4231:67:38"},{"assignments":[10473],"declarations":[{"constant":false,"id":10473,"mutability":"mutable","name":"lastHeight","nameLocation":"4317:10:38","nodeType":"VariableDeclaration","scope":10509,"src":"4309:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10472,"name":"uint256","nodeType":"ElementaryTypeName","src":"4309:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10476,"initialValue":{"expression":{"id":10474,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10467,"src":"4330:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4332:18:38","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":11061,"src":"4330:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4309:41:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10477,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"4364:10:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":10478,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"4377:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":10479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4386:6:38","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":16113,"src":"4377:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4364:28:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10485,"nodeType":"IfStatement","src":"4360:98:38","trueBody":{"id":10484,"nodeType":"Block","src":"4394:64:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10481,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"4415:30:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4415:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10483,"nodeType":"RevertStatement","src":"4408:39:38"}]}},{"expression":{"id":10491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10486,"name":"lastFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10463,"src":"4467:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":10487,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10467,"src":"4482:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4484:13:38","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":11058,"src":"4482:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":10490,"indexExpression":{"id":10489,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"4498:10:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4482:27:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage","typeString":"struct ParentFinality storage ref"}},"src":"4467:42:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality memory"}},"id":10492,"nodeType":"ExpressionStatement","src":"4467:42:38"},{"expression":{"id":10500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10493,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10467,"src":"4520:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4522:13:38","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":11058,"src":"4520:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":10498,"indexExpression":{"expression":{"id":10495,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"4536:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":10496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4545:6:38","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":16113,"src":"4536:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4520:32:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage","typeString":"struct ParentFinality storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10499,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"4555:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality calldata"}},"src":"4520:43:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage","typeString":"struct ParentFinality storage ref"}},"id":10501,"nodeType":"ExpressionStatement","src":"4520:43:38"},{"expression":{"id":10507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10502,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10467,"src":"4573:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4575:18:38","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":11061,"src":"4573:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10505,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"4596:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":10506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4605:6:38","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":16113,"src":"4596:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4573:38:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10508,"nodeType":"ExpressionStatement","src":"4573:38:38"}]},"documentation":{"id":10456,"nodeType":"StructuredDocumentation","src":"3974:110:38","text":"@notice commit the ipc parent finality into storage\n @param finality - the finality to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"4098:20:38","parameters":{"id":10460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10459,"mutability":"mutable","name":"finality","nameLocation":"4152:8:38","nodeType":"VariableDeclaration","scope":10510,"src":"4128:32:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":10458,"nodeType":"UserDefinedTypeName","pathNode":{"id":10457,"name":"ParentFinality","nameLocations":["4128:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"4128:14:38"},"referencedDeclaration":16116,"src":"4128:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4118:48:38"},"returnParameters":{"id":10464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10463,"mutability":"mutable","name":"lastFinality","nameLocation":"4207:12:38","nodeType":"VariableDeclaration","scope":10510,"src":"4185:34:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":10462,"nodeType":"UserDefinedTypeName","pathNode":{"id":10461,"name":"ParentFinality","nameLocations":["4185:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"4185:14:38"},"referencedDeclaration":16116,"src":"4185:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4184:36:38"},"scope":11023,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10664,"nodeType":"FunctionDefinition","src":"4707:1976:38","nodes":[],"body":{"id":10663,"nodeType":"Block","src":"4772:1911:38","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":10518,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"4805:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}],"id":10517,"name":"MembershipUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10258,"src":"4787:17:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Membership_$16341_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":10519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4787:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10520,"nodeType":"EmitStatement","src":"4782:34:38"},{"assignments":[10523],"declarations":[{"constant":false,"id":10523,"mutability":"mutable","name":"s","nameLocation":"4855:1:38","nodeType":"VariableDeclaration","scope":10663,"src":"4827:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10522,"nodeType":"UserDefinedTypeName","pathNode":{"id":10521,"name":"GatewayActorStorage","nameLocations":["4827:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"4827:19:38"},"referencedDeclaration":11147,"src":"4827:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10527,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10524,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"4859:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4882:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"4859:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4859:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4827:67:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10528,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"4964:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4966:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"4964:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4984:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"4964:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5007:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4964:44:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10562,"nodeType":"IfStatement","src":"4960:621:38","trueBody":{"id":10561,"nodeType":"Block","src":"5010:571:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10533,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"5028:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5039:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"5028:30:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":10535,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"5062:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5064:14:38","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"5062:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5079:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"5062:36:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5028:70:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10541,"nodeType":"IfStatement","src":"5024:115:38","trueBody":{"id":10540,"nodeType":"Block","src":"5100:39:38","statements":[{"functionReturnParameters":10516,"id":10539,"nodeType":"Return","src":"5118:7:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10542,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"5252:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5263:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"5252:30:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":10544,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"5285:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5287:14:38","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"5285:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5302:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"5285:36:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5252:69:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10552,"nodeType":"IfStatement","src":"5248:139:38","trueBody":{"id":10551,"nodeType":"Block","src":"5323:64:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10548,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"5348:22:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5348:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10550,"nodeType":"RevertStatement","src":"5341:31:38"}]}},{"condition":{"arguments":[{"id":10554,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"5498:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},{"expression":{"id":10555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"5510:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5512:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"5510:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"},{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}],"id":10553,"name":"membershipEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"5482:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$16341_memory_ptr_$_t_struct$_Membership_$16341_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Membership memory,struct Membership memory) pure returns (bool)"}},"id":10557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5482:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10560,"nodeType":"IfStatement","src":"5478:93:38","trueBody":{"id":10559,"nodeType":"Block","src":"5532:39:38","statements":[{"functionReturnParameters":10516,"id":10558,"nodeType":"Return","src":"5550:7:38"}]}}]}},{"expression":{"id":10568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10563,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"5591:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5593:14:38","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"5591:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10566,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"5610:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5612:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"5610:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"src":"5591:38:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10569,"nodeType":"ExpressionStatement","src":"5591:38:38"},{"assignments":[10571],"declarations":[{"constant":false,"id":10571,"mutability":"mutable","name":"inputLength","nameLocation":"5648:11:38","nodeType":"VariableDeclaration","scope":10663,"src":"5640:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10570,"name":"uint256","nodeType":"ElementaryTypeName","src":"5640:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10575,"initialValue":{"expression":{"expression":{"id":10572,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"5662:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5673:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"5662:21:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5684:6:38","memberName":"length","nodeType":"MemberAccess","src":"5662:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5640:50:38"},{"assignments":[10577],"declarations":[{"constant":false,"id":10577,"mutability":"mutable","name":"storeLength","nameLocation":"5708:11:38","nodeType":"VariableDeclaration","scope":10663,"src":"5700:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10576,"name":"uint256","nodeType":"ElementaryTypeName","src":"5700:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10582,"initialValue":{"expression":{"expression":{"expression":{"id":10578,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"5722:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5724:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"5722:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5742:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"5722:30:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":10581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5753:6:38","memberName":"length","nodeType":"MemberAccess","src":"5722:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5700:59:38"},{"body":{"id":10625,"nodeType":"Block","src":"5956:297:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"5974:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10590,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"5978:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5974:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10619,"nodeType":"Block","src":"6090:94:38","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":10613,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"6144:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6155:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"6144:21:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10616,"indexExpression":{"id":10615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"6166:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6144:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"expression":{"id":10606,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"6108:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6110:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"6108:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6128:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"6108:30:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":10612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6139:4:38","memberName":"push","nodeType":"MemberAccess","src":"6108:35:38","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$_t_struct$_Validator_$16334_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":10617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6108:61:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10618,"nodeType":"ExpressionStatement","src":"6108:61:38"}]},"id":10620,"nodeType":"IfStatement","src":"5970:214:38","trueBody":{"id":10605,"nodeType":"Block","src":"5991:93:38","statements":[{"expression":{"id":10603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":10592,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"6009:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6011:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"6009:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6029:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"6009:30:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":10598,"indexExpression":{"id":10595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"6040:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6009:33:38","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":10599,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"6045:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6056:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"6045:21:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10602,"indexExpression":{"id":10601,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"6067:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6045:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"src":"6009:60:38","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"id":10604,"nodeType":"ExpressionStatement","src":"6009:60:38"}]}},{"id":10624,"nodeType":"UncheckedBlock","src":"6197:46:38","statements":[{"expression":{"id":10622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6225:3:38","subExpression":{"id":10621,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"6227:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10623,"nodeType":"ExpressionStatement","src":"6225:3:38"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"5937:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10587,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"5941:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5937:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10626,"initializationExpression":{"assignments":[10584],"declarations":[{"constant":false,"id":10584,"mutability":"mutable","name":"i","nameLocation":"5934:1:38","nodeType":"VariableDeclaration","scope":10626,"src":"5926:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10583,"name":"uint256","nodeType":"ElementaryTypeName","src":"5926:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10585,"nodeType":"VariableDeclarationStatement","src":"5926:9:38"},"nodeType":"ForStatement","src":"5921:332:38"},{"expression":{"id":10634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":10627,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"6262:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6264:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"6262:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6282:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"6262:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10632,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"6304:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6315:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"6304:30:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6262:72:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":10635,"nodeType":"ExpressionStatement","src":"6262:72:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10636,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"6437:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10637,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"6451:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6437:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10662,"nodeType":"IfStatement","src":"6433:244:38","trueBody":{"id":10661,"nodeType":"Block","src":"6464:213:38","statements":[{"body":{"id":10659,"nodeType":"Block","src":"6527:140:38","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":10646,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"6545:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6547:17:38","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":11071,"src":"6545:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage","typeString":"struct Membership storage ref"}},"id":10651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6565:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"6545:30:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6576:3:38","memberName":"pop","nodeType":"MemberAccess","src":"6545:34:38","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer)"}},"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6545:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10654,"nodeType":"ExpressionStatement","src":"6545:36:38"},{"id":10658,"nodeType":"UncheckedBlock","src":"6599:54:38","statements":[{"expression":{"id":10656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6631:3:38","subExpression":{"id":10655,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10640,"src":"6633:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10657,"nodeType":"ExpressionStatement","src":"6631:3:38"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10643,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10640,"src":"6508:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10644,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"6512:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6508:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10660,"initializationExpression":{"assignments":[10640],"declarations":[{"constant":false,"id":10640,"mutability":"mutable","name":"i","nameLocation":"6491:1:38","nodeType":"VariableDeclaration","scope":10660,"src":"6483:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10639,"name":"uint256","nodeType":"ElementaryTypeName","src":"6483:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10642,"initialValue":{"id":10641,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"6495:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6483:23:38"},"nodeType":"ForStatement","src":"6478:189:38"}]}}]},"documentation":{"id":10511,"nodeType":"StructuredDocumentation","src":"4624:78:38","text":"@notice set the next membership\n @param membership - new membership"},"implemented":true,"kind":"function","modifiers":[],"name":"updateMembership","nameLocation":"4716:16:38","parameters":{"id":10515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10514,"mutability":"mutable","name":"membership","nameLocation":"4751:10:38","nodeType":"VariableDeclaration","scope":10664,"src":"4733:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":10513,"nodeType":"UserDefinedTypeName","pathNode":{"id":10512,"name":"Membership","nameLocations":["4733:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"4733:10:38"},"referencedDeclaration":16341,"src":"4733:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"4732:30:38"},"returnParameters":{"id":10516,"nodeType":"ParameterList","parameters":[],"src":"4772:0:38"},"scope":11023,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10705,"nodeType":"FunctionDefinition","src":"6752:387:38","nodes":[],"body":{"id":10704,"nodeType":"Block","src":"6839:300:38","nodes":[],"statements":[{"assignments":[10674],"declarations":[{"constant":false,"id":10674,"mutability":"mutable","name":"len","nameLocation":"6857:3:38","nodeType":"VariableDeclaration","scope":10704,"src":"6849:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10673,"name":"uint256","nodeType":"ElementaryTypeName","src":"6849:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10678,"initialValue":{"expression":{"expression":{"id":10675,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10668,"src":"6863:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6868:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"6863:15:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6879:6:38","memberName":"length","nodeType":"MemberAccess","src":"6863:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6849:36:38"},{"assignments":[10680],"declarations":[{"constant":false,"id":10680,"mutability":"mutable","name":"totalValidatorsWeight","nameLocation":"6903:21:38","nodeType":"VariableDeclaration","scope":10704,"src":"6895:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10679,"name":"uint256","nodeType":"ElementaryTypeName","src":"6895:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10681,"nodeType":"VariableDeclarationStatement","src":"6895:29:38"},{"body":{"id":10700,"nodeType":"Block","src":"6961:134:38","statements":[{"expression":{"id":10694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10688,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"6975:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":10689,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10668,"src":"7000:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7005:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"7000:15:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10692,"indexExpression":{"id":10691,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10683,"src":"7016:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7000:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"id":10693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7019:6:38","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":16329,"src":"7000:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6975:50:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10695,"nodeType":"ExpressionStatement","src":"6975:50:38"},{"id":10699,"nodeType":"UncheckedBlock","src":"7039:46:38","statements":[{"expression":{"id":10697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7067:3:38","subExpression":{"id":10696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10683,"src":"7069:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10698,"nodeType":"ExpressionStatement","src":"7067:3:38"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10683,"src":"6950:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10686,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10674,"src":"6954:3:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6950:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10701,"initializationExpression":{"assignments":[10683],"declarations":[{"constant":false,"id":10683,"mutability":"mutable","name":"i","nameLocation":"6947:1:38","nodeType":"VariableDeclaration","scope":10701,"src":"6939:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10682,"name":"uint256","nodeType":"ElementaryTypeName","src":"6939:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10684,"nodeType":"VariableDeclarationStatement","src":"6939:9:38"},"nodeType":"ForStatement","src":"6934:161:38"},{"expression":{"id":10702,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"7111:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10672,"id":10703,"nodeType":"Return","src":"7104:28:38"}]},"documentation":{"id":10665,"nodeType":"StructuredDocumentation","src":"6689:58:38","text":"@dev - Computes total weight for a specific membership"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipTotalWeight","nameLocation":"6761:21:38","parameters":{"id":10669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10668,"mutability":"mutable","name":"self","nameLocation":"6801:4:38","nodeType":"VariableDeclaration","scope":10705,"src":"6783:22:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":10667,"nodeType":"UserDefinedTypeName","pathNode":{"id":10666,"name":"Membership","nameLocations":["6783:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"6783:10:38"},"referencedDeclaration":16341,"src":"6783:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6782:24:38"},"returnParameters":{"id":10672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10705,"src":"6830:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10670,"name":"uint256","nodeType":"ElementaryTypeName","src":"6830:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6829:9:38"},"scope":11023,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10773,"nodeType":"FunctionDefinition","src":"7218:561:38","nodes":[],"body":{"id":10772,"nodeType":"Block","src":"7318:461:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10717,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"7332:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7336:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"7332:23:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10719,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"7359:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7363:19:38","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16340,"src":"7359:23:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7332:50:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10725,"nodeType":"IfStatement","src":"7328:93:38","trueBody":{"id":10724,"nodeType":"Block","src":"7384:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":10722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7405:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10716,"id":10723,"nodeType":"Return","src":"7398:12:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10727,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"7456:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}],"id":10726,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10705,"src":"7434:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$16341_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":10728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7434:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":10730,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"7486:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}],"id":10729,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10705,"src":"7464:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$16341_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":10731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7464:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7434:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10736,"nodeType":"IfStatement","src":"7430:99:38","trueBody":{"id":10735,"nodeType":"Block","src":"7492:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":10733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7513:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10716,"id":10734,"nodeType":"Return","src":"7506:12:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10737,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"7542:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7546:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"7542:14:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7557:6:38","memberName":"length","nodeType":"MemberAccess","src":"7542:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":10740,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"7567:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7571:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"7567:14:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":10742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7582:6:38","memberName":"length","nodeType":"MemberAccess","src":"7567:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7542:46:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10747,"nodeType":"IfStatement","src":"7538:89:38","trueBody":{"id":10746,"nodeType":"Block","src":"7590:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":10744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7611:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10716,"id":10745,"nodeType":"Return","src":"7604:12:38"}]}},{"assignments":[10749],"declarations":[{"constant":false,"id":10749,"mutability":"mutable","name":"h1","nameLocation":"7644:2:38","nodeType":"VariableDeclaration","scope":10772,"src":"7636:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7636:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10757,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":10753,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"7670:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7674:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"7670:14:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":10751,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7659:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7663:6:38","memberName":"encode","nodeType":"MemberAccess","src":"7659:10:38","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7659:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10750,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7649:9:38","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7649:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7636:50:38"},{"assignments":[10759],"declarations":[{"constant":false,"id":10759,"mutability":"mutable","name":"h2","nameLocation":"7704:2:38","nodeType":"VariableDeclaration","scope":10772,"src":"7696:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7696:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10767,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":10763,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"7730:3:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership memory"}},"id":10764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7734:10:38","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16338,"src":"7730:14:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":10761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7719:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7723:6:38","memberName":"encode","nodeType":"MemberAccess","src":"7719:10:38","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7719:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10760,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7709:9:38","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7709:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7696:50:38"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10768,"name":"h1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10749,"src":"7764:2:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10769,"name":"h2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"7770:2:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7764:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10716,"id":10771,"nodeType":"Return","src":"7757:15:38"}]},"documentation":{"id":10706,"nodeType":"StructuredDocumentation","src":"7145:68:38","text":"@dev compares two memberships and returns true if they are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipEqual","nameLocation":"7227:15:38","parameters":{"id":10713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10709,"mutability":"mutable","name":"mb1","nameLocation":"7261:3:38","nodeType":"VariableDeclaration","scope":10773,"src":"7243:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":10708,"nodeType":"UserDefinedTypeName","pathNode":{"id":10707,"name":"Membership","nameLocations":["7243:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"7243:10:38"},"referencedDeclaration":16341,"src":"7243:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":10712,"mutability":"mutable","name":"mb2","nameLocation":"7284:3:38","nodeType":"VariableDeclaration","scope":10773,"src":"7266:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_memory_ptr","typeString":"struct Membership"},"typeName":{"id":10711,"nodeType":"UserDefinedTypeName","pathNode":{"id":10710,"name":"Membership","nameLocations":["7266:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"7266:10:38"},"referencedDeclaration":16341,"src":"7266:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"7242:46:38"},"returnParameters":{"id":10716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10773,"src":"7312:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10714,"name":"bool","nodeType":"ElementaryTypeName","src":"7312:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7311:6:38"},"scope":11023,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10852,"nodeType":"FunctionDefinition","src":"7983:689:38","nodes":[],"body":{"id":10851,"nodeType":"Block","src":"8048:624:38","nodes":[],"statements":[{"assignments":[10782],"declarations":[{"constant":false,"id":10782,"mutability":"mutable","name":"s","nameLocation":"8086:1:38","nodeType":"VariableDeclaration","scope":10851,"src":"8058:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10781,"nodeType":"UserDefinedTypeName","pathNode":{"id":10780,"name":"GatewayActorStorage","nameLocations":["8058:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"8058:19:38"},"referencedDeclaration":11147,"src":"8058:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10786,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10783,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"8090:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8113:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"8090:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8090:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8058:67:38"},{"assignments":[10789],"declarations":[{"constant":false,"id":10789,"mutability":"mutable","name":"subnetId","nameLocation":"8151:8:38","nodeType":"VariableDeclaration","scope":10851,"src":"8135:24:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":10788,"nodeType":"UserDefinedTypeName","pathNode":{"id":10787,"name":"SubnetID","nameLocations":["8135:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"8135:8:38"},"referencedDeclaration":16209,"src":"8135:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":10798,"initialValue":{"arguments":[{"expression":{"id":10795,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10782,"src":"8200:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8202:11:38","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"8200:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":10790,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"8162:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":10791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8175:7:38","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8162:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":10792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8183:2:38","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"8162:23:38","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_memory_ptr","typeString":"struct IPCAddress memory"}},"id":10793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8186:8:38","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"8162:32:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":10794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8195:4:38","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":14609,"src":"8162:37:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":10797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8162:52:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"8135:79:38"},{"assignments":[10800,10803],"declarations":[{"constant":false,"id":10800,"mutability":"mutable","name":"registered","nameLocation":"8231:10:38","nodeType":"VariableDeclaration","scope":10851,"src":"8226:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10799,"name":"bool","nodeType":"ElementaryTypeName","src":"8226:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10803,"mutability":"mutable","name":"subnet","nameLocation":"8258:6:38","nodeType":"VariableDeclaration","scope":10851,"src":"8243:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":10802,"nodeType":"UserDefinedTypeName","pathNode":{"id":10801,"name":"Subnet","nameLocations":["8243:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"8243:6:38"},"referencedDeclaration":16226,"src":"8243:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":10807,"initialValue":{"arguments":[{"id":10805,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10789,"src":"8278:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"id":10804,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[10943,10980],"referencedDeclaration":10980,"src":"8268:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":10806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8268:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"8225:62:38"},{"condition":{"id":10809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8302:11:38","subExpression":{"id":10808,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10800,"src":"8303:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10814,"nodeType":"IfStatement","src":"8298:70:38","trueBody":{"id":10813,"nodeType":"Block","src":"8315:53:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10810,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"8336:19:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8336:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10812,"nodeType":"RevertStatement","src":"8329:28:38"}]}},{"assignments":[10816],"declarations":[{"constant":false,"id":10816,"mutability":"mutable","name":"topDownNonce","nameLocation":"8385:12:38","nodeType":"VariableDeclaration","scope":10851,"src":"8378:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10815,"name":"uint64","nodeType":"ElementaryTypeName","src":"8378:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":10819,"initialValue":{"expression":{"id":10817,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10803,"src":"8400:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":10818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8407:12:38","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":16217,"src":"8400:19:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"8378:41:38"},{"expression":{"id":10826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":10820,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"8430:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":10823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8443:7:38","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8430:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":10824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8451:5:38","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":16165,"src":"8430:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10825,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10816,"src":"8459:12:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8430:41:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":10827,"nodeType":"ExpressionStatement","src":"8430:41:38"},{"expression":{"id":10834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10828,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10803,"src":"8481:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":10830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8488:12:38","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":16217,"src":"8481:19:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":10833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10831,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10816,"src":"8503:12:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8518:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8503:16:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8481:38:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":10835,"nodeType":"ExpressionStatement","src":"8481:38:38"},{"expression":{"id":10842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10836,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10803,"src":"8529:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":10838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8536:10:38","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":16215,"src":"8529:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"id":10839,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"8550:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":10840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8563:7:38","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"8550:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":10841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8571:5:38","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"8550:26:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8529:47:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10843,"nodeType":"ExpressionStatement","src":"8529:47:38"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10845,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10789,"src":"8619:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":10846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8628:10:38","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":14069,"src":"8619:19:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":10847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8619:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10848,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"8651:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"id":10844,"name":"NewTopDownMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"8592:17:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_CrossMsg_$16155_memory_ptr_$returns$__$","typeString":"function (address,struct CrossMsg memory)"}},"id":10849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8611:6:38","8642:7:38"],"names":["subnet","message"],"nodeType":"FunctionCall","src":"8592:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10850,"nodeType":"EmitStatement","src":"8587:78:38"}]},"documentation":{"id":10774,"nodeType":"StructuredDocumentation","src":"7785:193:38","text":"@notice commit topdown messages for their execution in the subnet. Adds the message to the subnet struct for future execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitTopDownMsg","nameLocation":"7992:16:38","parameters":{"id":10778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10777,"mutability":"mutable","name":"crossMessage","nameLocation":"8025:12:38","nodeType":"VariableDeclaration","scope":10852,"src":"8009:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":10776,"nodeType":"UserDefinedTypeName","pathNode":{"id":10775,"name":"CrossMsg","nameLocations":["8009:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"8009:8:38"},"referencedDeclaration":16155,"src":"8009:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"8008:30:38"},"returnParameters":{"id":10779,"nodeType":"ParameterList","parameters":[],"src":"8048:0:38"},"scope":11023,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10900,"nodeType":"FunctionDefinition","src":"8875:364:38","nodes":[],"body":{"id":10899,"nodeType":"Block","src":"8941:298:38","nodes":[],"statements":[{"assignments":[10861],"declarations":[{"constant":false,"id":10861,"mutability":"mutable","name":"s","nameLocation":"8979:1:38","nodeType":"VariableDeclaration","scope":10899,"src":"8951:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10860,"nodeType":"UserDefinedTypeName","pathNode":{"id":10859,"name":"GatewayActorStorage","nameLocations":["8951:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"8951:19:38"},"referencedDeclaration":11147,"src":"8951:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10865,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10862,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"8983:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"8983:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8983:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8951:67:38"},{"assignments":[10867],"declarations":[{"constant":false,"id":10867,"mutability":"mutable","name":"epoch","nameLocation":"9035:5:38","nodeType":"VariableDeclaration","scope":10899,"src":"9028:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10866,"name":"uint64","nodeType":"ElementaryTypeName","src":"9028:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":10874,"initialValue":{"arguments":[{"expression":{"id":10869,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9056:5:38","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9062:6:38","memberName":"number","nodeType":"MemberAccess","src":"9056:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":10871,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10861,"src":"9070:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9072:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":11142,"src":"9070:21:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":10868,"name":"getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11022,"src":"9043:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint64_$returns$_t_uint64_$","typeString":"function (uint256,uint64) pure returns (uint64)"}},"id":10873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:49:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"9028:64:38"},{"expression":{"id":10882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":10875,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10856,"src":"9103:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}},"id":10878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9116:7:38","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":16152,"src":"9103:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_memory_ptr","typeString":"struct StorableMsg memory"}},"id":10879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9124:5:38","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":16165,"src":"9103:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10880,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10861,"src":"9132:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9134:13:38","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":11134,"src":"9132:15:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9103:44:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":10883,"nodeType":"ExpressionStatement","src":"9103:44:38"},{"expression":{"arguments":[{"id":10890,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10856,"src":"9189:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"baseExpression":{"expression":{"id":10884,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10861,"src":"9158:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9160:16:38","memberName":"bottomUpMessages","nodeType":"MemberAccess","referencedDeclaration":11094,"src":"9158:18:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg storage ref[] storage ref)"}},"id":10888,"indexExpression":{"id":10886,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10867,"src":"9177:5:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9158:25:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":10889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9184:4:38","memberName":"push","nodeType":"MemberAccess","src":"9158:30:38","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$16155_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":10891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9158:44:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10892,"nodeType":"ExpressionStatement","src":"9158:44:38"},{"expression":{"id":10897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10893,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10861,"src":"9212:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9214:13:38","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":11134,"src":"9212:15:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9212:20:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":10898,"nodeType":"ExpressionStatement","src":"9212:20:38"}]},"documentation":{"id":10853,"nodeType":"StructuredDocumentation","src":"8678:192:38","text":"@notice commit bottom-up messages for their execution in the subnet. Adds the message to the checkpoint for future execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitBottomUpMsg","nameLocation":"8884:17:38","parameters":{"id":10857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10856,"mutability":"mutable","name":"crossMessage","nameLocation":"8918:12:38","nodeType":"VariableDeclaration","scope":10900,"src":"8902:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":10855,"nodeType":"UserDefinedTypeName","pathNode":{"id":10854,"name":"CrossMsg","nameLocations":["8902:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"8902:8:38"},"referencedDeclaration":16155,"src":"8902:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"8901:30:38"},"returnParameters":{"id":10858,"nodeType":"ParameterList","parameters":[],"src":"8941:0:38"},"scope":11023,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10943,"nodeType":"FunctionDefinition","src":"9454:372:38","nodes":[],"body":{"id":10942,"nodeType":"Block","src":"9546:280:38","nodes":[],"statements":[{"assignments":[10913],"declarations":[{"constant":false,"id":10913,"mutability":"mutable","name":"s","nameLocation":"9584:1:38","nodeType":"VariableDeclaration","scope":10942,"src":"9556:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10912,"nodeType":"UserDefinedTypeName","pathNode":{"id":10911,"name":"GatewayActorStorage","nameLocations":["9556:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"9556:19:38"},"referencedDeclaration":11147,"src":"9556:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10917,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10914,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"9588:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9611:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"9588:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9588:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9556:67:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10918,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10903,"src":"9637:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":10921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9654:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9646:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10919,"name":"address","nodeType":"ElementaryTypeName","src":"9646:7:38","typeDescriptions":{}}},"id":10922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9646:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9637:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10928,"nodeType":"IfStatement","src":"9633:78:38","trueBody":{"id":10927,"nodeType":"Block","src":"9658:53:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10924,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6081,"src":"9679:19:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9679:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10926,"nodeType":"RevertStatement","src":"9672:28:38"}]}},{"assignments":[10931],"declarations":[{"constant":false,"id":10931,"mutability":"mutable","name":"subnetId","nameLocation":"9736:8:38","nodeType":"VariableDeclaration","scope":10942,"src":"9720:24:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":10930,"nodeType":"UserDefinedTypeName","pathNode":{"id":10929,"name":"SubnetID","nameLocations":["9720:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"9720:8:38"},"referencedDeclaration":16209,"src":"9720:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":10937,"initialValue":{"arguments":[{"id":10935,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10903,"src":"9776:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":10932,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10913,"src":"9747:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9749:11:38","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":11122,"src":"9747:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":10934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9761:14:38","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":14293,"src":"9747:28:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":10936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9747:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"9720:62:38"},{"expression":{"arguments":[{"id":10939,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10931,"src":"9810:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"id":10938,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[10943,10980],"referencedDeclaration":10980,"src":"9800:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":10940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9800:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$16226_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":10910,"id":10941,"nodeType":"Return","src":"9793:26:38"}]},"documentation":{"id":10901,"nodeType":"StructuredDocumentation","src":"9245:204:38","text":"@notice returns the subnet created by a validator\n @param actor the validator that created the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"9463:9:38","parameters":{"id":10904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10903,"mutability":"mutable","name":"actor","nameLocation":"9481:5:38","nodeType":"VariableDeclaration","scope":10943,"src":"9473:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10902,"name":"address","nodeType":"ElementaryTypeName","src":"9473:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9472:15:38"},"returnParameters":{"id":10910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10906,"mutability":"mutable","name":"found","nameLocation":"9516:5:38","nodeType":"VariableDeclaration","scope":10943,"src":"9511:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10905,"name":"bool","nodeType":"ElementaryTypeName","src":"9511:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10909,"mutability":"mutable","name":"subnet","nameLocation":"9538:6:38","nodeType":"VariableDeclaration","scope":10943,"src":"9523:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":10908,"nodeType":"UserDefinedTypeName","pathNode":{"id":10907,"name":"Subnet","nameLocations":["9523:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"9523:6:38"},"referencedDeclaration":16226,"src":"9523:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"9510:35:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10980,"nodeType":"FunctionDefinition","src":"10022:272:38","nodes":[],"body":{"id":10979,"nodeType":"Block","src":"10125:169:38","nodes":[],"statements":[{"assignments":[10957],"declarations":[{"constant":false,"id":10957,"mutability":"mutable","name":"s","nameLocation":"10163:1:38","nodeType":"VariableDeclaration","scope":10979,"src":"10135:29:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":10956,"nodeType":"UserDefinedTypeName","pathNode":{"id":10955,"name":"GatewayActorStorage","nameLocations":["10135:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"10135:19:38"},"referencedDeclaration":11147,"src":"10135:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":10961,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10958,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"10167:22:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$11158_$","typeString":"type(library LibGatewayActorStorage)"}},"id":10959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10190:10:38","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":11157,"src":"10167:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$11147_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":10960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10167:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10135:67:38"},{"expression":{"id":10969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10962,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10953,"src":"10212:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":10963,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10957,"src":"10221:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":10964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10223:7:38","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":11052,"src":"10221:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":10968,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10965,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10947,"src":"10231:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":10966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10240:6:38","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":14219,"src":"10231:15:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":10967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10231:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10221:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage","typeString":"struct Subnet storage ref"}},"src":"10212:37:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":10970,"nodeType":"ExpressionStatement","src":"10212:37:38"},{"expression":{"id":10977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10971,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10950,"src":"10259:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10267:20:38","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10972,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10953,"src":"10268:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":10973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10275:2:38","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":16225,"src":"10268:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":10974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10278:7:38","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"10268:17:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":10975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10259:28:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10978,"nodeType":"ExpressionStatement","src":"10259:28:38"}]},"documentation":{"id":10944,"nodeType":"StructuredDocumentation","src":"9832:185:38","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"10031:9:38","parameters":{"id":10948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10947,"mutability":"mutable","name":"subnetId","nameLocation":"10057:8:38","nodeType":"VariableDeclaration","scope":10980,"src":"10041:24:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":10946,"nodeType":"UserDefinedTypeName","pathNode":{"id":10945,"name":"SubnetID","nameLocations":["10041:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"10041:8:38"},"referencedDeclaration":16209,"src":"10041:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"10040:26:38"},"returnParameters":{"id":10954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10950,"mutability":"mutable","name":"found","nameLocation":"10095:5:38","nodeType":"VariableDeclaration","scope":10980,"src":"10090:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10949,"name":"bool","nodeType":"ElementaryTypeName","src":"10090:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10953,"mutability":"mutable","name":"subnet","nameLocation":"10117:6:38","nodeType":"VariableDeclaration","scope":10980,"src":"10102:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":10952,"nodeType":"UserDefinedTypeName","pathNode":{"id":10951,"name":"Subnet","nameLocations":["10102:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"10102:6:38"},"referencedDeclaration":16226,"src":"10102:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"10089:35:38"},"scope":11023,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10998,"nodeType":"FunctionDefinition","src":"10446:157:38","nodes":[],"body":{"id":10997,"nodeType":"Block","src":"10544:59:38","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10990,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10983,"src":"10562:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10991,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10985,"src":"10571:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10562:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10561:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":10994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:38","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"10561:35:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10989,"id":10996,"nodeType":"Return","src":"10554:42:38"}]},"documentation":{"id":10981,"nodeType":"StructuredDocumentation","src":"10300:141:38","text":"@notice returns the needed weight value corresponding to the majority percentage\n @dev `majorityPercentage` must be a valid number"},"implemented":true,"kind":"function","modifiers":[],"name":"weightNeeded","nameLocation":"10455:12:38","parameters":{"id":10986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10983,"mutability":"mutable","name":"weight","nameLocation":"10476:6:38","nodeType":"VariableDeclaration","scope":10998,"src":"10468:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10982,"name":"uint256","nodeType":"ElementaryTypeName","src":"10468:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10985,"mutability":"mutable","name":"majorityPercentage","nameLocation":"10492:18:38","nodeType":"VariableDeclaration","scope":10998,"src":"10484:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10984,"name":"uint256","nodeType":"ElementaryTypeName","src":"10484:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10467:44:38"},"returnParameters":{"id":10989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10998,"src":"10535:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10987,"name":"uint256","nodeType":"ElementaryTypeName","src":"10535:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10534:9:38"},"scope":11023,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11022,"nodeType":"FunctionDefinition","src":"10783:173:38","nodes":[],"body":{"id":11021,"nodeType":"Block","src":"10877:79:38","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11010,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11001,"src":"10903:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10896:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":11008,"name":"uint64","nodeType":"ElementaryTypeName","src":"10896:6:38","typeDescriptions":{}}},"id":11011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10896:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":11012,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11003,"src":"10918:11:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10896:33:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":11014,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10895:35:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10933:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10895:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":11017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10894:41:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":11018,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11003,"src":"10938:11:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10894:55:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":11007,"id":11020,"nodeType":"Return","src":"10887:62:38"}]},"documentation":{"id":10999,"nodeType":"StructuredDocumentation","src":"10609:169:38","text":"@notice method that gives the epoch for a given block number and checkpoint period\n @return epoch - the epoch for the given block number and checkpoint period"},"implemented":true,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"10792:12:38","parameters":{"id":11004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11001,"mutability":"mutable","name":"blockNumber","nameLocation":"10813:11:38","nodeType":"VariableDeclaration","scope":11022,"src":"10805:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11000,"name":"uint256","nodeType":"ElementaryTypeName","src":"10805:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11003,"mutability":"mutable","name":"checkPeriod","nameLocation":"10833:11:38","nodeType":"VariableDeclaration","scope":11022,"src":"10826:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11002,"name":"uint64","nodeType":"ElementaryTypeName","src":"10826:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"10804:41:38"},"returnParameters":{"id":11007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11022,"src":"10869:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11005,"name":"uint64","nodeType":"ElementaryTypeName","src":"10869:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"10868:8:38"},"scope":11023,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGateway","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11023],"name":"LibGateway","nameLocation":"945:10:38","scope":11024,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":38} \ No newline at end of file diff --git a/contracts/out/LibGatewayActorStorage.sol/GatewayActorModifiers.json b/contracts/out/LibGatewayActorStorage.sol/GatewayActorModifiers.json deleted file mode 100644 index ec504a88cf..0000000000 --- a/contracts/out/LibGatewayActorStorage.sol/GatewayActorModifiers.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220bffdfd66c27c0a39d595f9efaa4c1e1fe95e0fc57d8c0f09d6750d39528de2f964736f6c63430008130033","sourceMap":"3906:710:39:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bffdfd66c27c0a39d595f9efaa4c1e1fe95e0fc57d8c0f09d6750d39528de2f964736f6c63430008130033","sourceMap":"3906:710:39:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"GatewayActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"GatewayActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":11227,"exportedSymbols":{"AccountHelper":[8968],"BottomUpCheckpoint":[16133],"CheckpointInfo":[16149],"CrossMsg":[16155],"EnumerableSet":[4602],"FilAddress":[298],"GatewayActorModifiers":[11226],"GatewayActorStorage":[11147],"LibGatewayActorStorage":[11158],"Membership":[16341],"NotEnoughFee":[6141],"NotEnoughFunds":[6143],"NotSystemActor":[6159],"ParentFinality":[16116],"ParentValidatorsTracker":[16320],"Subnet":[16226],"SubnetID":[16209]},"nodeType":"SourceUnit","src":"46:4571:39","nodes":[{"id":11025,"nodeType":"PragmaDirective","src":"46:23:39","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11029,"nodeType":"ImportDirective","src":"71:85:39","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11026,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"79:12:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11027,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"93:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11028,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"109:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11034,"nodeType":"ImportDirective","src":"157:103:39","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":11030,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"165:18:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11031,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"185:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11032,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"195:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11033,"name":"CheckpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16149,"src":"211:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11038,"nodeType":"ImportDirective","src":"261:80:39","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11035,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"269:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11036,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16226,"src":"279:6:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11037,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"287:23:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11040,"nodeType":"ImportDirective","src":"342:49:39","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11039,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"350:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11042,"nodeType":"ImportDirective","src":"392:55:39","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":8969,"symbolAliases":[{"foreign":{"id":11041,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8968,"src":"400:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11044,"nodeType":"ImportDirective","src":"448:56:39","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":11043,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"456:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11046,"nodeType":"ImportDirective","src":"505:85:39","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":11045,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"513:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11147,"nodeType":"StructDefinition","src":"592:3114:39","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":11052,"mutability":"mutable","name":"subnets","nameLocation":"711:7:39","nodeType":"VariableDeclaration","scope":11147,"src":"684:34:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":11051,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"692:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"684:26:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11050,"nodeType":"UserDefinedTypeName","pathNode":{"id":11049,"name":"Subnet","nameLocations":["703:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"703:6:39"},"referencedDeclaration":16226,"src":"703:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":11058,"mutability":"mutable","name":"finalitiesMap","nameLocation":"853:13:39","nodeType":"VariableDeclaration","scope":11147,"src":"818:48:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":11057,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11054,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"818:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11056,"nodeType":"UserDefinedTypeName","pathNode":{"id":11055,"name":"ParentFinality","nameLocations":["837:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"837:14:39"},"referencedDeclaration":16116,"src":"837:14:39","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":11061,"mutability":"mutable","name":"latestParentHeight","nameLocation":"932:18:39","nodeType":"VariableDeclaration","scope":11147,"src":"924:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11060,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11067,"mutability":"mutable","name":"postbox","nameLocation":"1180:7:39","nodeType":"VariableDeclaration","scope":11147,"src":"1151:36:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":11066,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1159:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1151:28:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11065,"nodeType":"UserDefinedTypeName","pathNode":{"id":11064,"name":"CrossMsg","nameLocations":["1170:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1170:8:39"},"referencedDeclaration":16155,"src":"1170:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"currentMembership","nameLocation":"1263:17:39","nodeType":"VariableDeclaration","scope":11147,"src":"1252:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"},"typeName":{"id":11070,"nodeType":"UserDefinedTypeName","pathNode":{"id":11069,"name":"Membership","nameLocations":["1252:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"1252:10:39"},"referencedDeclaration":16341,"src":"1252:10:39","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":11075,"mutability":"mutable","name":"lastMembership","nameLocation":"1370:14:39","nodeType":"VariableDeclaration","scope":11147,"src":"1359:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"},"typeName":{"id":11074,"nodeType":"UserDefinedTypeName","pathNode":{"id":11073,"name":"Membership","nameLocations":["1359:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"1359:10:39"},"referencedDeclaration":16341,"src":"1359:10:39","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":11081,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1549:19:39","nodeType":"VariableDeclaration","scope":11147,"src":"1511:57:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"typeName":{"id":11080,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11077,"name":"uint64","nodeType":"ElementaryTypeName","src":"1519:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1511:37:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11079,"nodeType":"UserDefinedTypeName","pathNode":{"id":11078,"name":"BottomUpCheckpoint","nameLocations":["1529:18:39"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1529:18:39"},"referencedDeclaration":16133,"src":"1529:18:39","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":11087,"mutability":"mutable","name":"bottomUpCheckpointInfo","nameLocation":"1723:22:39","nodeType":"VariableDeclaration","scope":11147,"src":"1689:56:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo)"},"typeName":{"id":11086,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11083,"name":"uint64","nodeType":"ElementaryTypeName","src":"1697:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1689:33:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11085,"nodeType":"UserDefinedTypeName","pathNode":{"id":11084,"name":"CheckpointInfo","nameLocations":["1707:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"1707:14:39"},"referencedDeclaration":16149,"src":"1707:14:39","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}}},"visibility":"internal"},{"constant":false,"id":11094,"mutability":"mutable","name":"bottomUpMessages","nameLocation":"1905:16:39","nodeType":"VariableDeclaration","scope":11147,"src":"1875:46:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg[])"},"typeName":{"id":11093,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11089,"name":"uint64","nodeType":"ElementaryTypeName","src":"1883:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1875:29:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":11091,"nodeType":"UserDefinedTypeName","pathNode":{"id":11090,"name":"CrossMsg","nameLocations":["1893:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1893:8:39"},"referencedDeclaration":16155,"src":"1893:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":11092,"nodeType":"ArrayTypeName","src":"1893:10:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"visibility":"internal"},{"constant":false,"id":11097,"mutability":"mutable","name":"bottomUpCheckpointRetentionHeight","nameLocation":"2217:33:39","nodeType":"VariableDeclaration","scope":11147,"src":"2210:40:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11096,"name":"uint64","nodeType":"ElementaryTypeName","src":"2210:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11101,"mutability":"mutable","name":"incompleteCheckpoints","nameLocation":"2381:21:39","nodeType":"VariableDeclaration","scope":11147,"src":"2359:43:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11100,"nodeType":"UserDefinedTypeName","pathNode":{"id":11099,"name":"EnumerableSet.UintSet","nameLocations":["2359:13:39","2373:7:39"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"2359:21:39"},"referencedDeclaration":4472,"src":"2359:21:39","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11107,"mutability":"mutable","name":"bottomUpSignatureSenders","nameLocation":"2548:24:39","nodeType":"VariableDeclaration","scope":11147,"src":"2504:68:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"typeName":{"id":11106,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11103,"name":"uint64","nodeType":"ElementaryTypeName","src":"2512:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2504:43:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11105,"nodeType":"UserDefinedTypeName","pathNode":{"id":11104,"name":"EnumerableSet.AddressSet","nameLocations":["2522:13:39","2536:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"2522:24:39"},"referencedDeclaration":4315,"src":"2522:24:39","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":11114,"mutability":"mutable","name":"bottomUpSignatures","nameLocation":"2690:18:39","nodeType":"VariableDeclaration","scope":11147,"src":"2645:63:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes))"},"typeName":{"id":11113,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11109,"name":"uint64","nodeType":"ElementaryTypeName","src":"2653:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2645:44:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11112,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11110,"name":"address","nodeType":"ElementaryTypeName","src":"2671:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2663:25:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11111,"name":"bytes","nodeType":"ElementaryTypeName","src":"2682:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"internal"},{"constant":false,"id":11118,"mutability":"mutable","name":"subnetKeys","nameLocation":"2803:10:39","nodeType":"VariableDeclaration","scope":11147,"src":"2793:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2793:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11117,"nodeType":"ArrayTypeName","src":"2793:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":11122,"mutability":"mutable","name":"networkName","nameLocation":"2872:11:39","nodeType":"VariableDeclaration","scope":11147,"src":"2863:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":11121,"nodeType":"UserDefinedTypeName","pathNode":{"id":11120,"name":"SubnetID","nameLocations":["2863:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2863:8:39"},"referencedDeclaration":16209,"src":"2863:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":11125,"mutability":"mutable","name":"minStake","nameLocation":"2959:8:39","nodeType":"VariableDeclaration","scope":11147,"src":"2951:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11124,"name":"uint256","nodeType":"ElementaryTypeName","src":"2951:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11128,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"3042:14:39","nodeType":"VariableDeclaration","scope":11147,"src":"3034:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11127,"name":"uint256","nodeType":"ElementaryTypeName","src":"3034:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11131,"mutability":"mutable","name":"majorityPercentage","nameLocation":"3148:18:39","nodeType":"VariableDeclaration","scope":11147,"src":"3142:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11130,"name":"uint8","nodeType":"ElementaryTypeName","src":"3142:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11134,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"3224:13:39","nodeType":"VariableDeclaration","scope":11147,"src":"3217:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11133,"name":"uint64","nodeType":"ElementaryTypeName","src":"3217:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11137,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"3387:19:39","nodeType":"VariableDeclaration","scope":11147,"src":"3380:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11136,"name":"uint64","nodeType":"ElementaryTypeName","src":"3380:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11140,"mutability":"mutable","name":"totalSubnets","nameLocation":"3482:12:39","nodeType":"VariableDeclaration","scope":11147,"src":"3475:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11139,"name":"uint64","nodeType":"ElementaryTypeName","src":"3475:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"3574:19:39","nodeType":"VariableDeclaration","scope":11147,"src":"3567:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11141,"name":"uint64","nodeType":"ElementaryTypeName","src":"3567:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11146,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3686:17:39","nodeType":"VariableDeclaration","scope":11147,"src":"3662:41:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":11145,"nodeType":"UserDefinedTypeName","pathNode":{"id":11144,"name":"ParentValidatorsTracker","nameLocations":["3662:23:39"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"3662:23:39"},"referencedDeclaration":16320,"src":"3662:23:39","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"599:19:39","scope":11227,"visibility":"public"},{"id":11158,"nodeType":"ContractDefinition","src":"3708:196:39","nodes":[{"id":11157,"nodeType":"FunctionDefinition","src":"3745:157:39","nodes":[],"body":{"id":11156,"nodeType":"Block","src":"3822:80:39","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3841:36:39","statements":[{"nodeType":"YulAssignment","src":"3855:12:39","value":{"kind":"number","nodeType":"YulLiteral","src":"3866:1:39","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3855:7:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11151,"isOffset":false,"isSlot":true,"src":"3855:7:39","suffix":"slot","valueSize":1}],"id":11153,"nodeType":"InlineAssembly","src":"3832:45:39"},{"expression":{"id":11154,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11151,"src":"3893:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":11152,"id":11155,"nodeType":"Return","src":"3886:9:39"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3754:10:39","parameters":{"id":11148,"nodeType":"ParameterList","parameters":[],"src":"3764:2:39"},"returnParameters":{"id":11152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11151,"mutability":"mutable","name":"ds","nameLocation":"3818:2:39","nodeType":"VariableDeclaration","scope":11157,"src":"3790:30:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":11150,"nodeType":"UserDefinedTypeName","pathNode":{"id":11149,"name":"GatewayActorStorage","nameLocations":["3790:19:39"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3790:19:39"},"referencedDeclaration":11147,"src":"3790:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3789:32:39"},"scope":11158,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11158],"name":"LibGatewayActorStorage","nameLocation":"3716:22:39","scope":11227,"usedErrors":[]},{"id":11226,"nodeType":"ContractDefinition","src":"3906:710:39","nodes":[{"id":11161,"nodeType":"VariableDeclaration","src":"3943:30:39","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3972:1:39","scope":11226,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":11160,"nodeType":"UserDefinedTypeName","pathNode":{"id":11159,"name":"GatewayActorStorage","nameLocations":["3943:19:39"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3943:19:39"},"referencedDeclaration":11147,"src":"3943:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":11164,"nodeType":"UsingForDirective","src":"3980:29:39","nodes":[],"global":false,"libraryName":{"id":11162,"name":"FilAddress","nameLocations":["3986:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"3986:10:39"},"typeName":{"id":11163,"name":"address","nodeType":"ElementaryTypeName","src":"4001:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":11167,"nodeType":"UsingForDirective","src":"4014:37:39","nodes":[],"global":false,"libraryName":{"id":11165,"name":"FilAddress","nameLocations":["4020:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"4020:10:39"},"typeName":{"id":11166,"name":"address","nodeType":"ElementaryTypeName","src":"4035:15:39","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11170,"nodeType":"UsingForDirective","src":"4056:32:39","nodes":[],"global":false,"libraryName":{"id":11168,"name":"AccountHelper","nameLocations":["4062:13:39"],"nodeType":"IdentifierPath","referencedDeclaration":8968,"src":"4062:13:39"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"4080:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":11194,"nodeType":"FunctionDefinition","src":"4094:216:39","nodes":[],"body":{"id":11193,"nodeType":"Block","src":"4142:168:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11175,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11172,"src":"4156:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":11176,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4162:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":11177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4164:14:39","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":11128,"src":"4162:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4156:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11183,"nodeType":"IfStatement","src":"4152:74:39","trueBody":{"id":11182,"nodeType":"Block","src":"4180:46:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11179,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"4201:12:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4201:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11181,"nodeType":"RevertStatement","src":"4194:21:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11184,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4239:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4243:5:39","memberName":"value","nodeType":"MemberAccess","src":"4239:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11186,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11172,"src":"4251:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11192,"nodeType":"IfStatement","src":"4235:69:39","trueBody":{"id":11191,"nodeType":"Block","src":"4256:48:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11188,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4277:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4277:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11190,"nodeType":"RevertStatement","src":"4270:23:39"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4103:11:39","parameters":{"id":11173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11172,"mutability":"mutable","name":"fee","nameLocation":"4123:3:39","nodeType":"VariableDeclaration","scope":11194,"src":"4115:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11171,"name":"uint256","nodeType":"ElementaryTypeName","src":"4115:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4114:13:39"},"returnParameters":{"id":11174,"nodeType":"ParameterList","parameters":[],"src":"4142:0:39"},"scope":11226,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11208,"nodeType":"FunctionDefinition","src":"4316:138:39","nodes":[],"body":{"id":11207,"nodeType":"Block","src":"4357:97:39","nodes":[],"statements":[{"condition":{"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4371:27:39","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11197,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4372:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4376:6:39","memberName":"sender","nodeType":"MemberAccess","src":"4372:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4383:13:39","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":8967,"src":"4372:24:39","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4372:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11206,"nodeType":"IfStatement","src":"4367:81:39","trueBody":{"id":11205,"nodeType":"Block","src":"4400:48:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11202,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"4421:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4421:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11204,"nodeType":"RevertStatement","src":"4414:23:39"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4325:16:39","parameters":{"id":11195,"nodeType":"ParameterList","parameters":[],"src":"4341:2:39"},"returnParameters":{"id":11196,"nodeType":"ParameterList","parameters":[],"src":"4357:0:39"},"scope":11226,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":11215,"nodeType":"ModifierDefinition","src":"4460:73:39","nodes":[],"body":{"id":11214,"nodeType":"Block","src":"4487:46:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11210,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11208,"src":"4497:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":11211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11212,"nodeType":"ExpressionStatement","src":"4497:18:39"},{"id":11213,"nodeType":"PlaceholderStatement","src":"4525:1:39"}]},"name":"systemActorOnly","nameLocation":"4469:15:39","parameters":{"id":11209,"nodeType":"ParameterList","parameters":[],"src":"4484:2:39"},"virtual":false,"visibility":"internal"},{"id":11225,"nodeType":"ModifierDefinition","src":"4539:75:39","nodes":[],"body":{"id":11224,"nodeType":"Block","src":"4570:44:39","nodes":[],"statements":[{"expression":{"arguments":[{"id":11220,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11217,"src":"4592:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11219,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"4580:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":11221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4580:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11222,"nodeType":"ExpressionStatement","src":"4580:16:39"},{"id":11223,"nodeType":"PlaceholderStatement","src":"4606:1:39"}]},"name":"validFee","nameLocation":"4548:8:39","parameters":{"id":11218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11217,"mutability":"mutable","name":"fee","nameLocation":"4565:3:39","nodeType":"VariableDeclaration","scope":11225,"src":"4557:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11216,"name":"uint256","nodeType":"ElementaryTypeName","src":"4557:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4556:13:39"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[11226],"name":"GatewayActorModifiers","nameLocation":"3915:21:39","scope":11227,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":39} \ No newline at end of file diff --git a/contracts/out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json b/contracts/out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json deleted file mode 100644 index 033b7db6f2..0000000000 --- a/contracts/out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204dc9d6c22180dd87e3adc810e527585a85ad215bf902c45dda57183492bdeb9a64736f6c63430008130033","sourceMap":"3708:196:39:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212204dc9d6c22180dd87e3adc810e527585a85ad215bf902c45dda57183492bdeb9a64736f6c63430008130033","sourceMap":"3708:196:39:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"LibGatewayActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"LibGatewayActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":11227,"exportedSymbols":{"AccountHelper":[8968],"BottomUpCheckpoint":[16133],"CheckpointInfo":[16149],"CrossMsg":[16155],"EnumerableSet":[4602],"FilAddress":[298],"GatewayActorModifiers":[11226],"GatewayActorStorage":[11147],"LibGatewayActorStorage":[11158],"Membership":[16341],"NotEnoughFee":[6141],"NotEnoughFunds":[6143],"NotSystemActor":[6159],"ParentFinality":[16116],"ParentValidatorsTracker":[16320],"Subnet":[16226],"SubnetID":[16209]},"nodeType":"SourceUnit","src":"46:4571:39","nodes":[{"id":11025,"nodeType":"PragmaDirective","src":"46:23:39","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11029,"nodeType":"ImportDirective","src":"71:85:39","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11026,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"79:12:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11027,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"93:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11028,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"109:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11034,"nodeType":"ImportDirective","src":"157:103:39","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":11030,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"165:18:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11031,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"185:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11032,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"195:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11033,"name":"CheckpointInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16149,"src":"211:14:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11038,"nodeType":"ImportDirective","src":"261:80:39","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11035,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"269:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11036,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16226,"src":"279:6:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11037,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"287:23:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11040,"nodeType":"ImportDirective","src":"342:49:39","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11039,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"350:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11042,"nodeType":"ImportDirective","src":"392:55:39","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":8969,"symbolAliases":[{"foreign":{"id":11041,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8968,"src":"400:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11044,"nodeType":"ImportDirective","src":"448:56:39","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":299,"symbolAliases":[{"foreign":{"id":11043,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"456:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11046,"nodeType":"ImportDirective","src":"505:85:39","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":11227,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":11045,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"513:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11147,"nodeType":"StructDefinition","src":"592:3114:39","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":11052,"mutability":"mutable","name":"subnets","nameLocation":"711:7:39","nodeType":"VariableDeclaration","scope":11147,"src":"684:34:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":11051,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"692:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"684:26:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$16226_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11050,"nodeType":"UserDefinedTypeName","pathNode":{"id":11049,"name":"Subnet","nameLocations":["703:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":16226,"src":"703:6:39"},"referencedDeclaration":16226,"src":"703:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$16226_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":11058,"mutability":"mutable","name":"finalitiesMap","nameLocation":"853:13:39","nodeType":"VariableDeclaration","scope":11147,"src":"818:48:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":11057,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11054,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"818:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$16116_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11056,"nodeType":"UserDefinedTypeName","pathNode":{"id":11055,"name":"ParentFinality","nameLocations":["837:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":16116,"src":"837:14:39"},"referencedDeclaration":16116,"src":"837:14:39","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$16116_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":11061,"mutability":"mutable","name":"latestParentHeight","nameLocation":"932:18:39","nodeType":"VariableDeclaration","scope":11147,"src":"924:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11060,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11067,"mutability":"mutable","name":"postbox","nameLocation":"1180:7:39","nodeType":"VariableDeclaration","scope":11147,"src":"1151:36:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":11066,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1159:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1151:28:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$16155_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11065,"nodeType":"UserDefinedTypeName","pathNode":{"id":11064,"name":"CrossMsg","nameLocations":["1170:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1170:8:39"},"referencedDeclaration":16155,"src":"1170:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"currentMembership","nameLocation":"1263:17:39","nodeType":"VariableDeclaration","scope":11147,"src":"1252:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"},"typeName":{"id":11070,"nodeType":"UserDefinedTypeName","pathNode":{"id":11069,"name":"Membership","nameLocations":["1252:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"1252:10:39"},"referencedDeclaration":16341,"src":"1252:10:39","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":11075,"mutability":"mutable","name":"lastMembership","nameLocation":"1370:14:39","nodeType":"VariableDeclaration","scope":11147,"src":"1359:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"},"typeName":{"id":11074,"nodeType":"UserDefinedTypeName","pathNode":{"id":11073,"name":"Membership","nameLocations":["1359:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":16341,"src":"1359:10:39"},"referencedDeclaration":16341,"src":"1359:10:39","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$16341_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":11081,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1549:19:39","nodeType":"VariableDeclaration","scope":11147,"src":"1511:57:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"typeName":{"id":11080,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11077,"name":"uint64","nodeType":"ElementaryTypeName","src":"1519:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1511:37:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11079,"nodeType":"UserDefinedTypeName","pathNode":{"id":11078,"name":"BottomUpCheckpoint","nameLocations":["1529:18:39"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1529:18:39"},"referencedDeclaration":16133,"src":"1529:18:39","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":11087,"mutability":"mutable","name":"bottomUpCheckpointInfo","nameLocation":"1723:22:39","nodeType":"VariableDeclaration","scope":11147,"src":"1689:56:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo)"},"typeName":{"id":11086,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11083,"name":"uint64","nodeType":"ElementaryTypeName","src":"1697:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1689:33:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_CheckpointInfo_$16149_storage_$","typeString":"mapping(uint64 => struct CheckpointInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11085,"nodeType":"UserDefinedTypeName","pathNode":{"id":11084,"name":"CheckpointInfo","nameLocations":["1707:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":16149,"src":"1707:14:39"},"referencedDeclaration":16149,"src":"1707:14:39","typeDescriptions":{"typeIdentifier":"t_struct$_CheckpointInfo_$16149_storage_ptr","typeString":"struct CheckpointInfo"}}},"visibility":"internal"},{"constant":false,"id":11094,"mutability":"mutable","name":"bottomUpMessages","nameLocation":"1905:16:39","nodeType":"VariableDeclaration","scope":11147,"src":"1875:46:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg[])"},"typeName":{"id":11093,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11089,"name":"uint64","nodeType":"ElementaryTypeName","src":"1883:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1875:29:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_$","typeString":"mapping(uint64 => struct CrossMsg[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":11091,"nodeType":"UserDefinedTypeName","pathNode":{"id":11090,"name":"CrossMsg","nameLocations":["1893:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"1893:8:39"},"referencedDeclaration":16155,"src":"1893:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":11092,"nodeType":"ArrayTypeName","src":"1893:10:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"visibility":"internal"},{"constant":false,"id":11097,"mutability":"mutable","name":"bottomUpCheckpointRetentionHeight","nameLocation":"2217:33:39","nodeType":"VariableDeclaration","scope":11147,"src":"2210:40:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11096,"name":"uint64","nodeType":"ElementaryTypeName","src":"2210:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11101,"mutability":"mutable","name":"incompleteCheckpoints","nameLocation":"2381:21:39","nodeType":"VariableDeclaration","scope":11147,"src":"2359:43:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11100,"nodeType":"UserDefinedTypeName","pathNode":{"id":11099,"name":"EnumerableSet.UintSet","nameLocations":["2359:13:39","2373:7:39"],"nodeType":"IdentifierPath","referencedDeclaration":4472,"src":"2359:21:39"},"referencedDeclaration":4472,"src":"2359:21:39","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$4472_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11107,"mutability":"mutable","name":"bottomUpSignatureSenders","nameLocation":"2548:24:39","nodeType":"VariableDeclaration","scope":11147,"src":"2504:68:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"typeName":{"id":11106,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11103,"name":"uint64","nodeType":"ElementaryTypeName","src":"2512:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2504:43:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11105,"nodeType":"UserDefinedTypeName","pathNode":{"id":11104,"name":"EnumerableSet.AddressSet","nameLocations":["2522:13:39","2536:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"2522:24:39"},"referencedDeclaration":4315,"src":"2522:24:39","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":11114,"mutability":"mutable","name":"bottomUpSignatures","nameLocation":"2690:18:39","nodeType":"VariableDeclaration","scope":11147,"src":"2645:63:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes))"},"typeName":{"id":11113,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11109,"name":"uint64","nodeType":"ElementaryTypeName","src":"2653:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2645:44:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint64 => mapping(address => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11112,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11110,"name":"address","nodeType":"ElementaryTypeName","src":"2671:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2663:25:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11111,"name":"bytes","nodeType":"ElementaryTypeName","src":"2682:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"internal"},{"constant":false,"id":11118,"mutability":"mutable","name":"subnetKeys","nameLocation":"2803:10:39","nodeType":"VariableDeclaration","scope":11147,"src":"2793:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2793:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11117,"nodeType":"ArrayTypeName","src":"2793:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":11122,"mutability":"mutable","name":"networkName","nameLocation":"2872:11:39","nodeType":"VariableDeclaration","scope":11147,"src":"2863:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":11121,"nodeType":"UserDefinedTypeName","pathNode":{"id":11120,"name":"SubnetID","nameLocations":["2863:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2863:8:39"},"referencedDeclaration":16209,"src":"2863:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":11125,"mutability":"mutable","name":"minStake","nameLocation":"2959:8:39","nodeType":"VariableDeclaration","scope":11147,"src":"2951:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11124,"name":"uint256","nodeType":"ElementaryTypeName","src":"2951:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11128,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"3042:14:39","nodeType":"VariableDeclaration","scope":11147,"src":"3034:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11127,"name":"uint256","nodeType":"ElementaryTypeName","src":"3034:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11131,"mutability":"mutable","name":"majorityPercentage","nameLocation":"3148:18:39","nodeType":"VariableDeclaration","scope":11147,"src":"3142:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11130,"name":"uint8","nodeType":"ElementaryTypeName","src":"3142:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11134,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"3224:13:39","nodeType":"VariableDeclaration","scope":11147,"src":"3217:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11133,"name":"uint64","nodeType":"ElementaryTypeName","src":"3217:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11137,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"3387:19:39","nodeType":"VariableDeclaration","scope":11147,"src":"3380:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11136,"name":"uint64","nodeType":"ElementaryTypeName","src":"3380:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11140,"mutability":"mutable","name":"totalSubnets","nameLocation":"3482:12:39","nodeType":"VariableDeclaration","scope":11147,"src":"3475:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11139,"name":"uint64","nodeType":"ElementaryTypeName","src":"3475:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"3574:19:39","nodeType":"VariableDeclaration","scope":11147,"src":"3567:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11141,"name":"uint64","nodeType":"ElementaryTypeName","src":"3567:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11146,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3686:17:39","nodeType":"VariableDeclaration","scope":11147,"src":"3662:41:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":11145,"nodeType":"UserDefinedTypeName","pathNode":{"id":11144,"name":"ParentValidatorsTracker","nameLocations":["3662:23:39"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"3662:23:39"},"referencedDeclaration":16320,"src":"3662:23:39","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"599:19:39","scope":11227,"visibility":"public"},{"id":11158,"nodeType":"ContractDefinition","src":"3708:196:39","nodes":[{"id":11157,"nodeType":"FunctionDefinition","src":"3745:157:39","nodes":[],"body":{"id":11156,"nodeType":"Block","src":"3822:80:39","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3841:36:39","statements":[{"nodeType":"YulAssignment","src":"3855:12:39","value":{"kind":"number","nodeType":"YulLiteral","src":"3866:1:39","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3855:7:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11151,"isOffset":false,"isSlot":true,"src":"3855:7:39","suffix":"slot","valueSize":1}],"id":11153,"nodeType":"InlineAssembly","src":"3832:45:39"},{"expression":{"id":11154,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11151,"src":"3893:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":11152,"id":11155,"nodeType":"Return","src":"3886:9:39"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3754:10:39","parameters":{"id":11148,"nodeType":"ParameterList","parameters":[],"src":"3764:2:39"},"returnParameters":{"id":11152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11151,"mutability":"mutable","name":"ds","nameLocation":"3818:2:39","nodeType":"VariableDeclaration","scope":11157,"src":"3790:30:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":11150,"nodeType":"UserDefinedTypeName","pathNode":{"id":11149,"name":"GatewayActorStorage","nameLocations":["3790:19:39"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3790:19:39"},"referencedDeclaration":11147,"src":"3790:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3789:32:39"},"scope":11158,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11158],"name":"LibGatewayActorStorage","nameLocation":"3716:22:39","scope":11227,"usedErrors":[]},{"id":11226,"nodeType":"ContractDefinition","src":"3906:710:39","nodes":[{"id":11161,"nodeType":"VariableDeclaration","src":"3943:30:39","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3972:1:39","scope":11226,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":11160,"nodeType":"UserDefinedTypeName","pathNode":{"id":11159,"name":"GatewayActorStorage","nameLocations":["3943:19:39"],"nodeType":"IdentifierPath","referencedDeclaration":11147,"src":"3943:19:39"},"referencedDeclaration":11147,"src":"3943:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":11164,"nodeType":"UsingForDirective","src":"3980:29:39","nodes":[],"global":false,"libraryName":{"id":11162,"name":"FilAddress","nameLocations":["3986:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"3986:10:39"},"typeName":{"id":11163,"name":"address","nodeType":"ElementaryTypeName","src":"4001:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":11167,"nodeType":"UsingForDirective","src":"4014:37:39","nodes":[],"global":false,"libraryName":{"id":11165,"name":"FilAddress","nameLocations":["4020:10:39"],"nodeType":"IdentifierPath","referencedDeclaration":298,"src":"4020:10:39"},"typeName":{"id":11166,"name":"address","nodeType":"ElementaryTypeName","src":"4035:15:39","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11170,"nodeType":"UsingForDirective","src":"4056:32:39","nodes":[],"global":false,"libraryName":{"id":11168,"name":"AccountHelper","nameLocations":["4062:13:39"],"nodeType":"IdentifierPath","referencedDeclaration":8968,"src":"4062:13:39"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"4080:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":11194,"nodeType":"FunctionDefinition","src":"4094:216:39","nodes":[],"body":{"id":11193,"nodeType":"Block","src":"4142:168:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11175,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11172,"src":"4156:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":11176,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4162:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$11147_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":11177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4164:14:39","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":11128,"src":"4162:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4156:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11183,"nodeType":"IfStatement","src":"4152:74:39","trueBody":{"id":11182,"nodeType":"Block","src":"4180:46:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11179,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"4201:12:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4201:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11181,"nodeType":"RevertStatement","src":"4194:21:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11184,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4239:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4243:5:39","memberName":"value","nodeType":"MemberAccess","src":"4239:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11186,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11172,"src":"4251:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11192,"nodeType":"IfStatement","src":"4235:69:39","trueBody":{"id":11191,"nodeType":"Block","src":"4256:48:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11188,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4277:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4277:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11190,"nodeType":"RevertStatement","src":"4270:23:39"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4103:11:39","parameters":{"id":11173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11172,"mutability":"mutable","name":"fee","nameLocation":"4123:3:39","nodeType":"VariableDeclaration","scope":11194,"src":"4115:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11171,"name":"uint256","nodeType":"ElementaryTypeName","src":"4115:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4114:13:39"},"returnParameters":{"id":11174,"nodeType":"ParameterList","parameters":[],"src":"4142:0:39"},"scope":11226,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11208,"nodeType":"FunctionDefinition","src":"4316:138:39","nodes":[],"body":{"id":11207,"nodeType":"Block","src":"4357:97:39","nodes":[],"statements":[{"condition":{"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4371:27:39","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11197,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4372:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4376:6:39","memberName":"sender","nodeType":"MemberAccess","src":"4372:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4383:13:39","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":8967,"src":"4372:24:39","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4372:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11206,"nodeType":"IfStatement","src":"4367:81:39","trueBody":{"id":11205,"nodeType":"Block","src":"4400:48:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11202,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"4421:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4421:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11204,"nodeType":"RevertStatement","src":"4414:23:39"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4325:16:39","parameters":{"id":11195,"nodeType":"ParameterList","parameters":[],"src":"4341:2:39"},"returnParameters":{"id":11196,"nodeType":"ParameterList","parameters":[],"src":"4357:0:39"},"scope":11226,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":11215,"nodeType":"ModifierDefinition","src":"4460:73:39","nodes":[],"body":{"id":11214,"nodeType":"Block","src":"4487:46:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11210,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11208,"src":"4497:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":11211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11212,"nodeType":"ExpressionStatement","src":"4497:18:39"},{"id":11213,"nodeType":"PlaceholderStatement","src":"4525:1:39"}]},"name":"systemActorOnly","nameLocation":"4469:15:39","parameters":{"id":11209,"nodeType":"ParameterList","parameters":[],"src":"4484:2:39"},"virtual":false,"visibility":"internal"},{"id":11225,"nodeType":"ModifierDefinition","src":"4539:75:39","nodes":[],"body":{"id":11224,"nodeType":"Block","src":"4570:44:39","nodes":[],"statements":[{"expression":{"arguments":[{"id":11220,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11217,"src":"4592:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11219,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"4580:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":11221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4580:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11222,"nodeType":"ExpressionStatement","src":"4580:16:39"},{"id":11223,"nodeType":"PlaceholderStatement","src":"4606:1:39"}]},"name":"validFee","nameLocation":"4548:8:39","parameters":{"id":11218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11217,"mutability":"mutable","name":"fee","nameLocation":"4565:3:39","nodeType":"VariableDeclaration","scope":11225,"src":"4557:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11216,"name":"uint256","nodeType":"ElementaryTypeName","src":"4557:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4556:13:39"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[11226],"name":"GatewayActorModifiers","nameLocation":"3915:21:39","scope":11227,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":39} \ No newline at end of file diff --git a/contracts/out/LibMaxPQ.sol/LibMaxPQ.json b/contracts/out/LibMaxPQ.sol/LibMaxPQ.json deleted file mode 100644 index 7303bdb238..0000000000 --- a/contracts/out/LibMaxPQ.sol/LibMaxPQ.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220833f527356cf6fdf21a0f5e1f2f2b94df4503a661076fd46a92da4d3d20182e264736f6c63430008130033","sourceMap":"368:6526:48:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220833f527356cf6fdf21a0f5e1f2f2b94df4503a661076fd46a92da4d3d20182e264736f6c63430008130033","sourceMap":"368:6526:48:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare is reversed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMaxPQ.sol\":\"LibMaxPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMaxPQ.sol":"LibMaxPQ"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMaxPQ.sol","id":15249,"exportedSymbols":{"LibMaxPQ":[15248],"LibPQ":[16106],"LibValidatorSet":[12589],"MaxPQ":[14643],"PQ":[15890],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:6849:48","nodes":[{"id":14632,"nodeType":"PragmaDirective","src":"46:23:48","nodes":[],"literals":["solidity","0.8",".19"]},{"id":14634,"nodeType":"ImportDirective","src":"71:50:48","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":15249,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":14633,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"79:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14636,"nodeType":"ImportDirective","src":"122:54:48","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":15249,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":14635,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"130:12:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14639,"nodeType":"ImportDirective","src":"177:38:48","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":15249,"sourceUnit":16107,"symbolAliases":[{"foreign":{"id":14637,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15890,"src":"185:2:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":14638,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16106,"src":"189:5:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14643,"nodeType":"StructDefinition","src":"217:30:48","nodes":[],"canonicalName":"MaxPQ","members":[{"constant":false,"id":14642,"mutability":"mutable","name":"inner","nameLocation":"239:5:48","nodeType":"VariableDeclaration","scope":14643,"src":"236:8:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":14641,"nodeType":"UserDefinedTypeName","pathNode":{"id":14640,"name":"PQ","nameLocations":["236:2:48"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"236:2:48"},"referencedDeclaration":15890,"src":"236:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MaxPQ","nameLocation":"224:5:48","scope":15249,"visibility":"public"},{"id":15248,"nodeType":"ContractDefinition","src":"368:6526:48","nodes":[{"id":14648,"nodeType":"UsingForDirective","src":"391:19:48","nodes":[],"global":false,"libraryName":{"id":14645,"name":"LibPQ","nameLocations":["397:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":16106,"src":"397:5:48"},"typeName":{"id":14647,"nodeType":"UserDefinedTypeName","pathNode":{"id":14646,"name":"PQ","nameLocations":["407:2:48"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"407:2:48"},"referencedDeclaration":15890,"src":"407:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}}},{"id":14652,"nodeType":"UsingForDirective","src":"415:39:48","nodes":[],"global":false,"libraryName":{"id":14649,"name":"LibValidatorSet","nameLocations":["421:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"421:15:48"},"typeName":{"id":14651,"nodeType":"UserDefinedTypeName","pathNode":{"id":14650,"name":"ValidatorSet","nameLocations":["441:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"441:12:48"},"referencedDeclaration":16313,"src":"441:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":14665,"nodeType":"FunctionDefinition","src":"460:107:48","nodes":[],"body":{"id":14664,"nodeType":"Block","src":"528:39:48","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":14660,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14655,"src":"545:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"550:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"545:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"556:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"545:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":14659,"id":14663,"nodeType":"Return","src":"538:22:48"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"469:7:48","parameters":{"id":14656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14655,"mutability":"mutable","name":"self","nameLocation":"491:4:48","nodeType":"VariableDeclaration","scope":14665,"src":"477:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14654,"nodeType":"UserDefinedTypeName","pathNode":{"id":14653,"name":"MaxPQ","nameLocations":["477:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"477:5:48"},"referencedDeclaration":14643,"src":"477:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"src":"476:20:48"},"returnParameters":{"id":14659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14665,"src":"520:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14657,"name":"uint16","nodeType":"ElementaryTypeName","src":"520:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"519:8:48"},"scope":15248,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14682,"nodeType":"FunctionDefinition","src":"573:132:48","nodes":[],"body":{"id":14681,"nodeType":"Block","src":"655:50:48","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":14675,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14668,"src":"672:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"677:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"672:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"683:12:48","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"672:23:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":14679,"indexExpression":{"id":14678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14670,"src":"696:1:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:26:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14674,"id":14680,"nodeType":"Return","src":"665:33:48"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"582:10:48","parameters":{"id":14671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14668,"mutability":"mutable","name":"self","nameLocation":"607:4:48","nodeType":"VariableDeclaration","scope":14682,"src":"593:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14667,"nodeType":"UserDefinedTypeName","pathNode":{"id":14666,"name":"MaxPQ","nameLocations":["593:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"593:5:48"},"referencedDeclaration":14643,"src":"593:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14670,"mutability":"mutable","name":"i","nameLocation":"620:1:48","nodeType":"VariableDeclaration","scope":14682,"src":"613:8:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14669,"name":"uint16","nodeType":"ElementaryTypeName","src":"613:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"592:30:48"},"returnParameters":{"id":14674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14682,"src":"646:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14672,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"645:9:48"},"scope":15248,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14699,"nodeType":"FunctionDefinition","src":"711:140:48","nodes":[],"body":{"id":14698,"nodeType":"Block","src":"797:54:48","nodes":[],"statements":[{"expression":{"arguments":[{"id":14695,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14687,"src":"834:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14692,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"814:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"814:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"825:8:48","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15954,"src":"814:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":14696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"814:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14691,"id":14697,"nodeType":"Return","src":"807:37:48"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"720:8:48","parameters":{"id":14688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14685,"mutability":"mutable","name":"self","nameLocation":"743:4:48","nodeType":"VariableDeclaration","scope":14699,"src":"729:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14684,"nodeType":"UserDefinedTypeName","pathNode":{"id":14683,"name":"MaxPQ","nameLocations":["729:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"729:5:48"},"referencedDeclaration":14643,"src":"729:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14687,"mutability":"mutable","name":"validator","nameLocation":"757:9:48","nodeType":"VariableDeclaration","scope":14699,"src":"749:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14686,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"728:39:48"},"returnParameters":{"id":14691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14699,"src":"791:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14689,"name":"bool","nodeType":"ElementaryTypeName","src":"791:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"790:6:48"},"scope":15248,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14762,"nodeType":"FunctionDefinition","src":"998:459:48","nodes":[],"body":{"id":14761,"nodeType":"Block","src":"1095:362:48","nodes":[],"statements":[{"assignments":[14712],"declarations":[{"constant":false,"id":14712,"mutability":"mutable","name":"size","nameLocation":"1112:4:48","nodeType":"VariableDeclaration","scope":14761,"src":"1105:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14711,"name":"uint16","nodeType":"ElementaryTypeName","src":"1105:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":14718,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":14717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14713,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14703,"src":"1119:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1124:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1119:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1130:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1119:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1119:19:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1105:33:48"},{"expression":{"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":14719,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14703,"src":"1149:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1154:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1149:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1160:12:48","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"1149:23:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":14725,"indexExpression":{"id":14722,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14708,"src":"1173:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1149:34:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14726,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"1186:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1149:41:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":14728,"nodeType":"ExpressionStatement","src":"1149:41:48"},{"expression":{"id":14737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":14729,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14703,"src":"1200:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1205:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1200:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1211:12:48","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"1200:23:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":14735,"indexExpression":{"id":14732,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"1224:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1200:29:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14736,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14708,"src":"1232:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1200:41:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14738,"nodeType":"ExpressionStatement","src":"1200:41:48"},{"expression":{"id":14745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":14739,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14703,"src":"1252:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1257:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1252:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1263:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1252:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14744,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"1270:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1252:22:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":14746,"nodeType":"ExpressionStatement","src":"1252:22:48"},{"assignments":[14748],"declarations":[{"constant":false,"id":14748,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"1293:19:48","nodeType":"VariableDeclaration","scope":14761,"src":"1285:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14747,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14753,"initialValue":{"arguments":[{"id":14751,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14708,"src":"1349:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14706,"src":"1315:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":14750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1326:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"1315:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":14752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1315:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1285:74:48"},{"expression":{"arguments":[{"id":14755,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14703,"src":"1381:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":14756,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14706,"src":"1399:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14757,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"1416:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":14758,"name":"confirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14748,"src":"1429:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14754,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"1369:4:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":14759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1375:4:48","1387:10:48","1411:3:48","1422:5:48"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1369:81:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14760,"nodeType":"ExpressionStatement","src":"1369:81:48"}]},"documentation":{"id":14700,"nodeType":"StructuredDocumentation","src":"857:136:48","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the valdiator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"1007:6:48","parameters":{"id":14709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14703,"mutability":"mutable","name":"self","nameLocation":"1028:4:48","nodeType":"VariableDeclaration","scope":14762,"src":"1014:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14702,"nodeType":"UserDefinedTypeName","pathNode":{"id":14701,"name":"MaxPQ","nameLocations":["1014:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"1014:5:48"},"referencedDeclaration":14643,"src":"1014:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14706,"mutability":"mutable","name":"validators","nameLocation":"1055:10:48","nodeType":"VariableDeclaration","scope":14762,"src":"1034:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":14705,"nodeType":"UserDefinedTypeName","pathNode":{"id":14704,"name":"ValidatorSet","nameLocations":["1034:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"1034:12:48"},"referencedDeclaration":16313,"src":"1034:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":14708,"mutability":"mutable","name":"validator","nameLocation":"1075:9:48","nodeType":"VariableDeclaration","scope":14762,"src":"1067:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14707,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:72:48"},"returnParameters":{"id":14710,"nodeType":"ParameterList","parameters":[],"src":"1095:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14829,"nodeType":"FunctionDefinition","src":"1587:415:48","nodes":[],"body":{"id":14828,"nodeType":"Block","src":"1662:340:48","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":14772,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1672:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1677:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1672:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1683:15:48","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":15924,"src":"1672:26:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":14777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14778,"nodeType":"ExpressionStatement","src":"1672:28:48"},{"assignments":[14780],"declarations":[{"constant":false,"id":14780,"mutability":"mutable","name":"size","nameLocation":"1718:4:48","nodeType":"VariableDeclaration","scope":14828,"src":"1711:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14779,"name":"uint16","nodeType":"ElementaryTypeName","src":"1711:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":14784,"initialValue":{"expression":{"expression":{"id":14781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1725:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1730:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1725:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1736:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1725:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1711:29:48"},{"expression":{"arguments":[{"hexValue":"31","id":14790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1771:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":14791,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14780,"src":"1774:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":14785,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1751:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1756:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1751:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1762:8:48","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"1751:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":14792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1751:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14793,"nodeType":"ExpressionStatement","src":"1751:28:48"},{"expression":{"id":14802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":14794,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1790:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1795:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1790:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1801:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1790:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14799,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14780,"src":"1808:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1815:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1808:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1790:26:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":14803,"nodeType":"ExpressionStatement","src":"1790:26:48"},{"expression":{"arguments":[{"id":14809,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14780,"src":"1841:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":14804,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1826:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1831:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1826:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1837:3:48","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":16008,"src":"1826:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":14810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14811,"nodeType":"ExpressionStatement","src":"1826:20:48"},{"assignments":[14813],"declarations":[{"constant":false,"id":14813,"mutability":"mutable","name":"value","nameLocation":"1865:5:48","nodeType":"VariableDeclaration","scope":14828,"src":"1857:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1857:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14820,"initialValue":{"arguments":[{"id":14817,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14769,"src":"1907:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":14818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1919:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":14814,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1873:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1878:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"1873:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1884:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"1873:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":14819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1873:48:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1857:64:48"},{"expression":{"arguments":[{"id":14822,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14766,"src":"1943:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":14823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14769,"src":"1961:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":14824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1978:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":14825,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14813,"src":"1988:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14821,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15182,"src":"1931:4:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":14826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1937:4:48","1949:10:48","1973:3:48","1981:5:48"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1931:64:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14827,"nodeType":"ExpressionStatement","src":"1931:64:48"}]},"documentation":{"id":14763,"nodeType":"StructuredDocumentation","src":"1463:119:48","text":"@notice Pop the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1596:3:48","parameters":{"id":14770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14766,"mutability":"mutable","name":"self","nameLocation":"1614:4:48","nodeType":"VariableDeclaration","scope":14829,"src":"1600:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14765,"nodeType":"UserDefinedTypeName","pathNode":{"id":14764,"name":"MaxPQ","nameLocations":["1600:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"1600:5:48"},"referencedDeclaration":14643,"src":"1600:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14769,"mutability":"mutable","name":"validators","nameLocation":"1641:10:48","nodeType":"VariableDeclaration","scope":14829,"src":"1620:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":14768,"nodeType":"UserDefinedTypeName","pathNode":{"id":14767,"name":"ValidatorSet","nameLocations":["1620:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"1620:12:48"},"referencedDeclaration":16313,"src":"1620:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1599:53:48"},"returnParameters":{"id":14771,"nodeType":"ParameterList","parameters":[],"src":"1662:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14921,"nodeType":"FunctionDefinition","src":"2137:807:48","nodes":[],"body":{"id":14920,"nodeType":"Block","src":"2243:701:48","nodes":[],"statements":[{"assignments":[14842],"declarations":[{"constant":false,"id":14842,"mutability":"mutable","name":"pos","nameLocation":"2260:3:48","nodeType":"VariableDeclaration","scope":14920,"src":"2253:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14841,"name":"uint16","nodeType":"ElementaryTypeName","src":"2253:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":14848,"initialValue":{"arguments":[{"id":14846,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14838,"src":"2292:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14843,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2266:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2271:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2266:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2277:14:48","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"2266:25:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":14847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2253:49:48"},{"assignments":[14850],"declarations":[{"constant":false,"id":14850,"mutability":"mutable","name":"size","nameLocation":"2319:4:48","nodeType":"VariableDeclaration","scope":14920,"src":"2312:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14849,"name":"uint16","nodeType":"ElementaryTypeName","src":"2312:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":14854,"initialValue":{"expression":{"expression":{"id":14851,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2326:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2331:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2326:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2337:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"2326:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2312:29:48"},{"expression":{"arguments":[{"id":14860,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14842,"src":"2372:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":14861,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14850,"src":"2377:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":14855,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2352:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2357:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2352:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2363:8:48","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"2352:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":14862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2352:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14863,"nodeType":"ExpressionStatement","src":"2352:30:48"},{"expression":{"id":14872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":14864,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2420:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2425:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2420:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2431:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"2420:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":14871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14869,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14850,"src":"2438:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2445:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2438:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2420:26:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":14873,"nodeType":"ExpressionStatement","src":"2420:26:48"},{"expression":{"arguments":[{"id":14879,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14850,"src":"2471:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":14874,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2456:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2461:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2456:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2467:3:48","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":16008,"src":"2456:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":14880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2456:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14881,"nodeType":"ExpressionStatement","src":"2456:20:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":14884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14882,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14850,"src":"2491:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14883,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14842,"src":"2499:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2491:11:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14887,"nodeType":"IfStatement","src":"2487:48:48","trueBody":{"id":14886,"nodeType":"Block","src":"2504:31:48","statements":[{"functionReturnParameters":14840,"id":14885,"nodeType":"Return","src":"2518:7:48"}]}},{"assignments":[14889],"declarations":[{"constant":false,"id":14889,"mutability":"mutable","name":"val","nameLocation":"2611:3:48","nodeType":"VariableDeclaration","scope":14920,"src":"2603:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14888,"name":"uint256","nodeType":"ElementaryTypeName","src":"2603:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14896,"initialValue":{"arguments":[{"id":14893,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14836,"src":"2651:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14894,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14842,"src":"2663:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":14890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2617:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2617:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2628:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"2617:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":14895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2617:50:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2603:64:48"},{"expression":{"arguments":[{"id":14898,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2689:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":14899,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14836,"src":"2707:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14900,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14842,"src":"2724:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":14901,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14889,"src":"2736:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14897,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"2677:4:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":14902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2683:4:48","2695:10:48","2719:3:48","2729:5:48"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2677:64:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14903,"nodeType":"ExpressionStatement","src":"2677:64:48"},{"expression":{"id":14911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14904,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14889,"src":"2807:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14908,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14836,"src":"2847:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14909,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14842,"src":"2859:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":14905,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2813:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2818:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"2813:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2824:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"2813:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":14910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2813:50:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:56:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14912,"nodeType":"ExpressionStatement","src":"2807:56:48"},{"expression":{"arguments":[{"id":14914,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"2885:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":14915,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14836,"src":"2903:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14916,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14842,"src":"2920:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":14917,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14889,"src":"2932:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14913,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15182,"src":"2873:4:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":14918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2879:4:48","2891:10:48","2915:3:48","2925:5:48"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2873:64:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14919,"nodeType":"ExpressionStatement","src":"2873:64:48"}]},"documentation":{"id":14830,"nodeType":"StructuredDocumentation","src":"2008:124:48","text":"@notice Reheapify the heap when the validator is deleted.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"2146:15:48","parameters":{"id":14839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14833,"mutability":"mutable","name":"self","nameLocation":"2176:4:48","nodeType":"VariableDeclaration","scope":14921,"src":"2162:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14832,"nodeType":"UserDefinedTypeName","pathNode":{"id":14831,"name":"MaxPQ","nameLocations":["2162:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"2162:5:48"},"referencedDeclaration":14643,"src":"2162:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14836,"mutability":"mutable","name":"validators","nameLocation":"2203:10:48","nodeType":"VariableDeclaration","scope":14921,"src":"2182:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":14835,"nodeType":"UserDefinedTypeName","pathNode":{"id":14834,"name":"ValidatorSet","nameLocations":["2182:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"2182:12:48"},"referencedDeclaration":16313,"src":"2182:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":14838,"mutability":"mutable","name":"validator","nameLocation":"2223:9:48","nodeType":"VariableDeclaration","scope":14921,"src":"2215:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14837,"name":"address","nodeType":"ElementaryTypeName","src":"2215:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2161:72:48"},"returnParameters":{"id":14840,"nodeType":"ParameterList","parameters":[],"src":"2243:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14956,"nodeType":"FunctionDefinition","src":"3092:316:48","nodes":[],"body":{"id":14955,"nodeType":"Block","src":"3200:208:48","nodes":[],"statements":[{"assignments":[14934],"declarations":[{"constant":false,"id":14934,"mutability":"mutable","name":"pos","nameLocation":"3217:3:48","nodeType":"VariableDeclaration","scope":14955,"src":"3210:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14933,"name":"uint16","nodeType":"ElementaryTypeName","src":"3210:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":14940,"initialValue":{"arguments":[{"id":14938,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14930,"src":"3249:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14935,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14925,"src":"3223:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3228:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"3223:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3234:14:48","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"3223:25:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":14939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3223:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3210:49:48"},{"assignments":[14942],"declarations":[{"constant":false,"id":14942,"mutability":"mutable","name":"val","nameLocation":"3277:3:48","nodeType":"VariableDeclaration","scope":14955,"src":"3269:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14941,"name":"uint256","nodeType":"ElementaryTypeName","src":"3269:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14947,"initialValue":{"arguments":[{"id":14945,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14930,"src":"3317:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14943,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14928,"src":"3283:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":14944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"3283:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":14946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3283:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3269:58:48"},{"expression":{"arguments":[{"id":14949,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14925,"src":"3349:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":14950,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14928,"src":"3367:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14951,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14934,"src":"3384:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":14952,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14942,"src":"3396:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14948,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"3337:4:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":14953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3343:4:48","3355:10:48","3379:3:48","3389:5:48"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3337:64:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14954,"nodeType":"ExpressionStatement","src":"3337:64:48"}]},"documentation":{"id":14922,"nodeType":"StructuredDocumentation","src":"2950:137:48","text":"@notice Reheapify the heap when the collateral of a key has increased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"3101:17:48","parameters":{"id":14931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14925,"mutability":"mutable","name":"self","nameLocation":"3133:4:48","nodeType":"VariableDeclaration","scope":14956,"src":"3119:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14924,"nodeType":"UserDefinedTypeName","pathNode":{"id":14923,"name":"MaxPQ","nameLocations":["3119:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"3119:5:48"},"referencedDeclaration":14643,"src":"3119:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14928,"mutability":"mutable","name":"validators","nameLocation":"3160:10:48","nodeType":"VariableDeclaration","scope":14956,"src":"3139:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":14927,"nodeType":"UserDefinedTypeName","pathNode":{"id":14926,"name":"ValidatorSet","nameLocations":["3139:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"3139:12:48"},"referencedDeclaration":16313,"src":"3139:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":14930,"mutability":"mutable","name":"validator","nameLocation":"3180:9:48","nodeType":"VariableDeclaration","scope":14956,"src":"3172:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14929,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3118:72:48"},"returnParameters":{"id":14932,"nodeType":"ParameterList","parameters":[],"src":"3200:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14991,"nodeType":"FunctionDefinition","src":"3556:316:48","nodes":[],"body":{"id":14990,"nodeType":"Block","src":"3664:208:48","nodes":[],"statements":[{"assignments":[14969],"declarations":[{"constant":false,"id":14969,"mutability":"mutable","name":"pos","nameLocation":"3681:3:48","nodeType":"VariableDeclaration","scope":14990,"src":"3674:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":14968,"name":"uint16","nodeType":"ElementaryTypeName","src":"3674:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":14975,"initialValue":{"arguments":[{"id":14973,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"3713:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14970,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14960,"src":"3687:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":14971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3692:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"3687:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":14972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3698:14:48","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"3687:25:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":14974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3687:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3674:49:48"},{"assignments":[14977],"declarations":[{"constant":false,"id":14977,"mutability":"mutable","name":"val","nameLocation":"3741:3:48","nodeType":"VariableDeclaration","scope":14990,"src":"3733:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3733:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14982,"initialValue":{"arguments":[{"id":14980,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"3781:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14978,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14963,"src":"3747:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":14979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3758:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"3747:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":14981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3747:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3733:58:48"},{"expression":{"arguments":[{"id":14984,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14960,"src":"3813:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":14985,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14963,"src":"3831:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":14986,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14969,"src":"3848:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":14987,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14977,"src":"3860:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14983,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15182,"src":"3801:4:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":14988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3807:4:48","3819:10:48","3843:3:48","3853:5:48"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3801:64:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14989,"nodeType":"ExpressionStatement","src":"3801:64:48"}]},"documentation":{"id":14957,"nodeType":"StructuredDocumentation","src":"3414:137:48","text":"@notice Reheapify the heap when the collateral of a key has decreased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3565:17:48","parameters":{"id":14966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14960,"mutability":"mutable","name":"self","nameLocation":"3597:4:48","nodeType":"VariableDeclaration","scope":14991,"src":"3583:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14959,"nodeType":"UserDefinedTypeName","pathNode":{"id":14958,"name":"MaxPQ","nameLocations":["3583:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"3583:5:48"},"referencedDeclaration":14643,"src":"3583:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14963,"mutability":"mutable","name":"validators","nameLocation":"3624:10:48","nodeType":"VariableDeclaration","scope":14991,"src":"3603:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":14962,"nodeType":"UserDefinedTypeName","pathNode":{"id":14961,"name":"ValidatorSet","nameLocations":["3603:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"3603:12:48"},"referencedDeclaration":16313,"src":"3603:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":14965,"mutability":"mutable","name":"validator","nameLocation":"3644:9:48","nodeType":"VariableDeclaration","scope":14991,"src":"3636:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14964,"name":"address","nodeType":"ElementaryTypeName","src":"3636:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3582:72:48"},"returnParameters":{"id":14967,"nodeType":"ParameterList","parameters":[],"src":"3664:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15032,"nodeType":"FunctionDefinition","src":"4002:309:48","nodes":[],"body":{"id":15031,"nodeType":"Block","src":"4109:202:48","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":15005,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14995,"src":"4119:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4124:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"4119:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4130:15:48","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":15924,"src":"4119:26:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":15010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4119:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15011,"nodeType":"ExpressionStatement","src":"4119:28:48"},{"assignments":[15013],"declarations":[{"constant":false,"id":15013,"mutability":"mutable","name":"addr","nameLocation":"4166:4:48","nodeType":"VariableDeclaration","scope":15031,"src":"4158:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15012,"name":"address","nodeType":"ElementaryTypeName","src":"4158:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15019,"initialValue":{"baseExpression":{"expression":{"expression":{"id":15014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14995,"src":"4173:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4178:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"4173:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4184:12:48","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"4173:23:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":15018,"indexExpression":{"hexValue":"31","id":15017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4197:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4173:26:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4158:41:48"},{"assignments":[15021],"declarations":[{"constant":false,"id":15021,"mutability":"mutable","name":"collateral","nameLocation":"4217:10:48","nodeType":"VariableDeclaration","scope":15031,"src":"4209:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15020,"name":"uint256","nodeType":"ElementaryTypeName","src":"4209:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15026,"initialValue":{"arguments":[{"id":15024,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"4264:4:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15022,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"4230:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":15023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4241:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"4230:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":15025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4230:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4209:60:48"},{"expression":{"components":[{"id":15027,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"4287:4:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15028,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15021,"src":"4293:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15029,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4286:18:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":15004,"id":15030,"nodeType":"Return","src":"4279:25:48"}]},"documentation":{"id":14992,"nodeType":"StructuredDocumentation","src":"3878:119:48","text":"@notice Get the maximum value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"4011:3:48","parameters":{"id":14999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14995,"mutability":"mutable","name":"self","nameLocation":"4029:4:48","nodeType":"VariableDeclaration","scope":15032,"src":"4015:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":14994,"nodeType":"UserDefinedTypeName","pathNode":{"id":14993,"name":"MaxPQ","nameLocations":["4015:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4015:5:48"},"referencedDeclaration":14643,"src":"4015:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":14998,"mutability":"mutable","name":"validators","nameLocation":"4056:10:48","nodeType":"VariableDeclaration","scope":15032,"src":"4035:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":14997,"nodeType":"UserDefinedTypeName","pathNode":{"id":14996,"name":"ValidatorSet","nameLocations":["4035:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4035:12:48"},"referencedDeclaration":16313,"src":"4035:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4014:53:48"},"returnParameters":{"id":15004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15032,"src":"4091:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15000,"name":"address","nodeType":"ElementaryTypeName","src":"4091:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15032,"src":"4100:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15002,"name":"uint256","nodeType":"ElementaryTypeName","src":"4100:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:18:48"},"scope":15248,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15093,"nodeType":"FunctionDefinition","src":"4563:632:48","nodes":[],"body":{"id":15092,"nodeType":"Block","src":"4666:529:48","nodes":[],"statements":[{"assignments":[15046],"declarations":[{"constant":false,"id":15046,"mutability":"mutable","name":"parentPos","nameLocation":"4683:9:48","nodeType":"VariableDeclaration","scope":15092,"src":"4676:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15045,"name":"uint16","nodeType":"ElementaryTypeName","src":"4676:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15047,"nodeType":"VariableDeclarationStatement","src":"4676:16:48"},{"assignments":[15049],"declarations":[{"constant":false,"id":15049,"mutability":"mutable","name":"parentCollateral","nameLocation":"4710:16:48","nodeType":"VariableDeclaration","scope":15092,"src":"4702:24:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15048,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15050,"nodeType":"VariableDeclarationStatement","src":"4702:24:48"},{"body":{"id":15090,"nodeType":"Block","src":"4753:436:48","statements":[{"expression":{"id":15058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15054,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15046,"src":"4767:9:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15055,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15040,"src":"4779:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4786:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4779:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4767:20:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15059,"nodeType":"ExpressionStatement","src":"4767:20:48"},{"expression":{"id":15067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15060,"name":"parentCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15049,"src":"4824:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15064,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15038,"src":"4877:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15065,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15046,"src":"4889:9:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15061,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"4843:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4848:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"4843:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4854:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"4843:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4843:56:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4824:75:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15068,"nodeType":"ExpressionStatement","src":"4824:75:48"},{"condition":{"id":15073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5017:43:48","subExpression":{"arguments":[{"id":15070,"name":"parentCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15049,"src":"5036:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"5054:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15069,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15247,"src":"5018:17:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":15072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5018:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15076,"nodeType":"IfStatement","src":"5013:87:48","trueBody":{"id":15075,"nodeType":"Block","src":"5062:38:48","statements":[{"id":15074,"nodeType":"Break","src":"5080:5:48"}]}},{"expression":{"arguments":[{"id":15082,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15046,"src":"5134:9:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15083,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15040,"src":"5145:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15077,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"5114:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5119:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"5114:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5125:8:48","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"5114:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":15084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5114:35:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15085,"nodeType":"ExpressionStatement","src":"5114:35:48"},{"expression":{"id":15088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15086,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15040,"src":"5163:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15087,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15046,"src":"5169:9:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5163:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15089,"nodeType":"ExpressionStatement","src":"5163:15:48"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15051,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15040,"src":"4744:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":15052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4750:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4744:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15091,"nodeType":"WhileStatement","src":"4737:452:48"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4572:4:48","parameters":{"id":15043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15035,"mutability":"mutable","name":"self","nameLocation":"4591:4:48","nodeType":"VariableDeclaration","scope":15093,"src":"4577:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":15034,"nodeType":"UserDefinedTypeName","pathNode":{"id":15033,"name":"MaxPQ","nameLocations":["4577:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4577:5:48"},"referencedDeclaration":14643,"src":"4577:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":15038,"mutability":"mutable","name":"validators","nameLocation":"4618:10:48","nodeType":"VariableDeclaration","scope":15093,"src":"4597:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15037,"nodeType":"UserDefinedTypeName","pathNode":{"id":15036,"name":"ValidatorSet","nameLocations":["4597:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4597:12:48"},"referencedDeclaration":16313,"src":"4597:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15040,"mutability":"mutable","name":"pos","nameLocation":"4637:3:48","nodeType":"VariableDeclaration","scope":15093,"src":"4630:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15039,"name":"uint16","nodeType":"ElementaryTypeName","src":"4630:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15042,"mutability":"mutable","name":"value","nameLocation":"4650:5:48","nodeType":"VariableDeclaration","scope":15093,"src":"4642:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15041,"name":"uint256","nodeType":"ElementaryTypeName","src":"4642:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4576:80:48"},"returnParameters":{"id":15044,"nodeType":"ParameterList","parameters":[],"src":"4666:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15182,"nodeType":"FunctionDefinition","src":"5201:1043:48","nodes":[],"body":{"id":15181,"nodeType":"Block","src":"5304:940:48","nodes":[],"statements":[{"assignments":[15107],"declarations":[{"constant":false,"id":15107,"mutability":"mutable","name":"childPos","nameLocation":"5321:8:48","nodeType":"VariableDeclaration","scope":15181,"src":"5314:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15106,"name":"uint16","nodeType":"ElementaryTypeName","src":"5314:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15111,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15108,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"5332:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":15109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5339:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5332:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5314:26:48"},{"assignments":[15113],"declarations":[{"constant":false,"id":15113,"mutability":"mutable","name":"childCollateral","nameLocation":"5380:15:48","nodeType":"VariableDeclaration","scope":15181,"src":"5372:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15112,"name":"uint256","nodeType":"ElementaryTypeName","src":"5372:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15114,"nodeType":"VariableDeclarationStatement","src":"5372:23:48"},{"assignments":[15116],"declarations":[{"constant":false,"id":15116,"mutability":"mutable","name":"size","nameLocation":"5413:4:48","nodeType":"VariableDeclaration","scope":15181,"src":"5406:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15115,"name":"uint16","nodeType":"ElementaryTypeName","src":"5406:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15120,"initialValue":{"expression":{"expression":{"id":15117,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"5420:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5425:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"5420:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5431:4:48","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"5420:15:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5406:29:48"},{"body":{"id":15179,"nodeType":"Block","src":"5471:767:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15124,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"5489:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15125,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15116,"src":"5500:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5489:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15150,"nodeType":"Block","src":"5815:106:48","statements":[{"expression":{"id":15148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15141,"name":"childCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15113,"src":"5833:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15145,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"5885:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15146,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"5897:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15142,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"5851:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5856:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"5851:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5862:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"5851:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5851:55:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5833:73:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15149,"nodeType":"ExpressionStatement","src":"5833:73:48"}]},"id":15151,"nodeType":"IfStatement","src":"5485:436:48","trueBody":{"id":15140,"nodeType":"Block","src":"5506:303:48","statements":[{"expression":{"id":15138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":15127,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"5579:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15128,"name":"childCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15113,"src":"5589:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15129,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5578:27:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15131,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"5651:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":15132,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"5689:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15133,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"5727:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15134,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"5763:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5774:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:12:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":15130,"name":"largerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15233,"src":"5608:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":15137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5645:4:48","5677:10:48","5721:4:48","5757:4:48"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5608:186:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5578:216:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15139,"nodeType":"ExpressionStatement","src":"5578:216:48"}]}},{"condition":{"id":15156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6037:42:48","subExpression":{"arguments":[{"id":15153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15103,"src":"6056:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15154,"name":"childCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15113,"src":"6063:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15152,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15247,"src":"6038:17:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":15155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15159,"nodeType":"IfStatement","src":"6033:86:48","trueBody":{"id":15158,"nodeType":"Block","src":"6081:38:48","statements":[{"id":15157,"nodeType":"Break","src":"6099:5:48"}]}},{"expression":{"arguments":[{"id":15165,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"6153:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15166,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"6163:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"6133:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6138:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"6133:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6144:8:48","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"6133:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":15167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15168,"nodeType":"ExpressionStatement","src":"6133:34:48"},{"expression":{"id":15171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15169,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"6181:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15170,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"6187:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6181:14:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15172,"nodeType":"ExpressionStatement","src":"6181:14:48"},{"expression":{"id":15177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15173,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"6209:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15174,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"6220:3:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":15175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6226:1:48","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6220:7:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6209:18:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15178,"nodeType":"ExpressionStatement","src":"6209:18:48"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15121,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"5453:8:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15122,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15116,"src":"5465:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5453:16:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15180,"nodeType":"WhileStatement","src":"5446:792:48"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"5210:4:48","parameters":{"id":15104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15096,"mutability":"mutable","name":"self","nameLocation":"5229:4:48","nodeType":"VariableDeclaration","scope":15182,"src":"5215:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":15095,"nodeType":"UserDefinedTypeName","pathNode":{"id":15094,"name":"MaxPQ","nameLocations":["5215:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"5215:5:48"},"referencedDeclaration":14643,"src":"5215:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":15099,"mutability":"mutable","name":"validators","nameLocation":"5256:10:48","nodeType":"VariableDeclaration","scope":15182,"src":"5235:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15098,"nodeType":"UserDefinedTypeName","pathNode":{"id":15097,"name":"ValidatorSet","nameLocations":["5235:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5235:12:48"},"referencedDeclaration":16313,"src":"5235:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15101,"mutability":"mutable","name":"pos","nameLocation":"5275:3:48","nodeType":"VariableDeclaration","scope":15182,"src":"5268:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15100,"name":"uint16","nodeType":"ElementaryTypeName","src":"5268:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15103,"mutability":"mutable","name":"value","nameLocation":"5288:5:48","nodeType":"VariableDeclaration","scope":15182,"src":"5280:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15102,"name":"uint256","nodeType":"ElementaryTypeName","src":"5280:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5214:80:48"},"returnParameters":{"id":15105,"nodeType":"ParameterList","parameters":[],"src":"5304:0:48"},"scope":15248,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15233,"nodeType":"FunctionDefinition","src":"6305:470:48","nodes":[],"body":{"id":15232,"nodeType":"Block","src":"6486:289:48","nodes":[],"statements":[{"assignments":[15201],"declarations":[{"constant":false,"id":15201,"mutability":"mutable","name":"value1","nameLocation":"6504:6:48","nodeType":"VariableDeclaration","scope":15232,"src":"6496:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15200,"name":"uint256","nodeType":"ElementaryTypeName","src":"6496:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15208,"initialValue":{"arguments":[{"id":15205,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"6547:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15206,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"6559:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15202,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"6513:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6518:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"6513:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6524:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"6513:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6513:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6496:68:48"},{"assignments":[15210],"declarations":[{"constant":false,"id":15210,"mutability":"mutable","name":"value2","nameLocation":"6582:6:48","nodeType":"VariableDeclaration","scope":15232,"src":"6574:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15209,"name":"uint256","nodeType":"ElementaryTypeName","src":"6574:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15217,"initialValue":{"arguments":[{"id":15214,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"6625:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15215,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"6637:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15211,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"6591:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":15212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6596:5:48","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":14642,"src":"6591:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6602:22:48","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"6591:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6591:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6574:68:48"},{"condition":{"arguments":[{"id":15219,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"6675:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15220,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15210,"src":"6683:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15218,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15247,"src":"6657:17:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":15221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6657:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15227,"nodeType":"IfStatement","src":"6653:85:48","trueBody":{"id":15226,"nodeType":"Block","src":"6692:46:48","statements":[{"expression":{"components":[{"id":15222,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"6714:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15223,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15210,"src":"6720:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6713:14:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":15199,"id":15225,"nodeType":"Return","src":"6706:21:48"}]}},{"expression":{"components":[{"id":15228,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"6755:4:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15229,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"6761:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15230,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6754:14:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":15199,"id":15231,"nodeType":"Return","src":"6747:21:48"}]},"documentation":{"id":15183,"nodeType":"StructuredDocumentation","src":"6250:50:48","text":"@notice Get the larger index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"largerPosition","nameLocation":"6314:14:48","parameters":{"id":15194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15186,"mutability":"mutable","name":"self","nameLocation":"6352:4:48","nodeType":"VariableDeclaration","scope":15233,"src":"6338:18:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":15185,"nodeType":"UserDefinedTypeName","pathNode":{"id":15184,"name":"MaxPQ","nameLocations":["6338:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"6338:5:48"},"referencedDeclaration":14643,"src":"6338:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":15189,"mutability":"mutable","name":"validators","nameLocation":"6387:10:48","nodeType":"VariableDeclaration","scope":15233,"src":"6366:31:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15188,"nodeType":"UserDefinedTypeName","pathNode":{"id":15187,"name":"ValidatorSet","nameLocations":["6366:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6366:12:48"},"referencedDeclaration":16313,"src":"6366:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15191,"mutability":"mutable","name":"pos1","nameLocation":"6414:4:48","nodeType":"VariableDeclaration","scope":15233,"src":"6407:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15190,"name":"uint16","nodeType":"ElementaryTypeName","src":"6407:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15193,"mutability":"mutable","name":"pos2","nameLocation":"6435:4:48","nodeType":"VariableDeclaration","scope":15233,"src":"6428:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15192,"name":"uint16","nodeType":"ElementaryTypeName","src":"6428:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6328:117:48"},"returnParameters":{"id":15199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15233,"src":"6469:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15195,"name":"uint16","nodeType":"ElementaryTypeName","src":"6469:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15233,"src":"6477:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15197,"name":"uint256","nodeType":"ElementaryTypeName","src":"6477:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6468:17:48"},"scope":15248,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15247,"nodeType":"FunctionDefinition","src":"6781:111:48","nodes":[],"body":{"id":15246,"nodeType":"Block","src":"6861:31:48","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15242,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15235,"src":"6878:2:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15243,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15237,"src":"6883:2:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6878:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15241,"id":15245,"nodeType":"Return","src":"6871:14:48"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueSmaller","nameLocation":"6790:17:48","parameters":{"id":15238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15235,"mutability":"mutable","name":"v1","nameLocation":"6816:2:48","nodeType":"VariableDeclaration","scope":15247,"src":"6808:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15234,"name":"uint256","nodeType":"ElementaryTypeName","src":"6808:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15237,"mutability":"mutable","name":"v2","nameLocation":"6828:2:48","nodeType":"VariableDeclaration","scope":15247,"src":"6820:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15236,"name":"uint256","nodeType":"ElementaryTypeName","src":"6820:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6807:24:48"},"returnParameters":{"id":15241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15247,"src":"6855:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15239,"name":"bool","nodeType":"ElementaryTypeName","src":"6855:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6854:6:48"},"scope":15248,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMaxPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":14644,"nodeType":"StructuredDocumentation","src":"249:119:48","text":"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare\n is reversed."},"fullyImplemented":true,"linearizedBaseContracts":[15248],"name":"LibMaxPQ","nameLocation":"376:8:48","scope":15249,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":48} \ No newline at end of file diff --git a/contracts/out/LibMinPQ.sol/LibMinPQ.json b/contracts/out/LibMinPQ.sol/LibMinPQ.json deleted file mode 100644 index 8286248309..0000000000 --- a/contracts/out/LibMinPQ.sol/LibMinPQ.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122075dc2b7eac609a109254ab90ae70c8aa75ab1a465b9b8f72a34d36c46f1ce15164736f6c63430008130033","sourceMap":"294:6262:49:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122075dc2b7eac609a109254ab90ae70c8aa75ab1a465b9b8f72a34d36c46f1ce15164736f6c63430008130033","sourceMap":"294:6262:49:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The min index priority queue for staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMinPQ.sol\":\"LibMinPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMinPQ.sol":"LibMinPQ"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMinPQ.sol","id":15868,"exportedSymbols":{"LibMinPQ":[15867],"LibPQ":[16106],"LibValidatorSet":[12589],"MinPQ":[15261],"PQ":[15890],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:6511:49","nodes":[{"id":15250,"nodeType":"PragmaDirective","src":"46:23:49","nodes":[],"literals":["solidity","0.8",".19"]},{"id":15252,"nodeType":"ImportDirective","src":"71:50:49","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":15868,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":15251,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"79:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15254,"nodeType":"ImportDirective","src":"122:54:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":15868,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":15253,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"130:12:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15257,"nodeType":"ImportDirective","src":"177:38:49","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":15868,"sourceUnit":16107,"symbolAliases":[{"foreign":{"id":15255,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15890,"src":"185:2:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":15256,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16106,"src":"189:5:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15261,"nodeType":"StructDefinition","src":"217:30:49","nodes":[],"canonicalName":"MinPQ","members":[{"constant":false,"id":15260,"mutability":"mutable","name":"inner","nameLocation":"239:5:49","nodeType":"VariableDeclaration","scope":15261,"src":"236:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15259,"nodeType":"UserDefinedTypeName","pathNode":{"id":15258,"name":"PQ","nameLocations":["236:2:49"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"236:2:49"},"referencedDeclaration":15890,"src":"236:2:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MinPQ","nameLocation":"224:5:49","scope":15868,"visibility":"public"},{"id":15867,"nodeType":"ContractDefinition","src":"294:6262:49","nodes":[{"id":15266,"nodeType":"UsingForDirective","src":"317:19:49","nodes":[],"global":false,"libraryName":{"id":15263,"name":"LibPQ","nameLocations":["323:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":16106,"src":"323:5:49"},"typeName":{"id":15265,"nodeType":"UserDefinedTypeName","pathNode":{"id":15264,"name":"PQ","nameLocations":["333:2:49"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"333:2:49"},"referencedDeclaration":15890,"src":"333:2:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}}},{"id":15270,"nodeType":"UsingForDirective","src":"341:39:49","nodes":[],"global":false,"libraryName":{"id":15267,"name":"LibValidatorSet","nameLocations":["347:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"347:15:49"},"typeName":{"id":15269,"nodeType":"UserDefinedTypeName","pathNode":{"id":15268,"name":"ValidatorSet","nameLocations":["367:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"367:12:49"},"referencedDeclaration":16313,"src":"367:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":15283,"nodeType":"FunctionDefinition","src":"386:107:49","nodes":[],"body":{"id":15282,"nodeType":"Block","src":"454:39:49","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":15278,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15273,"src":"471:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"476:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"471:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"482:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"471:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":15277,"id":15281,"nodeType":"Return","src":"464:22:49"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"395:7:49","parameters":{"id":15274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15273,"mutability":"mutable","name":"self","nameLocation":"417:4:49","nodeType":"VariableDeclaration","scope":15283,"src":"403:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15272,"nodeType":"UserDefinedTypeName","pathNode":{"id":15271,"name":"MinPQ","nameLocations":["403:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"403:5:49"},"referencedDeclaration":15261,"src":"403:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"}],"src":"402:20:49"},"returnParameters":{"id":15277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15283,"src":"446:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15275,"name":"uint16","nodeType":"ElementaryTypeName","src":"446:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"445:8:49"},"scope":15867,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15300,"nodeType":"FunctionDefinition","src":"499:132:49","nodes":[],"body":{"id":15299,"nodeType":"Block","src":"581:50:49","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":15293,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15286,"src":"598:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"603:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"598:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"609:12:49","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"598:23:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":15297,"indexExpression":{"id":15296,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15288,"src":"622:1:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"598:26:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":15292,"id":15298,"nodeType":"Return","src":"591:33:49"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"508:10:49","parameters":{"id":15289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15286,"mutability":"mutable","name":"self","nameLocation":"533:4:49","nodeType":"VariableDeclaration","scope":15300,"src":"519:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15285,"nodeType":"UserDefinedTypeName","pathNode":{"id":15284,"name":"MinPQ","nameLocations":["519:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"519:5:49"},"referencedDeclaration":15261,"src":"519:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15288,"mutability":"mutable","name":"i","nameLocation":"546:1:49","nodeType":"VariableDeclaration","scope":15300,"src":"539:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15287,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"518:30:49"},"returnParameters":{"id":15292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15300,"src":"572:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15290,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"571:9:49"},"scope":15867,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15317,"nodeType":"FunctionDefinition","src":"637:140:49","nodes":[],"body":{"id":15316,"nodeType":"Block","src":"723:54:49","nodes":[],"statements":[{"expression":{"arguments":[{"id":15313,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15305,"src":"760:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":15310,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15303,"src":"740:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"745:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"740:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"751:8:49","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15954,"src":"740:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":15314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15309,"id":15315,"nodeType":"Return","src":"733:37:49"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"646:8:49","parameters":{"id":15306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15303,"mutability":"mutable","name":"self","nameLocation":"669:4:49","nodeType":"VariableDeclaration","scope":15317,"src":"655:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15302,"nodeType":"UserDefinedTypeName","pathNode":{"id":15301,"name":"MinPQ","nameLocations":["655:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"655:5:49"},"referencedDeclaration":15261,"src":"655:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15305,"mutability":"mutable","name":"validator","nameLocation":"683:9:49","nodeType":"VariableDeclaration","scope":15317,"src":"675:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15304,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"654:39:49"},"returnParameters":{"id":15309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15317,"src":"717:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15307,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"716:6:49"},"scope":15867,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15380,"nodeType":"FunctionDefinition","src":"924:459:49","nodes":[],"body":{"id":15379,"nodeType":"Block","src":"1021:362:49","nodes":[],"statements":[{"assignments":[15330],"declarations":[{"constant":false,"id":15330,"mutability":"mutable","name":"size","nameLocation":"1038:4:49","nodeType":"VariableDeclaration","scope":15379,"src":"1031:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15329,"name":"uint16","nodeType":"ElementaryTypeName","src":"1031:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15336,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":15331,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15321,"src":"1045:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1050:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1045:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1056:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1045:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1063:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1045:19:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1031:33:49"},{"expression":{"id":15345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":15337,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15321,"src":"1075:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1080:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1075:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1086:12:49","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"1075:23:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":15343,"indexExpression":{"id":15340,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"1099:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1075:34:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15344,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"1112:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1075:41:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15346,"nodeType":"ExpressionStatement","src":"1075:41:49"},{"expression":{"id":15355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":15347,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15321,"src":"1126:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1131:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1126:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1137:12:49","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"1126:23:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":15353,"indexExpression":{"id":15350,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"1150:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1126:29:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15354,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"1158:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1126:41:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15356,"nodeType":"ExpressionStatement","src":"1126:41:49"},{"expression":{"id":15363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":15357,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15321,"src":"1178:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1183:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1178:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1189:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1178:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15362,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"1196:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1178:22:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15364,"nodeType":"ExpressionStatement","src":"1178:22:49"},{"assignments":[15366],"declarations":[{"constant":false,"id":15366,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"1219:19:49","nodeType":"VariableDeclaration","scope":15379,"src":"1211:27:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15371,"initialValue":{"arguments":[{"id":15369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"1275:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15367,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15324,"src":"1241:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":15368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1252:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"1241:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":15370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1241:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1211:74:49"},{"expression":{"arguments":[{"id":15373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15321,"src":"1307:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15374,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15324,"src":"1325:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15375,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"1342:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15376,"name":"confirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15366,"src":"1355:19:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15372,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"1295:4:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":15377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1301:4:49","1313:10:49","1337:3:49","1348:5:49"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1295:81:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15378,"nodeType":"ExpressionStatement","src":"1295:81:49"}]},"documentation":{"id":15318,"nodeType":"StructuredDocumentation","src":"783:136:49","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the validator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"933:6:49","parameters":{"id":15327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15321,"mutability":"mutable","name":"self","nameLocation":"954:4:49","nodeType":"VariableDeclaration","scope":15380,"src":"940:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15320,"nodeType":"UserDefinedTypeName","pathNode":{"id":15319,"name":"MinPQ","nameLocations":["940:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"940:5:49"},"referencedDeclaration":15261,"src":"940:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15324,"mutability":"mutable","name":"validators","nameLocation":"981:10:49","nodeType":"VariableDeclaration","scope":15380,"src":"960:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15323,"nodeType":"UserDefinedTypeName","pathNode":{"id":15322,"name":"ValidatorSet","nameLocations":["960:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"960:12:49"},"referencedDeclaration":16313,"src":"960:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15326,"mutability":"mutable","name":"validator","nameLocation":"1001:9:49","nodeType":"VariableDeclaration","scope":15380,"src":"993:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15325,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:72:49"},"returnParameters":{"id":15328,"nodeType":"ParameterList","parameters":[],"src":"1021:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15447,"nodeType":"FunctionDefinition","src":"1450:415:49","nodes":[],"body":{"id":15446,"nodeType":"Block","src":"1525:340:49","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":15390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1535:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1540:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1535:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1546:15:49","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":15924,"src":"1535:26:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":15395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1535:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15396,"nodeType":"ExpressionStatement","src":"1535:28:49"},{"assignments":[15398],"declarations":[{"constant":false,"id":15398,"mutability":"mutable","name":"size","nameLocation":"1581:4:49","nodeType":"VariableDeclaration","scope":15446,"src":"1574:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15397,"name":"uint16","nodeType":"ElementaryTypeName","src":"1574:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15402,"initialValue":{"expression":{"expression":{"id":15399,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1588:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1593:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1588:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1599:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1588:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1574:29:49"},{"expression":{"arguments":[{"hexValue":"31","id":15408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":15409,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15398,"src":"1637:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1614:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1619:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1614:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1625:8:49","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"1614:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":15410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15411,"nodeType":"ExpressionStatement","src":"1614:28:49"},{"expression":{"id":15420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":15412,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1653:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1658:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1653:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1664:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1653:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15417,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15398,"src":"1671:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1678:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1671:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1653:26:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15421,"nodeType":"ExpressionStatement","src":"1653:26:49"},{"expression":{"arguments":[{"id":15427,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15398,"src":"1704:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15422,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1689:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1694:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1689:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1700:3:49","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":16008,"src":"1689:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":15428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1689:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15429,"nodeType":"ExpressionStatement","src":"1689:20:49"},{"assignments":[15431],"declarations":[{"constant":false,"id":15431,"mutability":"mutable","name":"value","nameLocation":"1728:5:49","nodeType":"VariableDeclaration","scope":15446,"src":"1720:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15430,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15438,"initialValue":{"arguments":[{"id":15435,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"1770:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":15436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1782:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":15432,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1736:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1741:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"1736:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1747:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"1736:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1736:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1720:64:49"},{"expression":{"arguments":[{"id":15440,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"1806:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15441,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"1824:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":15442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":15443,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15431,"src":"1851:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15439,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15800,"src":"1794:4:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":15444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1800:4:49","1812:10:49","1836:3:49","1844:5:49"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1794:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15445,"nodeType":"ExpressionStatement","src":"1794:64:49"}]},"documentation":{"id":15381,"nodeType":"StructuredDocumentation","src":"1389:56:49","text":"@notice Pop the minimal value in the priority queue."},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1459:3:49","parameters":{"id":15388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15384,"mutability":"mutable","name":"self","nameLocation":"1477:4:49","nodeType":"VariableDeclaration","scope":15447,"src":"1463:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15383,"nodeType":"UserDefinedTypeName","pathNode":{"id":15382,"name":"MinPQ","nameLocations":["1463:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"1463:5:49"},"referencedDeclaration":15261,"src":"1463:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15387,"mutability":"mutable","name":"validators","nameLocation":"1504:10:49","nodeType":"VariableDeclaration","scope":15447,"src":"1483:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15386,"nodeType":"UserDefinedTypeName","pathNode":{"id":15385,"name":"ValidatorSet","nameLocations":["1483:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"1483:12:49"},"referencedDeclaration":16313,"src":"1483:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1462:53:49"},"returnParameters":{"id":15389,"nodeType":"ParameterList","parameters":[],"src":"1525:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15539,"nodeType":"FunctionDefinition","src":"1937:807:49","nodes":[],"body":{"id":15538,"nodeType":"Block","src":"2043:701:49","nodes":[],"statements":[{"assignments":[15460],"declarations":[{"constant":false,"id":15460,"mutability":"mutable","name":"pos","nameLocation":"2060:3:49","nodeType":"VariableDeclaration","scope":15538,"src":"2053:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15459,"name":"uint16","nodeType":"ElementaryTypeName","src":"2053:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15466,"initialValue":{"arguments":[{"id":15464,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15456,"src":"2092:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":15461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2066:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2071:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2066:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2077:14:49","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"2066:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":15465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2066:36:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2053:49:49"},{"assignments":[15468],"declarations":[{"constant":false,"id":15468,"mutability":"mutable","name":"size","nameLocation":"2119:4:49","nodeType":"VariableDeclaration","scope":15538,"src":"2112:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15467,"name":"uint16","nodeType":"ElementaryTypeName","src":"2112:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15472,"initialValue":{"expression":{"expression":{"id":15469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2126:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2131:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2126:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2137:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"2126:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2112:29:49"},{"expression":{"arguments":[{"id":15478,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15460,"src":"2172:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15479,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15468,"src":"2177:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15473,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2152:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2157:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2152:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2163:8:49","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"2152:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":15480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2152:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15481,"nodeType":"ExpressionStatement","src":"2152:30:49"},{"expression":{"id":15490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":15482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2220:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2225:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2220:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2231:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"2220:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15487,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15468,"src":"2238:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2238:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2220:26:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15491,"nodeType":"ExpressionStatement","src":"2220:26:49"},{"expression":{"arguments":[{"id":15497,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15468,"src":"2271:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15492,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2256:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2261:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2256:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2267:3:49","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":16008,"src":"2256:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":15498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2256:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15499,"nodeType":"ExpressionStatement","src":"2256:20:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15500,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15468,"src":"2291:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15501,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15460,"src":"2299:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2291:11:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15505,"nodeType":"IfStatement","src":"2287:48:49","trueBody":{"id":15504,"nodeType":"Block","src":"2304:31:49","statements":[{"functionReturnParameters":15458,"id":15503,"nodeType":"Return","src":"2318:7:49"}]}},{"assignments":[15507],"declarations":[{"constant":false,"id":15507,"mutability":"mutable","name":"val","nameLocation":"2411:3:49","nodeType":"VariableDeclaration","scope":15538,"src":"2403:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15506,"name":"uint256","nodeType":"ElementaryTypeName","src":"2403:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15514,"initialValue":{"arguments":[{"id":15511,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"2451:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15512,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15460,"src":"2463:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2417:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2422:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2417:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2428:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"2417:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2417:50:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2403:64:49"},{"expression":{"arguments":[{"id":15516,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2489:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"2507:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15518,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15460,"src":"2524:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15519,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15507,"src":"2536:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15515,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"2477:4:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":15520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2483:4:49","2495:10:49","2519:3:49","2529:5:49"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2477:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15521,"nodeType":"ExpressionStatement","src":"2477:64:49"},{"expression":{"id":15529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15522,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15507,"src":"2607:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15526,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"2647:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15527,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15460,"src":"2659:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2613:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2618:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2613:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2624:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"2613:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2613:50:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2607:56:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15530,"nodeType":"ExpressionStatement","src":"2607:56:49"},{"expression":{"arguments":[{"id":15532,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"2685:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15533,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"2703:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15534,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15460,"src":"2720:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15535,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15507,"src":"2732:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15531,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15800,"src":"2673:4:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":15536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2679:4:49","2691:10:49","2715:3:49","2725:5:49"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2673:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15537,"nodeType":"ExpressionStatement","src":"2673:64:49"}]},"documentation":{"id":15448,"nodeType":"StructuredDocumentation","src":"1871:61:49","text":"@notice Reheapify the heap when the validator is deleted."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"1946:15:49","parameters":{"id":15457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15451,"mutability":"mutable","name":"self","nameLocation":"1976:4:49","nodeType":"VariableDeclaration","scope":15539,"src":"1962:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15450,"nodeType":"UserDefinedTypeName","pathNode":{"id":15449,"name":"MinPQ","nameLocations":["1962:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"1962:5:49"},"referencedDeclaration":15261,"src":"1962:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15454,"mutability":"mutable","name":"validators","nameLocation":"2003:10:49","nodeType":"VariableDeclaration","scope":15539,"src":"1982:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15453,"nodeType":"UserDefinedTypeName","pathNode":{"id":15452,"name":"ValidatorSet","nameLocations":["1982:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"1982:12:49"},"referencedDeclaration":16313,"src":"1982:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15456,"mutability":"mutable","name":"validator","nameLocation":"2023:9:49","nodeType":"VariableDeclaration","scope":15539,"src":"2015:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15455,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1961:72:49"},"returnParameters":{"id":15458,"nodeType":"ParameterList","parameters":[],"src":"2043:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15574,"nodeType":"FunctionDefinition","src":"2829:316:49","nodes":[],"body":{"id":15573,"nodeType":"Block","src":"2937:208:49","nodes":[],"statements":[{"assignments":[15552],"declarations":[{"constant":false,"id":15552,"mutability":"mutable","name":"pos","nameLocation":"2954:3:49","nodeType":"VariableDeclaration","scope":15573,"src":"2947:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15551,"name":"uint16","nodeType":"ElementaryTypeName","src":"2947:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15558,"initialValue":{"arguments":[{"id":15556,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"2986:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":15553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15543,"src":"2960:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2965:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"2960:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2971:14:49","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"2960:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":15557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:36:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2947:49:49"},{"assignments":[15560],"declarations":[{"constant":false,"id":15560,"mutability":"mutable","name":"val","nameLocation":"3014:3:49","nodeType":"VariableDeclaration","scope":15573,"src":"3006:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15559,"name":"uint256","nodeType":"ElementaryTypeName","src":"3006:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15565,"initialValue":{"arguments":[{"id":15563,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"3054:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15561,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15546,"src":"3020:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":15562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3031:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"3020:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":15564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3020:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3006:58:49"},{"expression":{"arguments":[{"id":15567,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15543,"src":"3086:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15568,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15546,"src":"3104:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15569,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"3121:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15570,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15560,"src":"3133:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15566,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15800,"src":"3074:4:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":15571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3080:4:49","3092:10:49","3116:3:49","3126:5:49"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3074:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15572,"nodeType":"ExpressionStatement","src":"3074:64:49"}]},"documentation":{"id":15540,"nodeType":"StructuredDocumentation","src":"2750:74:49","text":"@notice Reheapify the heap when the collateral of a key has increased."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"2838:17:49","parameters":{"id":15549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15543,"mutability":"mutable","name":"self","nameLocation":"2870:4:49","nodeType":"VariableDeclaration","scope":15574,"src":"2856:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15542,"nodeType":"UserDefinedTypeName","pathNode":{"id":15541,"name":"MinPQ","nameLocations":["2856:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"2856:5:49"},"referencedDeclaration":15261,"src":"2856:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15546,"mutability":"mutable","name":"validators","nameLocation":"2897:10:49","nodeType":"VariableDeclaration","scope":15574,"src":"2876:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15545,"nodeType":"UserDefinedTypeName","pathNode":{"id":15544,"name":"ValidatorSet","nameLocations":["2876:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"2876:12:49"},"referencedDeclaration":16313,"src":"2876:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15548,"mutability":"mutable","name":"validator","nameLocation":"2917:9:49","nodeType":"VariableDeclaration","scope":15574,"src":"2909:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15547,"name":"address","nodeType":"ElementaryTypeName","src":"2909:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2855:72:49"},"returnParameters":{"id":15550,"nodeType":"ParameterList","parameters":[],"src":"2937:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15609,"nodeType":"FunctionDefinition","src":"3230:316:49","nodes":[],"body":{"id":15608,"nodeType":"Block","src":"3338:208:49","nodes":[],"statements":[{"assignments":[15587],"declarations":[{"constant":false,"id":15587,"mutability":"mutable","name":"pos","nameLocation":"3355:3:49","nodeType":"VariableDeclaration","scope":15608,"src":"3348:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15586,"name":"uint16","nodeType":"ElementaryTypeName","src":"3348:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15593,"initialValue":{"arguments":[{"id":15591,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15583,"src":"3387:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":15588,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15578,"src":"3361:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3366:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"3361:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3372:14:49","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"3361:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":15592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3361:36:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3348:49:49"},{"assignments":[15595],"declarations":[{"constant":false,"id":15595,"mutability":"mutable","name":"val","nameLocation":"3415:3:49","nodeType":"VariableDeclaration","scope":15608,"src":"3407:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15594,"name":"uint256","nodeType":"ElementaryTypeName","src":"3407:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15600,"initialValue":{"arguments":[{"id":15598,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15583,"src":"3455:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15596,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15581,"src":"3421:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":15597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3432:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"3421:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":15599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3421:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3407:58:49"},{"expression":{"arguments":[{"id":15602,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15578,"src":"3487:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15603,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15581,"src":"3505:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15604,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15587,"src":"3522:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15605,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15595,"src":"3534:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15601,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"3475:4:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":15606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3481:4:49","3493:10:49","3517:3:49","3527:5:49"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3475:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15607,"nodeType":"ExpressionStatement","src":"3475:64:49"}]},"documentation":{"id":15575,"nodeType":"StructuredDocumentation","src":"3151:74:49","text":"@notice Reheapify the heap when the collateral of a key has decreased."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3239:17:49","parameters":{"id":15584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15578,"mutability":"mutable","name":"self","nameLocation":"3271:4:49","nodeType":"VariableDeclaration","scope":15609,"src":"3257:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15577,"nodeType":"UserDefinedTypeName","pathNode":{"id":15576,"name":"MinPQ","nameLocations":["3257:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"3257:5:49"},"referencedDeclaration":15261,"src":"3257:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15581,"mutability":"mutable","name":"validators","nameLocation":"3298:10:49","nodeType":"VariableDeclaration","scope":15609,"src":"3277:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15580,"nodeType":"UserDefinedTypeName","pathNode":{"id":15579,"name":"ValidatorSet","nameLocations":["3277:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"3277:12:49"},"referencedDeclaration":16313,"src":"3277:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15583,"mutability":"mutable","name":"validator","nameLocation":"3318:9:49","nodeType":"VariableDeclaration","scope":15609,"src":"3310:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15582,"name":"address","nodeType":"ElementaryTypeName","src":"3310:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3256:72:49"},"returnParameters":{"id":15585,"nodeType":"ParameterList","parameters":[],"src":"3338:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15650,"nodeType":"FunctionDefinition","src":"3676:309:49","nodes":[],"body":{"id":15649,"nodeType":"Block","src":"3783:202:49","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":15623,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15613,"src":"3793:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"3793:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3804:15:49","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":15924,"src":"3793:26:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":15628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15629,"nodeType":"ExpressionStatement","src":"3793:28:49"},{"assignments":[15631],"declarations":[{"constant":false,"id":15631,"mutability":"mutable","name":"addr","nameLocation":"3840:4:49","nodeType":"VariableDeclaration","scope":15649,"src":"3832:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15630,"name":"address","nodeType":"ElementaryTypeName","src":"3832:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15637,"initialValue":{"baseExpression":{"expression":{"expression":{"id":15632,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15613,"src":"3847:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3852:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"3847:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3858:12:49","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"3847:23:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":15636,"indexExpression":{"hexValue":"31","id":15635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3871:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3847:26:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3832:41:49"},{"assignments":[15639],"declarations":[{"constant":false,"id":15639,"mutability":"mutable","name":"collateral","nameLocation":"3891:10:49","nodeType":"VariableDeclaration","scope":15649,"src":"3883:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15638,"name":"uint256","nodeType":"ElementaryTypeName","src":"3883:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15644,"initialValue":{"arguments":[{"id":15642,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15631,"src":"3938:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15640,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15616,"src":"3904:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":15641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3915:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"3904:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":15643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3904:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3883:60:49"},{"expression":{"components":[{"id":15645,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15631,"src":"3961:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15646,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15639,"src":"3967:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15647,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3960:18:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":15622,"id":15648,"nodeType":"Return","src":"3953:25:49"}]},"documentation":{"id":15610,"nodeType":"StructuredDocumentation","src":"3552:119:49","text":"@notice Get the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3685:3:49","parameters":{"id":15617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15613,"mutability":"mutable","name":"self","nameLocation":"3703:4:49","nodeType":"VariableDeclaration","scope":15650,"src":"3689:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15612,"nodeType":"UserDefinedTypeName","pathNode":{"id":15611,"name":"MinPQ","nameLocations":["3689:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"3689:5:49"},"referencedDeclaration":15261,"src":"3689:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15616,"mutability":"mutable","name":"validators","nameLocation":"3730:10:49","nodeType":"VariableDeclaration","scope":15650,"src":"3709:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15615,"nodeType":"UserDefinedTypeName","pathNode":{"id":15614,"name":"ValidatorSet","nameLocations":["3709:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"3709:12:49"},"referencedDeclaration":16313,"src":"3709:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3688:53:49"},"returnParameters":{"id":15622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15650,"src":"3765:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15618,"name":"address","nodeType":"ElementaryTypeName","src":"3765:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15650,"src":"3774:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15620,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3764:18:49"},"scope":15867,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15711,"nodeType":"FunctionDefinition","src":"4237:642:49","nodes":[],"body":{"id":15710,"nodeType":"Block","src":"4340:539:49","nodes":[],"statements":[{"assignments":[15664],"declarations":[{"constant":false,"id":15664,"mutability":"mutable","name":"parentPos","nameLocation":"4357:9:49","nodeType":"VariableDeclaration","scope":15710,"src":"4350:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15663,"name":"uint16","nodeType":"ElementaryTypeName","src":"4350:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15665,"nodeType":"VariableDeclarationStatement","src":"4350:16:49"},{"assignments":[15667],"declarations":[{"constant":false,"id":15667,"mutability":"mutable","name":"parentCollateral","nameLocation":"4384:16:49","nodeType":"VariableDeclaration","scope":15710,"src":"4376:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15666,"name":"uint256","nodeType":"ElementaryTypeName","src":"4376:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15668,"nodeType":"VariableDeclarationStatement","src":"4376:24:49"},{"body":{"id":15708,"nodeType":"Block","src":"4427:446:49","statements":[{"expression":{"id":15676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15672,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15664,"src":"4477:9:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15673,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"4489:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4496:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4489:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4477:20:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15677,"nodeType":"ExpressionStatement","src":"4477:20:49"},{"expression":{"id":15685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15678,"name":"parentCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15667,"src":"4511:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15682,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15656,"src":"4564:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15683,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15664,"src":"4576:9:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15679,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15653,"src":"4530:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4535:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"4530:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4541:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"4530:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4530:56:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4511:75:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15686,"nodeType":"ExpressionStatement","src":"4511:75:49"},{"condition":{"id":15691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4702:42:49","subExpression":{"arguments":[{"id":15688,"name":"parentCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15667,"src":"4720:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15660,"src":"4738:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15687,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15866,"src":"4703:16:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":15690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4703:41:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15694,"nodeType":"IfStatement","src":"4698:86:49","trueBody":{"id":15693,"nodeType":"Block","src":"4746:38:49","statements":[{"id":15692,"nodeType":"Break","src":"4764:5:49"}]}},{"expression":{"arguments":[{"id":15700,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15664,"src":"4818:9:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15701,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"4829:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15695,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15653,"src":"4798:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4803:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"4798:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4809:8:49","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"4798:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":15702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4798:35:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15703,"nodeType":"ExpressionStatement","src":"4798:35:49"},{"expression":{"id":15706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15704,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"4847:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15705,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15664,"src":"4853:9:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4847:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15707,"nodeType":"ExpressionStatement","src":"4847:15:49"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15669,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"4418:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":15670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4424:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4418:7:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15709,"nodeType":"WhileStatement","src":"4411:462:49"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4246:4:49","parameters":{"id":15661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15653,"mutability":"mutable","name":"self","nameLocation":"4265:4:49","nodeType":"VariableDeclaration","scope":15711,"src":"4251:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15652,"nodeType":"UserDefinedTypeName","pathNode":{"id":15651,"name":"MinPQ","nameLocations":["4251:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4251:5:49"},"referencedDeclaration":15261,"src":"4251:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15656,"mutability":"mutable","name":"validators","nameLocation":"4292:10:49","nodeType":"VariableDeclaration","scope":15711,"src":"4271:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15655,"nodeType":"UserDefinedTypeName","pathNode":{"id":15654,"name":"ValidatorSet","nameLocations":["4271:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4271:12:49"},"referencedDeclaration":16313,"src":"4271:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15658,"mutability":"mutable","name":"pos","nameLocation":"4311:3:49","nodeType":"VariableDeclaration","scope":15711,"src":"4304:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15657,"name":"uint16","nodeType":"ElementaryTypeName","src":"4304:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15660,"mutability":"mutable","name":"value","nameLocation":"4324:5:49","nodeType":"VariableDeclaration","scope":15711,"src":"4316:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15659,"name":"uint256","nodeType":"ElementaryTypeName","src":"4316:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4250:80:49"},"returnParameters":{"id":15662,"nodeType":"ParameterList","parameters":[],"src":"4340:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15800,"nodeType":"FunctionDefinition","src":"4885:1020:49","nodes":[],"body":{"id":15799,"nodeType":"Block","src":"4988:917:49","nodes":[],"statements":[{"assignments":[15725],"declarations":[{"constant":false,"id":15725,"mutability":"mutable","name":"childPos","nameLocation":"5005:8:49","nodeType":"VariableDeclaration","scope":15799,"src":"4998:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15724,"name":"uint16","nodeType":"ElementaryTypeName","src":"4998:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15729,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15726,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"5016:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":15727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5022:1:49","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5016:7:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4998:25:49"},{"assignments":[15731],"declarations":[{"constant":false,"id":15731,"mutability":"mutable","name":"childCollateral","nameLocation":"5041:15:49","nodeType":"VariableDeclaration","scope":15799,"src":"5033:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15730,"name":"uint256","nodeType":"ElementaryTypeName","src":"5033:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15732,"nodeType":"VariableDeclarationStatement","src":"5033:23:49"},{"assignments":[15734],"declarations":[{"constant":false,"id":15734,"mutability":"mutable","name":"size","nameLocation":"5074:4:49","nodeType":"VariableDeclaration","scope":15799,"src":"5067:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15733,"name":"uint16","nodeType":"ElementaryTypeName","src":"5067:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":15738,"initialValue":{"expression":{"expression":{"id":15735,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15714,"src":"5081:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5086:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"5081:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5092:4:49","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"5081:15:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5067:29:49"},{"body":{"id":15797,"nodeType":"Block","src":"5132:767:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15742,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5150:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15743,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15734,"src":"5161:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5150:15:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15768,"nodeType":"Block","src":"5477:106:49","statements":[{"expression":{"id":15766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15759,"name":"childCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15731,"src":"5495:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15763,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15717,"src":"5547:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15764,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5559:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15760,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15714,"src":"5513:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5518:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"5513:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5524:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"5513:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5513:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5495:73:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15767,"nodeType":"ExpressionStatement","src":"5495:73:49"}]},"id":15769,"nodeType":"IfStatement","src":"5146:437:49","trueBody":{"id":15758,"nodeType":"Block","src":"5167:304:49","statements":[{"expression":{"id":15756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":15745,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5240:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15746,"name":"childCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15731,"src":"5250:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15747,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5239:27:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15749,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15714,"src":"5313:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":15750,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15717,"src":"5351:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15751,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5389:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15752,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5425:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5436:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5425:12:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":15748,"name":"smallerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15852,"src":"5269:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":15755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5307:4:49","5339:10:49","5383:4:49","5419:4:49"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5269:187:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5239:217:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15757,"nodeType":"ExpressionStatement","src":"5239:217:49"}]}},{"condition":{"id":15774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5699:41:49","subExpression":{"arguments":[{"id":15771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"5717:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15772,"name":"childCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15731,"src":"5724:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15770,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15866,"src":"5700:16:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":15773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5700:40:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15777,"nodeType":"IfStatement","src":"5695:85:49","trueBody":{"id":15776,"nodeType":"Block","src":"5742:38:49","statements":[{"id":15775,"nodeType":"Break","src":"5760:5:49"}]}},{"expression":{"arguments":[{"id":15783,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5814:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15784,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"5824:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15778,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15714,"src":"5794:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5799:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"5794:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5805:8:49","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"5794:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$15890_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":15785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5794:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15786,"nodeType":"ExpressionStatement","src":"5794:34:49"},{"expression":{"id":15789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15787,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"5842:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15788,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5848:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5842:14:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15790,"nodeType":"ExpressionStatement","src":"5842:14:49"},{"expression":{"id":15795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15791,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5870:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15792,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"5881:3:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":15793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5887:1:49","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5881:7:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5870:18:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15796,"nodeType":"ExpressionStatement","src":"5870:18:49"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15739,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"5114:8:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15740,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15734,"src":"5126:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5114:16:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15798,"nodeType":"WhileStatement","src":"5107:792:49"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"4894:4:49","parameters":{"id":15722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15714,"mutability":"mutable","name":"self","nameLocation":"4913:4:49","nodeType":"VariableDeclaration","scope":15800,"src":"4899:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15713,"nodeType":"UserDefinedTypeName","pathNode":{"id":15712,"name":"MinPQ","nameLocations":["4899:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4899:5:49"},"referencedDeclaration":15261,"src":"4899:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15717,"mutability":"mutable","name":"validators","nameLocation":"4940:10:49","nodeType":"VariableDeclaration","scope":15800,"src":"4919:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15716,"nodeType":"UserDefinedTypeName","pathNode":{"id":15715,"name":"ValidatorSet","nameLocations":["4919:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4919:12:49"},"referencedDeclaration":16313,"src":"4919:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15719,"mutability":"mutable","name":"pos","nameLocation":"4959:3:49","nodeType":"VariableDeclaration","scope":15800,"src":"4952:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15718,"name":"uint16","nodeType":"ElementaryTypeName","src":"4952:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15721,"mutability":"mutable","name":"value","nameLocation":"4972:5:49","nodeType":"VariableDeclaration","scope":15800,"src":"4964:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15720,"name":"uint256","nodeType":"ElementaryTypeName","src":"4964:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4898:80:49"},"returnParameters":{"id":15723,"nodeType":"ParameterList","parameters":[],"src":"4988:0:49"},"scope":15867,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":15852,"nodeType":"FunctionDefinition","src":"5967:471:49","nodes":[],"body":{"id":15851,"nodeType":"Block","src":"6149:289:49","nodes":[],"statements":[{"assignments":[15819],"declarations":[{"constant":false,"id":15819,"mutability":"mutable","name":"value1","nameLocation":"6167:6:49","nodeType":"VariableDeclaration","scope":15851,"src":"6159:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15818,"name":"uint256","nodeType":"ElementaryTypeName","src":"6159:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15826,"initialValue":{"arguments":[{"id":15823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15807,"src":"6210:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15824,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15809,"src":"6222:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"6176:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6181:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"6176:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6187:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"6176:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6176:51:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6159:68:49"},{"assignments":[15828],"declarations":[{"constant":false,"id":15828,"mutability":"mutable","name":"value2","nameLocation":"6245:6:49","nodeType":"VariableDeclaration","scope":15851,"src":"6237:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15827,"name":"uint256","nodeType":"ElementaryTypeName","src":"6237:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15835,"initialValue":{"arguments":[{"id":15832,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15807,"src":"6288:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":15833,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15811,"src":"6300:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":15829,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"6254:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":15830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6259:5:49","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":15260,"src":"6254:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage","typeString":"struct PQ storage ref"}},"id":15831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6265:22:49","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"6254:33:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$15890_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$15890_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":15834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6254:51:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6237:68:49"},{"condition":{"id":15840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6320:33:49","subExpression":{"arguments":[{"id":15837,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15819,"src":"6338:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15838,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15828,"src":"6346:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15836,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15866,"src":"6321:16:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":15839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6321:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15846,"nodeType":"IfStatement","src":"6316:85:49","trueBody":{"id":15845,"nodeType":"Block","src":"6355:46:49","statements":[{"expression":{"components":[{"id":15841,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15809,"src":"6377:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15842,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15819,"src":"6383:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15843,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6376:14:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":15817,"id":15844,"nodeType":"Return","src":"6369:21:49"}]}},{"expression":{"components":[{"id":15847,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15811,"src":"6418:4:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":15848,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15828,"src":"6424:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15849,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6417:14:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":15817,"id":15850,"nodeType":"Return","src":"6410:21:49"}]},"documentation":{"id":15801,"nodeType":"StructuredDocumentation","src":"5911:51:49","text":"@notice Get the smaller index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"smallerPosition","nameLocation":"5976:15:49","parameters":{"id":15812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15804,"mutability":"mutable","name":"self","nameLocation":"6015:4:49","nodeType":"VariableDeclaration","scope":15852,"src":"6001:18:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":15803,"nodeType":"UserDefinedTypeName","pathNode":{"id":15802,"name":"MinPQ","nameLocations":["6001:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"6001:5:49"},"referencedDeclaration":15261,"src":"6001:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":15807,"mutability":"mutable","name":"validators","nameLocation":"6050:10:49","nodeType":"VariableDeclaration","scope":15852,"src":"6029:31:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":15806,"nodeType":"UserDefinedTypeName","pathNode":{"id":15805,"name":"ValidatorSet","nameLocations":["6029:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6029:12:49"},"referencedDeclaration":16313,"src":"6029:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":15809,"mutability":"mutable","name":"pos1","nameLocation":"6077:4:49","nodeType":"VariableDeclaration","scope":15852,"src":"6070:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15808,"name":"uint16","nodeType":"ElementaryTypeName","src":"6070:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15811,"mutability":"mutable","name":"pos2","nameLocation":"6098:4:49","nodeType":"VariableDeclaration","scope":15852,"src":"6091:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15810,"name":"uint16","nodeType":"ElementaryTypeName","src":"6091:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5991:117:49"},"returnParameters":{"id":15817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15852,"src":"6132:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15813,"name":"uint16","nodeType":"ElementaryTypeName","src":"6132:6:49","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15852,"src":"6140:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15815,"name":"uint256","nodeType":"ElementaryTypeName","src":"6140:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6131:17:49"},"scope":15867,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15866,"nodeType":"FunctionDefinition","src":"6444:110:49","nodes":[],"body":{"id":15865,"nodeType":"Block","src":"6523:31:49","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15861,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15854,"src":"6540:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15862,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15856,"src":"6545:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6540:7:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15860,"id":15864,"nodeType":"Return","src":"6533:14:49"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueLarger","nameLocation":"6453:16:49","parameters":{"id":15857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15854,"mutability":"mutable","name":"v1","nameLocation":"6478:2:49","nodeType":"VariableDeclaration","scope":15866,"src":"6470:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15853,"name":"uint256","nodeType":"ElementaryTypeName","src":"6470:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15856,"mutability":"mutable","name":"v2","nameLocation":"6490:2:49","nodeType":"VariableDeclaration","scope":15866,"src":"6482:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15855,"name":"uint256","nodeType":"ElementaryTypeName","src":"6482:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6469:24:49"},"returnParameters":{"id":15860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15866,"src":"6517:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15858,"name":"bool","nodeType":"ElementaryTypeName","src":"6517:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6516:6:49"},"scope":15867,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMinPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":15262,"nodeType":"StructuredDocumentation","src":"249:45:49","text":"The min index priority queue for staking"},"fullyImplemented":true,"linearizedBaseContracts":[15867],"name":"LibMinPQ","nameLocation":"302:8:49","scope":15868,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":49} \ No newline at end of file diff --git a/contracts/out/LibMultisignatureChecker.sol/MultisignatureChecker.json b/contracts/out/LibMultisignatureChecker.sol/MultisignatureChecker.json deleted file mode 100644 index 6e46a49e47..0000000000 --- a/contracts/out/LibMultisignatureChecker.sol/MultisignatureChecker.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122099fe7556e518a13c1c150f4873e11fdf2ebabf914eb6cc3682ff503b230382a464736f6c63430008130033","sourceMap":"201:2401:40:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122099fe7556e518a13c1c150f4873e11fdf2ebabf914eb6cc3682ff503b230382a464736f6c63430008130033","sourceMap":"201:2401:40:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Multi-signature ECDSA verification helper.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibMultisignatureChecker.sol\":\"MultisignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x5d8db3a26a3cb3dfbb61fa5bce7dbaaac4aed0a25cdefdc32453534a5882b39c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f6d26bd882d8fd63c96c78cd028f14453da46fe9955486e53d6c9242e08f0759\",\"dweb:/ipfs/QmWmVEVCZtARF9XndnszZ7Lw8fWz2xroxmjFxufSSbfB2w\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibMultisignatureChecker.sol":"MultisignatureChecker"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x5d8db3a26a3cb3dfbb61fa5bce7dbaaac4aed0a25cdefdc32453534a5882b39c","urls":["bzz-raw://f6d26bd882d8fd63c96c78cd028f14453da46fe9955486e53d6c9242e08f0759","dweb:/ipfs/QmWmVEVCZtARF9XndnszZ7Lw8fWz2xroxmjFxufSSbfB2w"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibMultisignatureChecker.sol","id":11382,"exportedSymbols":{"ECDSA":[2312],"MultisignatureChecker":[11381]},"nodeType":"SourceUnit","src":"46:2557:40","nodes":[{"id":11228,"nodeType":"PragmaDirective","src":"46:23:40","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11230,"nodeType":"ImportDirective","src":"71:74:40","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":11382,"sourceUnit":2313,"symbolAliases":[{"foreign":{"id":11229,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"79:5:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11381,"nodeType":"ContractDefinition","src":"201:2401:40","nodes":[{"id":11234,"nodeType":"VariableDeclaration","src":"237:44:40","nodes":[],"constant":true,"mutability":"constant","name":"SIGNATURE_LENGTH","nameLocation":"260:16:40","scope":11381,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11232,"name":"uint8","nodeType":"ElementaryTypeName","src":"237:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3635","id":11233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279:2:40","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"private"},{"id":11242,"nodeType":"EnumDefinition","src":"288:204:40","nodes":[],"canonicalName":"MultisignatureChecker.Error","members":[{"id":11235,"name":"Nil","nameLocation":"309:3:40","nodeType":"EnumValue","src":"309:3:40"},{"id":11236,"name":"InvalidArrayLength","nameLocation":"322:18:40","nodeType":"EnumValue","src":"322:18:40"},{"id":11237,"name":"EmptySignatures","nameLocation":"350:15:40","nodeType":"EnumValue","src":"350:15:40"},{"id":11238,"name":"InvalidSignatureLength","nameLocation":"375:22:40","nodeType":"EnumValue","src":"375:22:40"},{"id":11239,"name":"InvalidSignatory","nameLocation":"407:16:40","nodeType":"EnumValue","src":"407:16:40"},{"id":11240,"name":"InvalidSignature","nameLocation":"433:16:40","nodeType":"EnumValue","src":"433:16:40"},{"id":11241,"name":"WeightsSumLessThanThreshold","nameLocation":"459:27:40","nodeType":"EnumValue","src":"459:27:40"}],"name":"Error","nameLocation":"293:5:40"},{"id":11380,"nodeType":"FunctionDefinition","src":"1271:1329:40","nodes":[],"body":{"id":11379,"nodeType":"Block","src":"1508:1092:40","nodes":[],"statements":[{"assignments":[11265],"declarations":[{"constant":false,"id":11265,"mutability":"mutable","name":"valid","nameLocation":"1523:5:40","nodeType":"VariableDeclaration","scope":11379,"src":"1518:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11264,"name":"bool","nodeType":"ElementaryTypeName","src":"1518:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":11267,"initialValue":{"hexValue":"74727565","id":11266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1531:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"1518:17:40"},{"assignments":[11269],"declarations":[{"constant":false,"id":11269,"mutability":"mutable","name":"weight","nameLocation":"1553:6:40","nodeType":"VariableDeclaration","scope":11379,"src":"1545:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11268,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11270,"nodeType":"VariableDeclarationStatement","src":"1545:14:40"},{"assignments":[11272],"declarations":[{"constant":false,"id":11272,"mutability":"mutable","name":"signaturesNumber","nameLocation":"1578:16:40","nodeType":"VariableDeclaration","scope":11379,"src":"1570:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11271,"name":"uint256","nodeType":"ElementaryTypeName","src":"1570:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11275,"initialValue":{"expression":{"id":11273,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11256,"src":"1597:10:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":11274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1608:6:40","memberName":"length","nodeType":"MemberAccess","src":"1597:17:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1570:44:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11276,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"1628:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1648:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1628:21:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11286,"nodeType":"IfStatement","src":"1624:90:40","trueBody":{"id":11285,"nodeType":"Block","src":"1651:63:40","statements":[{"expression":{"components":[{"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1673:6:40","subExpression":{"id":11279,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"1674:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":11281,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"1681:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$11242_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":11282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1687:15:40","memberName":"EmptySignatures","nodeType":"MemberAccess","referencedDeclaration":11237,"src":"1681:21:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"id":11283,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1672:31:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":11263,"id":11284,"nodeType":"Return","src":"1665:38:40"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11287,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"1728:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":11288,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11246,"src":"1748:11:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1760:6:40","memberName":"length","nodeType":"MemberAccess","src":"1748:18:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1728:38:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11291,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"1770:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":11292,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11249,"src":"1790:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1798:6:40","memberName":"length","nodeType":"MemberAccess","src":"1790:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1770:34:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1728:76:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11303,"nodeType":"IfStatement","src":"1724:148:40","trueBody":{"id":11302,"nodeType":"Block","src":"1806:66:40","statements":[{"expression":{"components":[{"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1828:6:40","subExpression":{"id":11296,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"1829:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":11298,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"1836:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$11242_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":11299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1842:18:40","memberName":"InvalidArrayLength","nodeType":"MemberAccess","referencedDeclaration":11236,"src":"1836:24:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"id":11300,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1827:34:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":11263,"id":11301,"nodeType":"Return","src":"1820:41:40"}]}},{"body":{"id":11361,"nodeType":"Block","src":"1922:528:40","statements":[{"assignments":[11311,11314,null],"declarations":[{"constant":false,"id":11311,"mutability":"mutable","name":"recovered","nameLocation":"1945:9:40","nodeType":"VariableDeclaration","scope":11361,"src":"1937:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11310,"name":"address","nodeType":"ElementaryTypeName","src":"1937:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11314,"mutability":"mutable","name":"ecdsaErr","nameLocation":"1975:8:40","nodeType":"VariableDeclaration","scope":11361,"src":"1956:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":11313,"nodeType":"UserDefinedTypeName","pathNode":{"id":11312,"name":"ECDSA.RecoverError","nameLocations":["1956:5:40","1962:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":1909,"src":"1956:18:40"},"referencedDeclaration":1909,"src":"1956:18:40","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":11322,"initialValue":{"arguments":[{"id":11317,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11253,"src":"2030:4:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":11318,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11256,"src":"2063:10:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":11320,"indexExpression":{"id":11319,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11305,"src":"2074:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2063:13:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11315,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"1989:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$2312_$","typeString":"type(library ECDSA)"}},"id":11316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1995:10:40","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":2023,"src":"1989:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":11321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2024:4:40","2052:9:40"],"names":["hash","signature"],"nodeType":"FunctionCall","src":"1989:102:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1909_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1936:155:40"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"},"id":11327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11323,"name":"ecdsaErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11314,"src":"2109:8:40","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":11324,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"2121:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$2312_$","typeString":"type(library ECDSA)"}},"id":11325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2127:12:40","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":1909,"src":"2121:18:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1909_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":11326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2140:7:40","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1905,"src":"2121:26:40","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1909","typeString":"enum ECDSA.RecoverError"}},"src":"2109:38:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11335,"nodeType":"IfStatement","src":"2105:116:40","trueBody":{"id":11334,"nodeType":"Block","src":"2149:72:40","statements":[{"expression":{"components":[{"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2175:6:40","subExpression":{"id":11328,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"2176:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":11330,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2183:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$11242_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":11331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2189:16:40","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":11240,"src":"2183:22:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"id":11332,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2174:32:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":11263,"id":11333,"nodeType":"Return","src":"2167:39:40"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11336,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"2238:9:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":11337,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11246,"src":"2251:11:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11339,"indexExpression":{"id":11338,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11305,"src":"2263:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2251:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2238:27:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11348,"nodeType":"IfStatement","src":"2234:105:40","trueBody":{"id":11347,"nodeType":"Block","src":"2267:72:40","statements":[{"expression":{"components":[{"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2293:6:40","subExpression":{"id":11341,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"2294:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":11343,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2301:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$11242_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":11344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2307:16:40","memberName":"InvalidSignatory","nodeType":"MemberAccess","referencedDeclaration":11239,"src":"2301:22:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"id":11345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2292:32:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":11263,"id":11346,"nodeType":"Return","src":"2285:39:40"}]}},{"expression":{"id":11355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11349,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"2352:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11350,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"2361:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":11351,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11249,"src":"2370:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11353,"indexExpression":{"id":11352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11305,"src":"2378:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2370:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2361:19:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2352:28:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11356,"nodeType":"ExpressionStatement","src":"2352:28:40"},{"id":11360,"nodeType":"UncheckedBlock","src":"2394:46:40","statements":[{"expression":{"id":11358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2422:3:40","subExpression":{"id":11357,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11305,"src":"2424:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11359,"nodeType":"ExpressionStatement","src":"2422:3:40"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11305,"src":"1898:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11308,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"1902:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1898:20:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11362,"initializationExpression":{"assignments":[11305],"declarations":[{"constant":false,"id":11305,"mutability":"mutable","name":"i","nameLocation":"1895:1:40","nodeType":"VariableDeclaration","scope":11362,"src":"1887:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11306,"nodeType":"VariableDeclarationStatement","src":"1887:9:40"},"nodeType":"ForStatement","src":"1882:568:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11363,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"2463:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11364,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11251,"src":"2473:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2463:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11372,"nodeType":"IfStatement","src":"2459:75:40","trueBody":{"id":11371,"nodeType":"Block","src":"2484:50:40","statements":[{"expression":{"components":[{"id":11366,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"2506:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":11367,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2513:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$11242_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":11368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2519:3:40","memberName":"Nil","nodeType":"MemberAccess","referencedDeclaration":11235,"src":"2513:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"id":11369,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2505:18:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":11263,"id":11370,"nodeType":"Return","src":"2498:25:40"}]}},{"expression":{"components":[{"id":11374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2551:6:40","subExpression":{"id":11373,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"2552:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":11375,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2559:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$11242_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":11376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2565:27:40","memberName":"WeightsSumLessThanThreshold","nodeType":"MemberAccess","referencedDeclaration":11241,"src":"2559:33:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"id":11377,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2550:43:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":11263,"id":11378,"nodeType":"Return","src":"2543:50:40"}]},"documentation":{"id":11243,"nodeType":"StructuredDocumentation","src":"498:768:40","text":" @notice Checks if a weighted multi-signature is valid for a given message hash, set of signatories, set of weights, and set of signatures.\n @dev Signatures are validated using `ECDSA.recover`.\n The multi-signature fails if the sum of the signatory weights is less than the threshold.\n Signatories in `signatories` and signatures in `signatures` must have the same order.\n @param signatories The addresses of the signatories.\n @param weights The weights of the signatories.\n @param threshold The number that must be reach to consider `signatures` valid.\n @param hash of the verified data.\n @param signatures Packed signatures. Each signature is in `({bytes32 r}{bytes32 s}{uint8 v})` format."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidWeightedMultiSignature","nameLocation":"1280:29:40","parameters":{"id":11257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11246,"mutability":"mutable","name":"signatories","nameLocation":"1336:11:40","nodeType":"VariableDeclaration","scope":11380,"src":"1319:28:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11244,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11245,"nodeType":"ArrayTypeName","src":"1319:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":11249,"mutability":"mutable","name":"weights","nameLocation":"1374:7:40","nodeType":"VariableDeclaration","scope":11380,"src":"1357:24:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11247,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11248,"nodeType":"ArrayTypeName","src":"1357:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":11251,"mutability":"mutable","name":"threshold","nameLocation":"1399:9:40","nodeType":"VariableDeclaration","scope":11380,"src":"1391:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11250,"name":"uint256","nodeType":"ElementaryTypeName","src":"1391:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11253,"mutability":"mutable","name":"hash","nameLocation":"1426:4:40","nodeType":"VariableDeclaration","scope":11380,"src":"1418:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1418:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11256,"mutability":"mutable","name":"signatures","nameLocation":"1455:10:40","nodeType":"VariableDeclaration","scope":11380,"src":"1440:25:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11254,"name":"bytes","nodeType":"ElementaryTypeName","src":"1440:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11255,"nodeType":"ArrayTypeName","src":"1440:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1309:162:40"},"returnParameters":{"id":11263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11380,"src":"1495:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11258,"name":"bool","nodeType":"ElementaryTypeName","src":"1495:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11380,"src":"1501:5:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":11261,"nodeType":"UserDefinedTypeName","pathNode":{"id":11260,"name":"Error","nameLocations":["1501:5:40"],"nodeType":"IdentifierPath","referencedDeclaration":11242,"src":"1501:5:40"},"referencedDeclaration":11242,"src":"1501:5:40","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"src":"1494:13:40"},"scope":11381,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MultisignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":11231,"nodeType":"StructuredDocumentation","src":"147:54:40","text":"@title Multi-signature ECDSA verification helper."},"fullyImplemented":true,"linearizedBaseContracts":[11381],"name":"MultisignatureChecker","nameLocation":"209:21:40","scope":11382,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":40} \ No newline at end of file diff --git a/contracts/out/LibPQ.sol/LibPQ.json b/contracts/out/LibPQ.sol/LibPQ.json deleted file mode 100644 index 71531d4a1f..0000000000 --- a/contracts/out/LibPQ.sol/LibPQ.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212206116bc485aafc8eba81fe3f15ea5f6c405248f254aa20ae44751099daa7550c464736f6c63430008130033","sourceMap":"802:1669:50:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206116bc485aafc8eba81fe3f15ea5f6c405248f254aa20ae44751099daa7550c464736f6c63430008130033","sourceMap":"802:1669:50:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibPQ.sol\":\"LibPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibPQ.sol":"LibPQ"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibPQ.sol","id":16107,"exportedSymbols":{"LibPQ":[16106],"LibValidatorSet":[12589],"PQ":[15890],"PQDoesNotContainAddress":[6167],"PQEmpty":[6169],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:2426:50","nodes":[{"id":15869,"nodeType":"PragmaDirective","src":"46:23:50","nodes":[],"literals":["solidity","0.8",".19"]},{"id":15871,"nodeType":"ImportDirective","src":"71:50:50","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":16107,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":15870,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"79:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15873,"nodeType":"ImportDirective","src":"122:54:50","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":16107,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":15872,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"130:12:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15876,"nodeType":"ImportDirective","src":"177:76:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":16107,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":15874,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"185:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":15875,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"194:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15890,"nodeType":"StructDefinition","src":"431:369:50","nodes":[],"canonicalName":"PQ","members":[{"constant":false,"id":15879,"mutability":"mutable","name":"size","nameLocation":"493:4:50","nodeType":"VariableDeclaration","scope":15890,"src":"486:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15878,"name":"uint16","nodeType":"ElementaryTypeName","src":"486:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":15884,"mutability":"mutable","name":"addressToPos","nameLocation":"650:12:50","nodeType":"VariableDeclaration","scope":15890,"src":"623:39:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"typeName":{"id":15883,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15881,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15882,"name":"uint16","nodeType":"ElementaryTypeName","src":"642:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}},"visibility":"internal"},{"constant":false,"id":15889,"mutability":"mutable","name":"posToAddress","nameLocation":"785:12:50","nodeType":"VariableDeclaration","scope":15890,"src":"758:39:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"typeName":{"id":15888,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15886,"name":"uint16","nodeType":"ElementaryTypeName","src":"766:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"758:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15887,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"}],"name":"PQ","nameLocation":"438:2:50","scope":16107,"visibility":"public"},{"id":16106,"nodeType":"ContractDefinition","src":"802:1669:50","nodes":[{"id":15894,"nodeType":"UsingForDirective","src":"822:39:50","nodes":[],"global":false,"libraryName":{"id":15891,"name":"LibValidatorSet","nameLocations":["828:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"828:15:50"},"typeName":{"id":15893,"nodeType":"UserDefinedTypeName","pathNode":{"id":15892,"name":"ValidatorSet","nameLocations":["848:12:50"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"848:12:50"},"referencedDeclaration":16313,"src":"848:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":15908,"nodeType":"FunctionDefinition","src":"867:101:50","nodes":[],"body":{"id":15907,"nodeType":"Block","src":"930:38:50","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15902,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15897,"src":"947:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:4:50","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"947:9:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"960:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"947:14:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15901,"id":15906,"nodeType":"Return","src":"940:21:50"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"876:7:50","parameters":{"id":15898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15897,"mutability":"mutable","name":"self","nameLocation":"895:4:50","nodeType":"VariableDeclaration","scope":15908,"src":"884:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15896,"nodeType":"UserDefinedTypeName","pathNode":{"id":15895,"name":"PQ","nameLocations":["884:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"884:2:50"},"referencedDeclaration":15890,"src":"884:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"883:17:50"},"returnParameters":{"id":15901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15908,"src":"924:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15899,"name":"bool","nodeType":"ElementaryTypeName","src":"924:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"923:6:50"},"scope":16106,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15924,"nodeType":"FunctionDefinition","src":"974:133:50","nodes":[],"body":{"id":15923,"nodeType":"Block","src":"1030:77:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15914,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15911,"src":"1044:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1049:4:50","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1044:9:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1057:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1044:14:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15922,"nodeType":"IfStatement","src":"1040:61:50","trueBody":{"id":15921,"nodeType":"Block","src":"1060:41:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15918,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"1081:7:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1081:9:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15920,"nodeType":"RevertStatement","src":"1074:16:50"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"requireNotEmpty","nameLocation":"983:15:50","parameters":{"id":15912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15911,"mutability":"mutable","name":"self","nameLocation":"1010:4:50","nodeType":"VariableDeclaration","scope":15924,"src":"999:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15910,"nodeType":"UserDefinedTypeName","pathNode":{"id":15909,"name":"PQ","nameLocations":["999:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"999:2:50"},"referencedDeclaration":15890,"src":"999:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"998:17:50"},"returnParameters":{"id":15913,"nodeType":"ParameterList","parameters":[],"src":"1030:0:50"},"scope":16106,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15936,"nodeType":"FunctionDefinition","src":"1113:98:50","nodes":[],"body":{"id":15935,"nodeType":"Block","src":"1178:33:50","nodes":[],"statements":[{"expression":{"expression":{"id":15932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15927,"src":"1195:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1200:4:50","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"1195:9:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":15931,"id":15934,"nodeType":"Return","src":"1188:16:50"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"1122:7:50","parameters":{"id":15928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15927,"mutability":"mutable","name":"self","nameLocation":"1141:4:50","nodeType":"VariableDeclaration","scope":15936,"src":"1130:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15926,"nodeType":"UserDefinedTypeName","pathNode":{"id":15925,"name":"PQ","nameLocations":["1130:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"1130:2:50"},"referencedDeclaration":15890,"src":"1130:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"1129:17:50"},"returnParameters":{"id":15931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15936,"src":"1170:6:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15929,"name":"uint16","nodeType":"ElementaryTypeName","src":"1170:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1169:8:50"},"scope":16106,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15954,"nodeType":"FunctionDefinition","src":"1217:140:50","nodes":[],"body":{"id":15953,"nodeType":"Block","src":"1300:57:50","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":15946,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15939,"src":"1317:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1322:12:50","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"1317:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":15949,"indexExpression":{"id":15948,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"1335:9:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1317:28:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15945,"id":15952,"nodeType":"Return","src":"1310:40:50"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"1226:8:50","parameters":{"id":15942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15939,"mutability":"mutable","name":"self","nameLocation":"1246:4:50","nodeType":"VariableDeclaration","scope":15954,"src":"1235:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15938,"nodeType":"UserDefinedTypeName","pathNode":{"id":15937,"name":"PQ","nameLocations":["1235:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"1235:2:50"},"referencedDeclaration":15890,"src":"1235:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":15941,"mutability":"mutable","name":"validator","nameLocation":"1260:9:50","nodeType":"VariableDeclaration","scope":15954,"src":"1252:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15940,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1234:36:50"},"returnParameters":{"id":15945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15954,"src":"1294:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15943,"name":"bool","nodeType":"ElementaryTypeName","src":"1294:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1293:6:50"},"scope":16106,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15980,"nodeType":"FunctionDefinition","src":"1363:226:50","nodes":[],"body":{"id":15979,"nodeType":"Block","src":"1458:131:50","nodes":[],"statements":[{"expression":{"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15964,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15962,"src":"1468:3:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":15965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15957,"src":"1474:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1479:12:50","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"1474:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":15968,"indexExpression":{"id":15967,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"1492:9:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1474:28:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1468:34:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":15970,"nodeType":"ExpressionStatement","src":"1468:34:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":15973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15971,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15962,"src":"1516:3:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1516:8:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15978,"nodeType":"IfStatement","src":"1512:71:50","trueBody":{"id":15977,"nodeType":"Block","src":"1526:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15974,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1547:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15976,"nodeType":"RevertStatement","src":"1540:32:50"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPosOrRevert","nameLocation":"1372:14:50","parameters":{"id":15960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15957,"mutability":"mutable","name":"self","nameLocation":"1398:4:50","nodeType":"VariableDeclaration","scope":15980,"src":"1387:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15956,"nodeType":"UserDefinedTypeName","pathNode":{"id":15955,"name":"PQ","nameLocations":["1387:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"1387:2:50"},"referencedDeclaration":15890,"src":"1387:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":15959,"mutability":"mutable","name":"validator","nameLocation":"1412:9:50","nodeType":"VariableDeclaration","scope":15980,"src":"1404:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15958,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:36:50"},"returnParameters":{"id":15963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15962,"mutability":"mutable","name":"pos","nameLocation":"1453:3:50","nodeType":"VariableDeclaration","scope":15980,"src":"1446:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15961,"name":"uint16","nodeType":"ElementaryTypeName","src":"1446:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1445:12:50"},"scope":16106,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16008,"nodeType":"FunctionDefinition","src":"1595:184:50","nodes":[],"body":{"id":16007,"nodeType":"Block","src":"1646:133:50","nodes":[],"statements":[{"assignments":[15989],"declarations":[{"constant":false,"id":15989,"mutability":"mutable","name":"addr","nameLocation":"1664:4:50","nodeType":"VariableDeclaration","scope":16007,"src":"1656:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15988,"name":"address","nodeType":"ElementaryTypeName","src":"1656:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15994,"initialValue":{"baseExpression":{"expression":{"id":15990,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"1671:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1676:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"1671:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":15993,"indexExpression":{"id":15992,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15985,"src":"1689:3:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1671:22:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1656:37:50"},{"expression":{"id":15999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1703:29:50","subExpression":{"baseExpression":{"expression":{"id":15995,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"1710:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":15996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1715:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"1710:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":15998,"indexExpression":{"id":15997,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15985,"src":"1728:3:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1710:22:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16000,"nodeType":"ExpressionStatement","src":"1703:29:50"},{"expression":{"id":16005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1742:30:50","subExpression":{"baseExpression":{"expression":{"id":16001,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"1749:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1754:12:50","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"1749:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":16004,"indexExpression":{"id":16003,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15989,"src":"1767:4:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1749:23:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16006,"nodeType":"ExpressionStatement","src":"1742:30:50"}]},"implemented":true,"kind":"function","modifiers":[],"name":"del","nameLocation":"1604:3:50","parameters":{"id":15986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15983,"mutability":"mutable","name":"self","nameLocation":"1619:4:50","nodeType":"VariableDeclaration","scope":16008,"src":"1608:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":15982,"nodeType":"UserDefinedTypeName","pathNode":{"id":15981,"name":"PQ","nameLocations":["1608:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"1608:2:50"},"referencedDeclaration":15890,"src":"1608:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":15985,"mutability":"mutable","name":"pos","nameLocation":"1632:3:50","nodeType":"VariableDeclaration","scope":16008,"src":"1625:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":15984,"name":"uint16","nodeType":"ElementaryTypeName","src":"1625:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1607:29:50"},"returnParameters":{"id":15987,"nodeType":"ParameterList","parameters":[],"src":"1646:0:50"},"scope":16106,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":16034,"nodeType":"FunctionDefinition","src":"1785:266:50","nodes":[],"body":{"id":16033,"nodeType":"Block","src":"1941:110:50","nodes":[],"statements":[{"assignments":[16022],"declarations":[{"constant":false,"id":16022,"mutability":"mutable","name":"addr","nameLocation":"1959:4:50","nodeType":"VariableDeclaration","scope":16033,"src":"1951:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16021,"name":"address","nodeType":"ElementaryTypeName","src":"1951:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16027,"initialValue":{"baseExpression":{"expression":{"id":16023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16011,"src":"1966:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1971:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"1966:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":16026,"indexExpression":{"id":16025,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16016,"src":"1984:3:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1966:22:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1951:37:50"},{"expression":{"arguments":[{"id":16030,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16022,"src":"2039:4:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16028,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16014,"src":"2005:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":16029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2016:22:50","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11836,"src":"2005:33:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":16031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:39:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16020,"id":16032,"nodeType":"Return","src":"1998:46:50"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"1794:22:50","parameters":{"id":16017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16011,"mutability":"mutable","name":"self","nameLocation":"1837:4:50","nodeType":"VariableDeclaration","scope":16034,"src":"1826:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":16010,"nodeType":"UserDefinedTypeName","pathNode":{"id":16009,"name":"PQ","nameLocations":["1826:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"1826:2:50"},"referencedDeclaration":15890,"src":"1826:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":16014,"mutability":"mutable","name":"validators","nameLocation":"1872:10:50","nodeType":"VariableDeclaration","scope":16034,"src":"1851:31:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":16013,"nodeType":"UserDefinedTypeName","pathNode":{"id":16012,"name":"ValidatorSet","nameLocations":["1851:12:50"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"1851:12:50"},"referencedDeclaration":16313,"src":"1851:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":16016,"mutability":"mutable","name":"pos","nameLocation":"1899:3:50","nodeType":"VariableDeclaration","scope":16034,"src":"1892:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16015,"name":"uint16","nodeType":"ElementaryTypeName","src":"1892:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1816:92:50"},"returnParameters":{"id":16020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16034,"src":"1932:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16018,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1931:9:50"},"scope":16106,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16105,"nodeType":"FunctionDefinition","src":"2057:412:50","nodes":[],"body":{"id":16104,"nodeType":"Block","src":"2127:342:50","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":16048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16045,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16039,"src":"2144:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16046,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2152:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2157:4:50","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"2152:9:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2144:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16044,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2137:6:50","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2137:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16050,"nodeType":"ExpressionStatement","src":"2137:25:50"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":16055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16052,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"2179:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16053,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2187:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:4:50","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":15879,"src":"2187:9:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2179:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16051,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2172:6:50","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16057,"nodeType":"ExpressionStatement","src":"2172:25:50"},{"assignments":[16059],"declarations":[{"constant":false,"id":16059,"mutability":"mutable","name":"addr1","nameLocation":"2216:5:50","nodeType":"VariableDeclaration","scope":16104,"src":"2208:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16058,"name":"address","nodeType":"ElementaryTypeName","src":"2208:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16064,"initialValue":{"baseExpression":{"expression":{"id":16060,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2224:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2229:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"2224:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":16063,"indexExpression":{"id":16062,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16039,"src":"2242:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2224:23:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2208:39:50"},{"assignments":[16066],"declarations":[{"constant":false,"id":16066,"mutability":"mutable","name":"addr2","nameLocation":"2265:5:50","nodeType":"VariableDeclaration","scope":16104,"src":"2257:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16065,"name":"address","nodeType":"ElementaryTypeName","src":"2257:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16071,"initialValue":{"baseExpression":{"expression":{"id":16067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2273:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2278:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"2273:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":16070,"indexExpression":{"id":16069,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"2291:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2273:23:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2257:39:50"},{"expression":{"id":16078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":16072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2307:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2312:12:50","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"2307:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":16076,"indexExpression":{"id":16074,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16059,"src":"2325:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2307:24:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16077,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"2334:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2307:31:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":16079,"nodeType":"ExpressionStatement","src":"2307:31:50"},{"expression":{"id":16086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":16080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2348:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2353:12:50","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":15884,"src":"2348:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":16084,"indexExpression":{"id":16082,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16066,"src":"2366:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2348:24:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16085,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16039,"src":"2375:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2348:31:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":16087,"nodeType":"ExpressionStatement","src":"2348:31:50"},{"expression":{"id":16094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":16088,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2390:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2395:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"2390:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":16092,"indexExpression":{"id":16090,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"2408:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2390:23:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16093,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16059,"src":"2416:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2390:31:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16095,"nodeType":"ExpressionStatement","src":"2390:31:50"},{"expression":{"id":16102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":16096,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"2431:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ storage pointer"}},"id":16099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2436:12:50","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":15889,"src":"2431:17:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":16100,"indexExpression":{"id":16098,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16039,"src":"2449:4:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2431:23:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16101,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16066,"src":"2457:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2431:31:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16103,"nodeType":"ExpressionStatement","src":"2431:31:50"}]},"implemented":true,"kind":"function","modifiers":[],"name":"exchange","nameLocation":"2066:8:50","parameters":{"id":16042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16037,"mutability":"mutable","name":"self","nameLocation":"2086:4:50","nodeType":"VariableDeclaration","scope":16105,"src":"2075:15:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"},"typeName":{"id":16036,"nodeType":"UserDefinedTypeName","pathNode":{"id":16035,"name":"PQ","nameLocations":["2075:2:50"],"nodeType":"IdentifierPath","referencedDeclaration":15890,"src":"2075:2:50"},"referencedDeclaration":15890,"src":"2075:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$15890_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":16039,"mutability":"mutable","name":"pos1","nameLocation":"2099:4:50","nodeType":"VariableDeclaration","scope":16105,"src":"2092:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16038,"name":"uint16","nodeType":"ElementaryTypeName","src":"2092:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":16041,"mutability":"mutable","name":"pos2","nameLocation":"2112:4:50","nodeType":"VariableDeclaration","scope":16105,"src":"2105:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16040,"name":"uint16","nodeType":"ElementaryTypeName","src":"2105:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2074:43:50"},"returnParameters":{"id":16043,"nodeType":"ParameterList","parameters":[],"src":"2127:0:50"},"scope":16106,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibPQ","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[16106],"name":"LibPQ","nameLocation":"810:5:50","scope":16107,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":50} \ No newline at end of file diff --git a/contracts/out/LibReentrancyGuard.sol/ReentrancyGuard.json b/contracts/out/LibReentrancyGuard.sol/ReentrancyGuard.json deleted file mode 100644 index 7ad162a144..0000000000 --- a/contracts/out/LibReentrancyGuard.sol/ReentrancyGuard.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Reentrancy Guard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract to provide protection against reentrancy\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibReentrancyGuard.sol":"ReentrancyGuard"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibReentrancyGuard.sol","id":11447,"exportedSymbols":{"ReentrancyGuard":[11446]},"nodeType":"SourceUnit","src":"46:966:41","nodes":[{"id":11383,"nodeType":"PragmaDirective","src":"46:23:41","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11446,"nodeType":"ContractDefinition","src":"170:841:41","nodes":[{"id":11389,"nodeType":"VariableDeclaration","src":"210:85:41","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"235:9:41","scope":11446,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7265656e7472616e637967756172642e6c69622e6469616d6f6e642e73746f72616765","id":11387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"257:37:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""},"value":"reentrancyguard.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""}],"id":11386,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"247:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247:48:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":11392,"nodeType":"StructDefinition","src":"302:56:41","nodes":[],"canonicalName":"ReentrancyGuard.ReentrancyStorage","members":[{"constant":false,"id":11391,"mutability":"mutable","name":"status","nameLocation":"345:6:41","nodeType":"VariableDeclaration","scope":11392,"src":"337:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11390,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ReentrancyStorage","nameLocation":"309:17:41","scope":11446,"visibility":"public"},{"id":11394,"nodeType":"ErrorDefinition","src":"364:24:41","nodes":[],"errorSelector":"29f745a7","name":"ReentrancyError","nameLocation":"370:15:41","parameters":{"id":11393,"nodeType":"ParameterList","parameters":[],"src":"385:2:41"}},{"id":11397,"nodeType":"VariableDeclaration","src":"394:41:41","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"419:12:41","scope":11446,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11395,"name":"uint256","nodeType":"ElementaryTypeName","src":"394:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":11396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"434:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":11400,"nodeType":"VariableDeclaration","src":"441:37:41","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"466:8:41","scope":11446,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11398,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":11399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"477:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":11430,"nodeType":"ModifierDefinition","src":"485:223:41","nodes":[],"body":{"id":11429,"nodeType":"Block","src":"509:199:41","nodes":[],"statements":[{"assignments":[11404],"declarations":[{"constant":false,"id":11404,"mutability":"mutable","name":"s","nameLocation":"545:1:41","nodeType":"VariableDeclaration","scope":11429,"src":"519:27:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":11403,"nodeType":"UserDefinedTypeName","pathNode":{"id":11402,"name":"ReentrancyStorage","nameLocations":["519:17:41"],"nodeType":"IdentifierPath","referencedDeclaration":11392,"src":"519:17:41"},"referencedDeclaration":11392,"src":"519:17:41","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"id":11407,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11405,"name":"reentrancyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11445,"src":"549:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ReentrancyStorage_$11392_storage_ptr_$","typeString":"function () pure returns (struct ReentrancyGuard.ReentrancyStorage storage pointer)"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"549:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"519:49:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11408,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11404,"src":"582:1:41","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":11409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"584:6:41","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":11391,"src":"582:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11410,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11400,"src":"594:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"582:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11415,"nodeType":"IfStatement","src":"578:50:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11412,"name":"ReentrancyError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11394,"src":"611:15:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11414,"nodeType":"RevertStatement","src":"604:24:41"}},{"expression":{"id":11420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11416,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11404,"src":"638:1:41","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":11418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"640:6:41","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":11391,"src":"638:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11419,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11400,"src":"649:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"638:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11421,"nodeType":"ExpressionStatement","src":"638:19:41"},{"id":11422,"nodeType":"PlaceholderStatement","src":"667:1:41"},{"expression":{"id":11427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11404,"src":"678:1:41","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":11425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"680:6:41","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":11391,"src":"678:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11426,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"689:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"678:23:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11428,"nodeType":"ExpressionStatement","src":"678:23:41"}]},"name":"nonReentrant","nameLocation":"494:12:41","parameters":{"id":11401,"nodeType":"ParameterList","parameters":[],"src":"506:2:41"},"virtual":false,"visibility":"internal"},{"id":11445,"nodeType":"FunctionDefinition","src":"747:262:41","nodes":[],"body":{"id":11444,"nodeType":"Block","src":"828:181:41","nodes":[],"statements":[{"assignments":[11438],"declarations":[{"constant":false,"id":11438,"mutability":"mutable","name":"position","nameLocation":"846:8:41","nodeType":"VariableDeclaration","scope":11444,"src":"838:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"838:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11440,"initialValue":{"id":11439,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11389,"src":"857:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"838:28:41"},{"AST":{"nodeType":"YulBlock","src":"941:43:41","statements":[{"nodeType":"YulAssignment","src":"955:19:41","value":{"name":"position","nodeType":"YulIdentifier","src":"966:8:41"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"955:7:41"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11435,"isOffset":false,"isSlot":true,"src":"955:7:41","suffix":"slot","valueSize":1},{"declaration":11438,"isOffset":false,"isSlot":false,"src":"966:8:41","valueSize":1}],"id":11441,"nodeType":"InlineAssembly","src":"932:52:41"},{"expression":{"id":11442,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11435,"src":"1000:2:41","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"functionReturnParameters":11436,"id":11443,"nodeType":"Return","src":"993:9:41"}]},"documentation":{"id":11431,"nodeType":"StructuredDocumentation","src":"714:28:41","text":"@dev fetch local storage"},"implemented":true,"kind":"function","modifiers":[],"name":"reentrancyStorage","nameLocation":"756:17:41","parameters":{"id":11432,"nodeType":"ParameterList","parameters":[],"src":"773:2:41"},"returnParameters":{"id":11436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11435,"mutability":"mutable","name":"ds","nameLocation":"824:2:41","nodeType":"VariableDeclaration","scope":11445,"src":"798:28:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":11434,"nodeType":"UserDefinedTypeName","pathNode":{"id":11433,"name":"ReentrancyStorage","nameLocations":["798:17:41"],"nodeType":"IdentifierPath","referencedDeclaration":11392,"src":"798:17:41"},"referencedDeclaration":11392,"src":"798:17:41","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$11392_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"src":"797:30:41"},"scope":11446,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":11384,"nodeType":"StructuredDocumentation","src":"71:99:41","text":"@title Reentrancy Guard\n @notice Abstract contract to provide protection against reentrancy"},"fullyImplemented":true,"linearizedBaseContracts":[11446],"name":"ReentrancyGuard","nameLocation":"188:15:41","scope":11447,"usedErrors":[11394]}],"license":"MIT OR Apache-2.0"},"id":41} \ No newline at end of file diff --git a/contracts/out/LibStaking.sol/LibAddressStakingReleases.json b/contracts/out/LibStaking.sol/LibAddressStakingReleases.json deleted file mode 100644 index f887319a92..0000000000 --- a/contracts/out/LibStaking.sol/LibAddressStakingReleases.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ac710231a658ee7eb3f5cdc56c0cd9770e34e0db17244a6a45b829cb653a018764736f6c63430008130033","sourceMap":"981:1635:42:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ac710231a658ee7eb3f5cdc56c0cd9770e34e0db17244a6a45b829cb653a018764736f6c63430008130033","sourceMap":"981:1635:42:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibAddressStakingReleases\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibAddressStakingReleases"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":13522,"exportedSymbols":{"Address":[1625],"AddressShouldBeValidator":[6051],"AddressStakingReleases":[16274],"CannotConfirmFutureChanges":[6055],"GatewayActorStorage":[11147],"IGateway":[8843],"InvalidConfigurationNumber":[6091],"LibAddressStakingReleases":[11618],"LibGatewayActorStorage":[11158],"LibMaxPQ":[15248],"LibMinPQ":[15867],"LibStaking":[13299],"LibStakingChangeLog":[13719],"LibStakingReleaseQueue":[11737],"LibSubnetActorStorage":[13850],"LibValidatorSet":[12589],"LibValidatorTracking":[13521],"MaxPQ":[14643],"MinPQ":[15261],"NoCollateralToWithdraw":[6121],"NoRewardToWithdraw":[6123],"NotValidator":[6163],"ParentValidatorsTracker":[16320],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingChangeRequest":[16244],"StakingOperation":[16230],"StakingRelease":[16264],"StakingReleaseQueue":[16284],"SubnetActorStorage":[13839],"Validator":[16334],"ValidatorSet":[16313],"WithdrawExceedingCollateral":[6183]},"nodeType":"SourceUnit","src":"46:25012:42","nodes":[{"id":11448,"nodeType":"PragmaDirective","src":"46:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11450,"nodeType":"ImportDirective","src":"71:52:42","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":8844,"symbolAliases":[{"foreign":{"id":11449,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"79:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11453,"nodeType":"ImportDirective","src":"124:86:42","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":11451,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"132:21:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11452,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"155:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11456,"nodeType":"ImportDirective","src":"211:94:42","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":11454,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"219:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11455,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"240:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11459,"nodeType":"ImportDirective","src":"306:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15249,"symbolAliases":[{"foreign":{"id":11457,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"314:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11458,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14643,"src":"324:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11462,"nodeType":"ImportDirective","src":"363:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15868,"symbolAliases":[{"foreign":{"id":11460,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"371:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11461,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"381:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11464,"nodeType":"ImportDirective","src":"420:62:42","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13720,"symbolAliases":[{"foreign":{"id":11463,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"428:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11475,"nodeType":"ImportDirective","src":"483:221:42","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11465,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"491:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11466,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"512:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11467,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"530:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11468,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"545:20:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"567:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11470,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"585:14:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11471,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"601:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11472,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16274,"src":"615:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11473,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"639:23:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11474,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"664:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11483,"nodeType":"ImportDirective","src":"705:208:42","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11476,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"713:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11477,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"733:27:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11478,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"762:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11479,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"776:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11480,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"804:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11481,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"828:24:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11482,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"854:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11485,"nodeType":"ImportDirective","src":"914:65:42","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":11484,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"922:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11618,"nodeType":"ContractDefinition","src":"981:1635:42","nodes":[{"id":11524,"nodeType":"FunctionDefinition","src":"1197:261:42","nodes":[],"body":{"id":11523,"nodeType":"Block","src":"1288:170:42","nodes":[],"statements":[{"assignments":[11496],"declarations":[{"constant":false,"id":11496,"mutability":"mutable","name":"length","nameLocation":"1305:6:42","nodeType":"VariableDeclaration","scope":11523,"src":"1298:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1298:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11499,"initialValue":{"expression":{"id":11497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1314:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1319:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1314:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1298:27:42"},{"assignments":[11501],"declarations":[{"constant":false,"id":11501,"mutability":"mutable","name":"nextIdx","nameLocation":"1342:7:42","nodeType":"VariableDeclaration","scope":11523,"src":"1335:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11500,"name":"uint16","nodeType":"ElementaryTypeName","src":"1335:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11506,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1352:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1357:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1352:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11504,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1368:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1352:22:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1335:39:42"},{"expression":{"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1385:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1390:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"1385:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11511,"indexExpression":{"id":11509,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"1399:7:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1385:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11512,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11492,"src":"1410:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1385:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"id":11514,"nodeType":"ExpressionStatement","src":"1385:32:42"},{"expression":{"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11515,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1427:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1432:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1427:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11518,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1441:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1441:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1427:24:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11522,"nodeType":"ExpressionStatement","src":"1427:24:42"}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"1021:171:42","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1206:4:42","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11489,"mutability":"mutable","name":"self","nameLocation":"1242:4:42","nodeType":"VariableDeclaration","scope":11524,"src":"1211:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11488,"nodeType":"UserDefinedTypeName","pathNode":{"id":11487,"name":"AddressStakingReleases","nameLocations":["1211:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1211:22:42"},"referencedDeclaration":16274,"src":"1211:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"release","nameLocation":"1270:7:42","nodeType":"VariableDeclaration","scope":11524,"src":"1248:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11491,"nodeType":"UserDefinedTypeName","pathNode":{"id":11490,"name":"StakingRelease","nameLocations":["1248:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"1248:14:42"},"referencedDeclaration":16264,"src":"1248:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1210:68:42"},"returnParameters":{"id":11494,"nodeType":"ParameterList","parameters":[],"src":"1288:0:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11617,"nodeType":"FunctionDefinition","src":"1716:898:42","nodes":[],"body":{"id":11616,"nodeType":"Block","src":"1805:809:42","nodes":[],"statements":[{"assignments":[11536],"declarations":[{"constant":false,"id":11536,"mutability":"mutable","name":"length","nameLocation":"1822:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"1815:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11535,"name":"uint16","nodeType":"ElementaryTypeName","src":"1815:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11539,"initialValue":{"expression":{"id":11537,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1831:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1831:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1815:27:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1856:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1861:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1856:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1871:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1856:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11548,"nodeType":"IfStatement","src":"1852:78:42","trueBody":{"id":11547,"nodeType":"Block","src":"1874:56:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11544,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1895:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"RevertStatement","src":"1888:31:42"}]}},{"assignments":[11550],"declarations":[{"constant":false,"id":11550,"mutability":"mutable","name":"i","nameLocation":"1947:1:42","nodeType":"VariableDeclaration","scope":11616,"src":"1940:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11549,"name":"uint16","nodeType":"ElementaryTypeName","src":"1940:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11553,"initialValue":{"expression":{"id":11551,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1951:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1956:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1951:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1940:24:42"},{"assignments":[11555],"declarations":[{"constant":false,"id":11555,"mutability":"mutable","name":"newLength","nameLocation":"1981:9:42","nodeType":"VariableDeclaration","scope":11616,"src":"1974:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1974:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11557,"initialValue":{"id":11556,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"1993:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1974:25:42"},{"assignments":[11559],"declarations":[{"constant":false,"id":11559,"mutability":"mutable","name":"amount","nameLocation":"2017:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"2009:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11560,"nodeType":"VariableDeclarationStatement","src":"2009:14:42"},{"body":{"id":11598,"nodeType":"Block","src":"2052:458:42","statements":[{"assignments":[11566],"declarations":[{"constant":false,"id":11566,"mutability":"mutable","name":"release","nameLocation":"2088:7:42","nodeType":"VariableDeclaration","scope":11598,"src":"2066:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11565,"nodeType":"UserDefinedTypeName","pathNode":{"id":11564,"name":"StakingRelease","nameLocations":["2066:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"2066:14:42"},"referencedDeclaration":16264,"src":"2066:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11571,"initialValue":{"baseExpression":{"expression":{"id":11567,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2103:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2098:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11570,"indexExpression":{"id":11569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2112:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2066:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11572,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2263:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2271:9:42","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":16260,"src":"2263:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":11574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2283:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2289:6:42","memberName":"number","nodeType":"MemberAccess","src":"2283:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2263:32:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11579,"nodeType":"IfStatement","src":"2259:76:42","trueBody":{"id":11578,"nodeType":"Block","src":"2297:38:42","statements":[{"id":11577,"nodeType":"Break","src":"2315:5:42"}]}},{"expression":{"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":11581,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2359:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2367:6:42","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":16263,"src":"2359:14:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2349:24:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11584,"nodeType":"ExpressionStatement","src":"2349:24:42"},{"expression":{"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2387:23:42","subExpression":{"baseExpression":{"expression":{"id":11585,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2394:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2394:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11588,"indexExpression":{"id":11587,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2408:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2394:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"2387:23:42"},{"id":11597,"nodeType":"UncheckedBlock","src":"2425:75:42","statements":[{"expression":{"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2453:3:42","subExpression":{"id":11591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2455:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11593,"nodeType":"ExpressionStatement","src":"2453:3:42"},{"expression":{"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2474:11:42","subExpression":{"id":11594,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2476:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11596,"nodeType":"ExpressionStatement","src":"2474:11:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2040:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11562,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"2044:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2040:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11599,"nodeType":"WhileStatement","src":"2033:477:42"},{"expression":{"id":11604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2520:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2525:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"2520:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2536:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2520:17:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11605,"nodeType":"ExpressionStatement","src":"2520:17:42"},{"expression":{"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11606,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2547:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2552:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"2547:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11609,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2561:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2547:23:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11611,"nodeType":"ExpressionStatement","src":"2547:23:42"},{"expression":{"components":[{"id":11612,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2589:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11613,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2597:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":11614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2588:19:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":11534,"id":11615,"nodeType":"Return","src":"2581:26:42"}]},"documentation":{"id":11525,"nodeType":"StructuredDocumentation","src":"1464:247:42","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1725:7:42","parameters":{"id":11529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11528,"mutability":"mutable","name":"self","nameLocation":"1764:4:42","nodeType":"VariableDeclaration","scope":11617,"src":"1733:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11527,"nodeType":"UserDefinedTypeName","pathNode":{"id":11526,"name":"AddressStakingReleases","nameLocations":["1733:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1733:22:42"},"referencedDeclaration":16274,"src":"1733:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1732:37:42"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1788:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1797:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11532,"name":"uint16","nodeType":"ElementaryTypeName","src":"1797:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1787:17:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11618],"name":"LibAddressStakingReleases","nameLocation":"989:25:42","scope":13522,"usedErrors":[]},{"id":11737,"nodeType":"ContractDefinition","src":"2665:1272:42","nodes":[{"id":11622,"nodeType":"UsingForDirective","src":"2702:34:42","nodes":[],"global":false,"libraryName":{"id":11620,"name":"Address","nameLocations":["2708:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"2708:7:42"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"2720:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11626,"nodeType":"UsingForDirective","src":"2741:59:42","nodes":[],"global":false,"libraryName":{"id":11623,"name":"LibAddressStakingReleases","nameLocations":["2747:25:42"],"nodeType":"IdentifierPath","referencedDeclaration":11618,"src":"2747:25:42"},"typeName":{"id":11625,"nodeType":"UserDefinedTypeName","pathNode":{"id":11624,"name":"AddressStakingReleases","nameLocations":["2777:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"2777:22:42"},"referencedDeclaration":16274,"src":"2777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":11634,"nodeType":"EventDefinition","src":"2806:84:42","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2812:20:42","parameters":{"id":11633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11628,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2841:9:42","nodeType":"VariableDeclaration","scope":11634,"src":"2833:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11627,"name":"address","nodeType":"ElementaryTypeName","src":"2833:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11630,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2860:6:42","nodeType":"VariableDeclaration","scope":11634,"src":"2852:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2852:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11632,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2876:12:42","nodeType":"VariableDeclaration","scope":11634,"src":"2868:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2868:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2832:57:42"}},{"id":11649,"nodeType":"FunctionDefinition","src":"2896:130:42","nodes":[],"body":{"id":11648,"nodeType":"Block","src":"2980:46:42","nodes":[],"statements":[{"expression":{"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"2990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2995:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"2990:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11645,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"3013:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11647,"nodeType":"ExpressionStatement","src":"2990:29:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2905:15:42","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11637,"mutability":"mutable","name":"self","nameLocation":"2949:4:42","nodeType":"VariableDeclaration","scope":11649,"src":"2921:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11636,"nodeType":"UserDefinedTypeName","pathNode":{"id":11635,"name":"StakingReleaseQueue","nameLocations":["2921:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2921:19:42"},"referencedDeclaration":16284,"src":"2921:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"blocks","nameLocation":"2963:6:42","nodeType":"VariableDeclaration","scope":11649,"src":"2955:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2920:50:42"},"returnParameters":{"id":11641,"nodeType":"ParameterList","parameters":[],"src":"2980:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11692,"nodeType":"FunctionDefinition","src":"3095:419:42","nodes":[],"body":{"id":11691,"nodeType":"Block","src":"3196:318:42","nodes":[],"statements":[{"assignments":[11661],"declarations":[{"constant":false,"id":11661,"mutability":"mutable","name":"releaseAt","nameLocation":"3214:9:42","nodeType":"VariableDeclaration","scope":11691,"src":"3206:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3206:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11667,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11662,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3226:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3232:6:42","memberName":"number","nodeType":"MemberAccess","src":"3226:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3241:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3246:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"3241:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3206:55:42"},{"assignments":[11670],"declarations":[{"constant":false,"id":11670,"mutability":"mutable","name":"release","nameLocation":"3293:7:42","nodeType":"VariableDeclaration","scope":11691,"src":"3271:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11669,"nodeType":"UserDefinedTypeName","pathNode":{"id":11668,"name":"StakingRelease","nameLocations":["3271:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"3271:14:42"},"referencedDeclaration":16264,"src":"3271:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11675,"initialValue":{"arguments":[{"id":11672,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3330:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11673,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11671,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"3303:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$16264_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3319:9:42","3341:6:42"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3303:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3271:86:42"},{"expression":{"arguments":[{"id":11682,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"3398:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":11676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3368:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11680,"indexExpression":{"id":11678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3382:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3368:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3393:4:42","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":11524,"src":"3368:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$_t_struct$_StakingRelease_$16264_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"3368:38:42"},{"eventCall":{"arguments":[{"id":11686,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3455:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3474:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11688,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3496:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11685,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11634,"src":"3422:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3444:9:42","3466:6:42","3482:12:42"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3422:85:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11690,"nodeType":"EmitStatement","src":"3417:90:42"}]},"documentation":{"id":11650,"nodeType":"StructuredDocumentation","src":"3032:58:42","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3104:13:42","parameters":{"id":11658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11653,"mutability":"mutable","name":"self","nameLocation":"3146:4:42","nodeType":"VariableDeclaration","scope":11692,"src":"3118:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11652,"nodeType":"UserDefinedTypeName","pathNode":{"id":11651,"name":"StakingReleaseQueue","nameLocations":["3118:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3118:19:42"},"referencedDeclaration":16284,"src":"3118:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11655,"mutability":"mutable","name":"validator","nameLocation":"3160:9:42","nodeType":"VariableDeclaration","scope":11692,"src":"3152:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11654,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11657,"mutability":"mutable","name":"amount","nameLocation":"3179:6:42","nodeType":"VariableDeclaration","scope":11692,"src":"3171:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11656,"name":"uint256","nodeType":"ElementaryTypeName","src":"3171:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3117:69:42"},"returnParameters":{"id":11659,"nodeType":"ParameterList","parameters":[],"src":"3196:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11736,"nodeType":"FunctionDefinition","src":"3595:340:42","nodes":[],"body":{"id":11735,"nodeType":"Block","src":"3690:245:42","nodes":[],"statements":[{"assignments":[11704,11706],"declarations":[{"constant":false,"id":11704,"mutability":"mutable","name":"amount","nameLocation":"3709:6:42","nodeType":"VariableDeclaration","scope":11735,"src":"3701:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11703,"name":"uint256","nodeType":"ElementaryTypeName","src":"3701:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"newLength","nameLocation":"3724:9:42","nodeType":"VariableDeclaration","scope":11735,"src":"3717:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11705,"name":"uint16","nodeType":"ElementaryTypeName","src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11713,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":11707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3737:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3737:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11710,"indexExpression":{"id":11709,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3751:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3762:7:42","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":11617,"src":"3737:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3700:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11714,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"3786:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3799:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3786:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11724,"nodeType":"IfStatement","src":"3782:76:42","trueBody":{"id":11723,"nodeType":"Block","src":"3802:56:42","statements":[{"expression":{"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3816:31:42","subExpression":{"baseExpression":{"expression":{"id":11717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3823:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3828:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3823:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11720,"indexExpression":{"id":11719,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3837:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3823:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11722,"nodeType":"ExpressionStatement","src":"3816:31:42"}]}},{"expression":{"arguments":[{"id":11730,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3897:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11727,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3876:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11725,"name":"address","nodeType":"ElementaryTypeName","src":"3868:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"3868:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11732,"nodeType":"ExpressionStatement","src":"3868:36:42"},{"expression":{"id":11733,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3922:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11702,"id":11734,"nodeType":"Return","src":"3915:13:42"}]},"documentation":{"id":11693,"nodeType":"StructuredDocumentation","src":"3520:70:42","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3604:5:42","parameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"self","nameLocation":"3638:4:42","nodeType":"VariableDeclaration","scope":11736,"src":"3610:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11695,"nodeType":"UserDefinedTypeName","pathNode":{"id":11694,"name":"StakingReleaseQueue","nameLocations":["3610:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3610:19:42"},"referencedDeclaration":16284,"src":"3610:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11698,"mutability":"mutable","name":"validator","nameLocation":"3652:9:42","nodeType":"VariableDeclaration","scope":11736,"src":"3644:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11697,"name":"address","nodeType":"ElementaryTypeName","src":"3644:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3609:53:42"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11736,"src":"3681:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3681:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3680:9:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":11619,"nodeType":"StructuredDocumentation","src":"2618:47:42","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[11737],"name":"LibStakingReleaseQueue","nameLocation":"2673:22:42","scope":13522,"usedErrors":[]},{"id":12589,"nodeType":"ContractDefinition","src":"3979:9952:42","nodes":[{"id":11742,"nodeType":"UsingForDirective","src":"4009:25:42","nodes":[],"global":false,"libraryName":{"id":11739,"name":"LibMinPQ","nameLocations":["4015:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"4015:8:42"},"typeName":{"id":11741,"nodeType":"UserDefinedTypeName","pathNode":{"id":11740,"name":"MinPQ","nameLocations":["4028:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4028:5:42"},"referencedDeclaration":15261,"src":"4028:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":11746,"nodeType":"UsingForDirective","src":"4039:25:42","nodes":[],"global":false,"libraryName":{"id":11743,"name":"LibMaxPQ","nameLocations":["4045:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"4045:8:42"},"typeName":{"id":11745,"nodeType":"UserDefinedTypeName","pathNode":{"id":11744,"name":"MaxPQ","nameLocations":["4058:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4058:5:42"},"referencedDeclaration":14643,"src":"4058:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":11752,"nodeType":"EventDefinition","src":"4070:81:42","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"4076:32:42","parameters":{"id":11751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11748,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4117:9:42","nodeType":"VariableDeclaration","scope":11752,"src":"4109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11747,"name":"address","nodeType":"ElementaryTypeName","src":"4109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11750,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4136:13:42","nodeType":"VariableDeclaration","scope":11752,"src":"4128:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4108:42:42"}},{"id":11758,"nodeType":"EventDefinition","src":"4156:82:42","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4162:33:42","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11754,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4204:9:42","nodeType":"VariableDeclaration","scope":11758,"src":"4196:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11753,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11756,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4223:13:42","nodeType":"VariableDeclaration","scope":11758,"src":"4215:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4195:42:42"}},{"id":11764,"nodeType":"EventDefinition","src":"4243:64:42","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4249:18:42","parameters":{"id":11763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11760,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4276:9:42","nodeType":"VariableDeclaration","scope":11764,"src":"4268:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11759,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11762,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4295:10:42","nodeType":"VariableDeclaration","scope":11764,"src":"4287:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4267:39:42"}},{"id":11770,"nodeType":"EventDefinition","src":"4312:65:42","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4318:19:42","parameters":{"id":11769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11766,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4346:9:42","nodeType":"VariableDeclaration","scope":11770,"src":"4338:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11765,"name":"address","nodeType":"ElementaryTypeName","src":"4338:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11768,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4365:10:42","nodeType":"VariableDeclaration","scope":11770,"src":"4357:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11767,"name":"uint256","nodeType":"ElementaryTypeName","src":"4357:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4337:39:42"}},{"id":11776,"nodeType":"EventDefinition","src":"4382:74:42","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4388:23:42","parameters":{"id":11775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11772,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4420:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4412:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11771,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11774,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4442:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4434:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11773,"name":"address","nodeType":"ElementaryTypeName","src":"4434:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4411:44:42"}},{"id":11780,"nodeType":"EventDefinition","src":"4461:45:42","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4467:19:42","parameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4495:9:42","nodeType":"VariableDeclaration","scope":11780,"src":"4487:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11777,"name":"address","nodeType":"ElementaryTypeName","src":"4487:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4486:19:42"}},{"id":11784,"nodeType":"EventDefinition","src":"4511:46:42","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4517:20:42","parameters":{"id":11783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4546:9:42","nodeType":"VariableDeclaration","scope":11784,"src":"4538:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11781,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4537:19:42"}},{"id":11799,"nodeType":"FunctionDefinition","src":"4633:178:42","nodes":[],"body":{"id":11798,"nodeType":"Block","src":"4746:65:42","nodes":[],"statements":[{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11793,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11791,"src":"4756:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11794,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"4769:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4780:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"4769:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4756:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"4756:48:42"}]},"documentation":{"id":11785,"nodeType":"StructuredDocumentation","src":"4563:65:42","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4642:27:42","parameters":{"id":11789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11788,"mutability":"mutable","name":"validators","nameLocation":"4691:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4670:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11787,"nodeType":"UserDefinedTypeName","pathNode":{"id":11786,"name":"ValidatorSet","nameLocations":["4670:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4670:12:42"},"referencedDeclaration":16313,"src":"4670:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4669:33:42"},"returnParameters":{"id":11792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11791,"mutability":"mutable","name":"collateral","nameLocation":"4734:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4726:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11790,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4725:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11816,"nodeType":"FunctionDefinition","src":"4866:163:42","nodes":[],"body":{"id":11815,"nodeType":"Block","src":"4967:62:42","nodes":[],"statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11808,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11806,"src":"4977:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11809,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"4985:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4996:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"4985:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5013:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"4985:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4985:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4977:45:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11814,"nodeType":"ExpressionStatement","src":"4977:45:42"}]},"documentation":{"id":11800,"nodeType":"StructuredDocumentation","src":"4817:44:42","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"4875:21:42","parameters":{"id":11804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"validators","nameLocation":"4918:10:42","nodeType":"VariableDeclaration","scope":11816,"src":"4897:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11802,"nodeType":"UserDefinedTypeName","pathNode":{"id":11801,"name":"ValidatorSet","nameLocations":["4897:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4897:12:42"},"referencedDeclaration":16313,"src":"4897:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4896:33:42"},"returnParameters":{"id":11807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11806,"mutability":"mutable","name":"total","nameLocation":"4960:5:42","nodeType":"VariableDeclaration","scope":11816,"src":"4953:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11805,"name":"uint16","nodeType":"ElementaryTypeName","src":"4953:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4952:14:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11836,"nodeType":"FunctionDefinition","src":"5098:231:42","nodes":[],"body":{"id":11835,"nodeType":"Block","src":"5247:82:42","nodes":[],"statements":[{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11825,"src":"5257:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"5270:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5281:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"5270:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11831,"indexExpression":{"id":11830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5292:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5270:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"5270:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5257:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11834,"nodeType":"ExpressionStatement","src":"5257:65:42"}]},"documentation":{"id":11817,"nodeType":"StructuredDocumentation","src":"5035:58:42","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5107:22:42","parameters":{"id":11823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11820,"mutability":"mutable","name":"validators","nameLocation":"5160:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5139:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11819,"nodeType":"UserDefinedTypeName","pathNode":{"id":11818,"name":"ValidatorSet","nameLocations":["5139:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5139:12:42"},"referencedDeclaration":16313,"src":"5139:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"validator","nameLocation":"5188:9:42","nodeType":"VariableDeclaration","scope":11836,"src":"5180:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5129:74:42"},"returnParameters":{"id":11826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11825,"mutability":"mutable","name":"collateral","nameLocation":"5235:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5227:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5227:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5226:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11888,"nodeType":"FunctionDefinition","src":"5335:434:42","nodes":[],"body":{"id":11887,"nodeType":"Block","src":"5449:320:42","nodes":[],"statements":[{"assignments":[11846],"declarations":[{"constant":false,"id":11846,"mutability":"mutable","name":"size","nameLocation":"5466:4:42","nodeType":"VariableDeclaration","scope":11887,"src":"5459:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11845,"name":"uint16","nodeType":"ElementaryTypeName","src":"5459:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11847,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5473:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5484:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5473:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5501:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5473:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5473:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5459:51:42"},{"expression":{"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11852,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5520:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5546:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":11855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5532:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":11853,"name":"address","nodeType":"ElementaryTypeName","src":"5536:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11854,"nodeType":"ArrayTypeName","src":"5536:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5520:31:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11859,"nodeType":"ExpressionStatement","src":"5520:31:42"},{"body":{"id":11883,"nodeType":"Block","src":"5593:144:42","statements":[{"expression":{"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11867,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5607:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11871,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5617:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5621:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5617:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5607:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5665:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5626:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5637:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5626:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5654:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"5626:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5607:60:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11878,"nodeType":"ExpressionStatement","src":"5607:60:42"},{"id":11882,"nodeType":"UncheckedBlock","src":"5681:46:42","statements":[{"expression":{"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5709:3:42","subExpression":{"id":11879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5711:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11881,"nodeType":"ExpressionStatement","src":"5709:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5580:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11865,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5585:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5580:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11884,"initializationExpression":{"assignments":[11861],"declarations":[{"constant":false,"id":11861,"mutability":"mutable","name":"i","nameLocation":"5573:1:42","nodeType":"VariableDeclaration","scope":11884,"src":"5566:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5566:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11863,"initialValue":{"hexValue":"31","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5577:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5566:12:42"},"nodeType":"ForStatement","src":"5561:176:42"},{"expression":{"id":11885,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5753:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11844,"id":11886,"nodeType":"Return","src":"5746:16:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5344:20:42","parameters":{"id":11840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11839,"mutability":"mutable","name":"validators","nameLocation":"5386:10:42","nodeType":"VariableDeclaration","scope":11888,"src":"5365:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11838,"nodeType":"UserDefinedTypeName","pathNode":{"id":11837,"name":"ValidatorSet","nameLocations":["5365:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5365:12:42"},"referencedDeclaration":16313,"src":"5365:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5364:33:42"},"returnParameters":{"id":11844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11843,"mutability":"mutable","name":"addresses","nameLocation":"5438:9:42","nodeType":"VariableDeclaration","scope":11888,"src":"5421:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11841,"name":"address","nodeType":"ElementaryTypeName","src":"5421:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11842,"nodeType":"ArrayTypeName","src":"5421:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5420:28:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11933,"nodeType":"FunctionDefinition","src":"5840:432:42","nodes":[],"body":{"id":11932,"nodeType":"Block","src":"5945:327:42","nodes":[],"statements":[{"assignments":[11898],"declarations":[{"constant":false,"id":11898,"mutability":"mutable","name":"size","nameLocation":"5962:4:42","nodeType":"VariableDeclaration","scope":11932,"src":"5955:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11897,"name":"uint16","nodeType":"ElementaryTypeName","src":"5955:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11899,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"5969:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5969:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5969:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5955:51:42"},{"body":{"id":11930,"nodeType":"Block","src":"6048:218:42","statements":[{"assignments":[11912],"declarations":[{"constant":false,"id":11912,"mutability":"mutable","name":"validator","nameLocation":"6070:9:42","nodeType":"VariableDeclaration","scope":11930,"src":"6062:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11911,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11918,"initialValue":{"arguments":[{"id":11916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6121:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6082:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6093:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"6082:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6110:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"6082:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6062:61:42"},{"expression":{"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11919,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"6137:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":11921,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6174:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":11922,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"6186:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11920,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"6151:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6151:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:59:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11925,"nodeType":"ExpressionStatement","src":"6137:59:42"},{"id":11929,"nodeType":"UncheckedBlock","src":"6210:46:42","statements":[{"expression":{"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6238:3:42","subExpression":{"id":11926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6240:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11928,"nodeType":"ExpressionStatement","src":"6238:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6035:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11909,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"6040:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6035:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11931,"initializationExpression":{"assignments":[11905],"declarations":[{"constant":false,"id":11905,"mutability":"mutable","name":"i","nameLocation":"6028:1:42","nodeType":"VariableDeclaration","scope":11931,"src":"6021:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11904,"name":"uint16","nodeType":"ElementaryTypeName","src":"6021:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11907,"initialValue":{"hexValue":"31","id":11906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6032:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6021:12:42"},"nodeType":"ForStatement","src":"6016:250:42"}]},"documentation":{"id":11889,"nodeType":"StructuredDocumentation","src":"5775:60:42","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getActiveCollateral","nameLocation":"5849:19:42","parameters":{"id":11893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11892,"mutability":"mutable","name":"validators","nameLocation":"5890:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5869:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11891,"nodeType":"UserDefinedTypeName","pathNode":{"id":11890,"name":"ValidatorSet","nameLocations":["5869:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5869:12:42"},"referencedDeclaration":16313,"src":"5869:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5868:33:42"},"returnParameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"collateral","nameLocation":"5933:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5925:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5924:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12004,"nodeType":"FunctionDefinition","src":"6434:634:42","nodes":[],"body":{"id":12003,"nodeType":"Block","src":"6591:477:42","nodes":[],"statements":[{"assignments":[11947],"declarations":[{"constant":false,"id":11947,"mutability":"mutable","name":"size","nameLocation":"6609:4:42","nodeType":"VariableDeclaration","scope":12003,"src":"6601:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11950,"initialValue":{"expression":{"id":11948,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6616:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6626:6:42","memberName":"length","nodeType":"MemberAccess","src":"6616:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6601:31:42"},{"assignments":[11955],"declarations":[{"constant":false,"id":11955,"mutability":"mutable","name":"activeCollaterals","nameLocation":"6659:17:42","nodeType":"VariableDeclaration","scope":12003,"src":"6642:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11954,"nodeType":"ArrayTypeName","src":"6642:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11961,"initialValue":{"arguments":[{"id":11959,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6693:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6679:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6683:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11957,"nodeType":"ArrayTypeName","src":"6683:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6642:56:42"},{"body":{"id":11999,"nodeType":"Block","src":"6737:291:42","statements":[{"condition":{"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6755:44:42","subExpression":{"arguments":[{"id":11969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6774:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":11970,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6786:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11972,"indexExpression":{"id":11971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6796:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6786:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11968,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"6756:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6756:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11982,"nodeType":"IfStatement","src":"6751:116:42","trueBody":{"id":11981,"nodeType":"Block","src":"6801:66:42","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":11976,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6839:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11978,"indexExpression":{"id":11977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6849:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6839:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11975,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"6826:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11980,"nodeType":"RevertStatement","src":"6819:33:42"}]}},{"expression":{"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11983,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"6880:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11985,"indexExpression":{"id":11984,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6898:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6880:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11986,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6903:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6914:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"6903:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11991,"indexExpression":{"baseExpression":{"id":11988,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6925:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11990,"indexExpression":{"id":11989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6935:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6925:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6903:35:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6939:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"6903:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:78:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11994,"nodeType":"ExpressionStatement","src":"6880:78:42"},{"id":11998,"nodeType":"UncheckedBlock","src":"6972:46:42","statements":[{"expression":{"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7000:3:42","subExpression":{"id":11995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"7002:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11997,"nodeType":"ExpressionStatement","src":"7000:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6725:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11966,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6729:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6725:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12000,"initializationExpression":{"assignments":[11963],"declarations":[{"constant":false,"id":11963,"mutability":"mutable","name":"i","nameLocation":"6722:1:42","nodeType":"VariableDeclaration","scope":12000,"src":"6714:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11964,"nodeType":"VariableDeclarationStatement","src":"6714:9:42"},"nodeType":"ForStatement","src":"6709:319:42"},{"expression":{"id":12001,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"7044:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11945,"id":12002,"nodeType":"Return","src":"7037:24:42"}]},"documentation":{"id":11934,"nodeType":"StructuredDocumentation","src":"6278:151:42","text":"@notice Get the confirmed collaterals of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollaterals","nameLocation":"6443:23:42","parameters":{"id":11941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11937,"mutability":"mutable","name":"validators","nameLocation":"6497:10:42","nodeType":"VariableDeclaration","scope":12004,"src":"6476:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11936,"nodeType":"UserDefinedTypeName","pathNode":{"id":11935,"name":"ValidatorSet","nameLocations":["6476:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6476:12:42"},"referencedDeclaration":16313,"src":"6476:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11940,"mutability":"mutable","name":"addresses","nameLocation":"6534:9:42","nodeType":"VariableDeclaration","scope":12004,"src":"6517:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"6517:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11939,"nodeType":"ArrayTypeName","src":"6517:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6466:83:42"},"returnParameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12004,"src":"6573:16:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6573:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11943,"nodeType":"ArrayTypeName","src":"6573:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6572:18:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12021,"nodeType":"FunctionDefinition","src":"7074:167:42","nodes":[],"body":{"id":12020,"nodeType":"Block","src":"7176:65:42","nodes":[],"statements":[{"expression":{"arguments":[{"id":12017,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"7224:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"7193:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7198:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"7193:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"7193:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7193:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12013,"id":12019,"nodeType":"Return","src":"7186:48:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7083:17:42","parameters":{"id":12010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12007,"mutability":"mutable","name":"self","nameLocation":"7122:4:42","nodeType":"VariableDeclaration","scope":12021,"src":"7101:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12006,"nodeType":"UserDefinedTypeName","pathNode":{"id":12005,"name":"ValidatorSet","nameLocations":["7101:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7101:12:42"},"referencedDeclaration":16313,"src":"7101:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12009,"mutability":"mutable","name":"validator","nameLocation":"7136:9:42","nodeType":"VariableDeclaration","scope":12021,"src":"7128:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12008,"name":"address","nodeType":"ElementaryTypeName","src":"7128:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7100:46:42"},"returnParameters":{"id":12013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12021,"src":"7170:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12011,"name":"bool","nodeType":"ElementaryTypeName","src":"7170:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7169:6:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12042,"nodeType":"FunctionDefinition","src":"7282:176:42","nodes":[],"body":{"id":12041,"nodeType":"Block","src":"7389:69:42","nodes":[],"statements":[{"expression":{"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12032,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"7399:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7410:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7399:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12036,"indexExpression":{"id":12034,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12027,"src":"7421:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7399:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7432:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"7399:41:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"7443:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7399:52:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":12040,"nodeType":"ExpressionStatement","src":"7399:52:42"}]},"documentation":{"id":12022,"nodeType":"StructuredDocumentation","src":"7247:30:42","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"7291:11:42","parameters":{"id":12030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12025,"mutability":"mutable","name":"validators","nameLocation":"7324:10:42","nodeType":"VariableDeclaration","scope":12042,"src":"7303:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12024,"nodeType":"UserDefinedTypeName","pathNode":{"id":12023,"name":"ValidatorSet","nameLocations":["7303:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7303:12:42"},"referencedDeclaration":16313,"src":"7303:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12027,"mutability":"mutable","name":"validator","nameLocation":"7344:9:42","nodeType":"VariableDeclaration","scope":12042,"src":"7336:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12026,"name":"address","nodeType":"ElementaryTypeName","src":"7336:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12029,"mutability":"mutable","name":"metadata","nameLocation":"7370:8:42","nodeType":"VariableDeclaration","scope":12042,"src":"7355:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12028,"name":"bytes","nodeType":"ElementaryTypeName","src":"7355:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7302:77:42"},"returnParameters":{"id":12031,"nodeType":"ParameterList","parameters":[],"src":"7389:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12063,"nodeType":"FunctionDefinition","src":"7765:175:42","nodes":[],"body":{"id":12062,"nodeType":"Block","src":"7865:75:42","nodes":[],"statements":[{"expression":{"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12053,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"7875:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7886:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7875:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12057,"indexExpression":{"id":12055,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12048,"src":"7897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7875:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7908:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"7875:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"7927:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7875:58:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12061,"nodeType":"ExpressionStatement","src":"7875:58:42"}]},"documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"7697:63:42","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"7774:13:42","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12046,"mutability":"mutable","name":"validators","nameLocation":"7809:10:42","nodeType":"VariableDeclaration","scope":12063,"src":"7788:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"ValidatorSet","nameLocations":["7788:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7788:12:42"},"referencedDeclaration":16313,"src":"7788:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12048,"mutability":"mutable","name":"validator","nameLocation":"7829:9:42","nodeType":"VariableDeclaration","scope":12063,"src":"7821:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"7821:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12050,"mutability":"mutable","name":"amount","nameLocation":"7848:6:42","nodeType":"VariableDeclaration","scope":12063,"src":"7840:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12049,"name":"uint256","nodeType":"ElementaryTypeName","src":"7840:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7787:68:42"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"7865:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12104,"nodeType":"FunctionDefinition","src":"8012:364:42","nodes":[],"body":{"id":12103,"nodeType":"Block","src":"8113:263:42","nodes":[],"statements":[{"assignments":[12075],"declarations":[{"constant":false,"id":12075,"mutability":"mutable","name":"total","nameLocation":"8131:5:42","nodeType":"VariableDeclaration","scope":12103,"src":"8123:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12074,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12081,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12076,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8139:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8150:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8139:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12079,"indexExpression":{"id":12078,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8139:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8172:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8139:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8123:64:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12082,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8201:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12083,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8209:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12089,"nodeType":"IfStatement","src":"8197:81:42","trueBody":{"id":12088,"nodeType":"Block","src":"8217:61:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12085,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"8238:27:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8238:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12087,"nodeType":"RevertStatement","src":"8231:36:42"}]}},{"expression":{"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12090,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8288:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12091,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8297:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8288:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12093,"nodeType":"ExpressionStatement","src":"8288:15:42"},{"expression":{"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12094,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8313:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8313:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12098,"indexExpression":{"id":12096,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8335:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8346:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8313:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12100,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8364:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8313:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"8313:56:42"}]},"documentation":{"id":12064,"nodeType":"StructuredDocumentation","src":"7946:61:42","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8021:14:42","parameters":{"id":12072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12067,"mutability":"mutable","name":"validators","nameLocation":"8057:10:42","nodeType":"VariableDeclaration","scope":12104,"src":"8036:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12066,"nodeType":"UserDefinedTypeName","pathNode":{"id":12065,"name":"ValidatorSet","nameLocations":["8036:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8036:12:42"},"referencedDeclaration":16313,"src":"8036:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12069,"mutability":"mutable","name":"validator","nameLocation":"8077:9:42","nodeType":"VariableDeclaration","scope":12104,"src":"8069:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"8069:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12071,"mutability":"mutable","name":"amount","nameLocation":"8096:6:42","nodeType":"VariableDeclaration","scope":12104,"src":"8088:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12070,"name":"uint256","nodeType":"ElementaryTypeName","src":"8088:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8035:68:42"},"returnParameters":{"id":12073,"nodeType":"ParameterList","parameters":[],"src":"8113:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12146,"nodeType":"FunctionDefinition","src":"8382:408:42","nodes":[],"body":{"id":12145,"nodeType":"Block","src":"8477:313:42","nodes":[],"statements":[{"assignments":[12115],"declarations":[{"constant":false,"id":12115,"mutability":"mutable","name":"newCollateral","nameLocation":"8495:13:42","nodeType":"VariableDeclaration","scope":12145,"src":"8487:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8511:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8516:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8511:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12119,"indexExpression":{"id":12118,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8527:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8538:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8511:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8560:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8487:79:42"},{"expression":{"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8576:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8581:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8576:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12128,"indexExpression":{"id":12126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8592:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8576:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8603:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8576:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12130,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8625:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8576:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12132,"nodeType":"ExpressionStatement","src":"8576:62:42"},{"expression":{"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8649:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8654:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"8649:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8682:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8649:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12138,"nodeType":"ExpressionStatement","src":"8649:39:42"},{"expression":{"arguments":[{"id":12140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8723:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12141,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8742:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12142,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8768:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12139,"name":"depositReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"8699:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8717:4:42","8729:11:42","8753:13:42"],"names":["self","maybeActive","newCollateral"],"nodeType":"FunctionCall","src":"8699:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"8699:84:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"8391:14:42","parameters":{"id":12112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12107,"mutability":"mutable","name":"self","nameLocation":"8427:4:42","nodeType":"VariableDeclaration","scope":12146,"src":"8406:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12106,"nodeType":"UserDefinedTypeName","pathNode":{"id":12105,"name":"ValidatorSet","nameLocations":["8406:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8406:12:42"},"referencedDeclaration":16313,"src":"8406:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12109,"mutability":"mutable","name":"validator","nameLocation":"8441:9:42","nodeType":"VariableDeclaration","scope":12146,"src":"8433:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12108,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12111,"mutability":"mutable","name":"amount","nameLocation":"8460:6:42","nodeType":"VariableDeclaration","scope":12146,"src":"8452:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12110,"name":"uint256","nodeType":"ElementaryTypeName","src":"8452:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8405:62:42"},"returnParameters":{"id":12113,"nodeType":"ParameterList","parameters":[],"src":"8477:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12212,"nodeType":"FunctionDefinition","src":"8796:623:42","nodes":[],"body":{"id":12211,"nodeType":"Block","src":"8892:527:42","nodes":[],"statements":[{"assignments":[12157],"declarations":[{"constant":false,"id":12157,"mutability":"mutable","name":"newCollateral","nameLocation":"8910:13:42","nodeType":"VariableDeclaration","scope":12211,"src":"8902:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12156,"name":"uint256","nodeType":"ElementaryTypeName","src":"8902:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"8926:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8931:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8926:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12161,"indexExpression":{"id":12160,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"8942:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8926:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8953:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8926:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12163,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"8975:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8926:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8902:79:42"},{"assignments":[12167],"declarations":[{"constant":false,"id":12167,"mutability":"mutable","name":"totalCollateral","nameLocation":"8999:15:42","nodeType":"VariableDeclaration","scope":12211,"src":"8991:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12166,"name":"uint256","nodeType":"ElementaryTypeName","src":"8991:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12173,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9017:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9022:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9017:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12171,"indexExpression":{"id":12170,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9033:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9017:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9044:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"9017:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8991:68:42"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12174,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9074:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12177,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"9096:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9096:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9074:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12197,"nodeType":"Block","src":"9182:87:42","statements":[{"expression":{"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9196:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9201:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9196:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12192,"indexExpression":{"id":12190,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9212:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9223:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"9196:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12194,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9245:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12196,"nodeType":"ExpressionStatement","src":"9196:62:42"}]},"id":12198,"nodeType":"IfStatement","src":"9070:199:42","trueBody":{"id":12187,"nodeType":"Block","src":"9118:58:42","statements":[{"expression":{"id":12185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9132:33:42","subExpression":{"baseExpression":{"expression":{"id":12181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9139:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9144:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9139:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12184,"indexExpression":{"id":12183,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9155:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9139:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12186,"nodeType":"ExpressionStatement","src":"9132:33:42"}]}},{"expression":{"arguments":[{"id":12200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9304:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12201,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9321:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12202,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9347:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12199,"name":"withdrawReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12588,"src":"9279:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9298:4:42","9310:9:42","9332:13:42"],"names":["self","validator","newCollateral"],"nodeType":"FunctionCall","src":"9279:83:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12204,"nodeType":"ExpressionStatement","src":"9279:83:42"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9373:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9378:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"9373:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"9406:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9373:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12210,"nodeType":"ExpressionStatement","src":"9373:39:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"8805:15:42","parameters":{"id":12154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"mutability":"mutable","name":"self","nameLocation":"8842:4:42","nodeType":"VariableDeclaration","scope":12212,"src":"8821:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12148,"nodeType":"UserDefinedTypeName","pathNode":{"id":12147,"name":"ValidatorSet","nameLocations":["8821:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8821:12:42"},"referencedDeclaration":16313,"src":"8821:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12151,"mutability":"mutable","name":"validator","nameLocation":"8856:9:42","nodeType":"VariableDeclaration","scope":12212,"src":"8848:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12150,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12153,"mutability":"mutable","name":"amount","nameLocation":"8875:6:42","nodeType":"VariableDeclaration","scope":12212,"src":"8867:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:62:42"},"returnParameters":{"id":12155,"nodeType":"ParameterList","parameters":[],"src":"8892:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12377,"nodeType":"FunctionDefinition","src":"9514:2248:42","nodes":[],"body":{"id":12376,"nodeType":"Block","src":"9620:2142:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12226,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9665:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12223,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"9634:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12244,"nodeType":"IfStatement","src":"9630:231:42","trueBody":{"id":12243,"nodeType":"Block","src":"9679:182:42","statements":[{"expression":{"arguments":[{"id":12233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9733:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12234,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9739:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9693:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9693:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9715:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15574,"src":"9693:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"9693:58:42"},{"eventCall":{"arguments":[{"id":12238,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9803:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12239,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"9816:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12237,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"9770:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9770:60:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12241,"nodeType":"EmitStatement","src":"9765:65:42"},{"functionReturnParameters":12222,"id":12242,"nodeType":"Return","src":"9844:7:42"}]}},{"assignments":[12246],"declarations":[{"constant":false,"id":12246,"mutability":"mutable","name":"activeLimit","nameLocation":"9930:11:42","nodeType":"VariableDeclaration","scope":12376,"src":"9923:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12245,"name":"uint16","nodeType":"ElementaryTypeName","src":"9923:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12249,"initialValue":{"expression":{"id":12247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9944:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:11:42","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"9944:16:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9923:37:42"},{"assignments":[12251],"declarations":[{"constant":false,"id":12251,"mutability":"mutable","name":"activeSize","nameLocation":"9977:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"9970:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12250,"name":"uint16","nodeType":"ElementaryTypeName","src":"9970:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9995:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9990:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10012:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"9990:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9970:51:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12257,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"10035:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12258,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12251,"src":"10049:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10035:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12276,"nodeType":"IfStatement","src":"10031:267:42","trueBody":{"id":12275,"nodeType":"Block","src":"10061:237:42","statements":[{"expression":{"arguments":[{"id":12265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12266,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10190:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10155:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10160:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10155:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10177:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"10155:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10155:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12268,"nodeType":"ExpressionStatement","src":"10155:47:42"},{"eventCall":{"arguments":[{"id":12270,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10240:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12271,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10253:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12269,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"10221:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12273,"nodeType":"EmitStatement","src":"10216:51:42"},{"functionReturnParameters":12222,"id":12274,"nodeType":"Return","src":"10281:7:42"}]}},{"assignments":[12278,12280],"declarations":[{"constant":false,"id":12278,"mutability":"mutable","name":"minAddress","nameLocation":"10845:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"10837:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12277,"name":"address","nodeType":"ElementaryTypeName","src":"10837:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12280,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"10865:19:42","nodeType":"VariableDeclaration","scope":12376,"src":"10857:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12279,"name":"uint256","nodeType":"ElementaryTypeName","src":"10857:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12286,"initialValue":{"arguments":[{"id":12284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10914:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10888:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10888:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10910:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"10888:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10888:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10836:83:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12287,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"10933:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12288,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10955:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10933:35:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12339,"nodeType":"IfStatement","src":"10929:462:42","trueBody":{"id":12338,"nodeType":"Block","src":"10970:421:42","statements":[{"expression":{"arguments":[{"id":12295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11010:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10984:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10989:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10984:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11006:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"10984:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10984:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12297,"nodeType":"ExpressionStatement","src":"10984:31:42"},{"condition":{"arguments":[{"id":12301,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11066:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12298,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11034:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11039:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11034:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11057:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11034:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11034:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12313,"nodeType":"IfStatement","src":"11030:140:42","trueBody":{"id":12312,"nodeType":"Block","src":"11080:90:42","statements":[{"expression":{"arguments":[{"id":12308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12309,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11143:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11103:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11098:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11121:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"11098:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11098:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12311,"nodeType":"ExpressionStatement","src":"11098:57:42"}]}},{"expression":{"arguments":[{"id":12319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11213:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12320,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11219:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12314,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11189:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"11184:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"11184:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12322,"nodeType":"ExpressionStatement","src":"11184:47:42"},{"expression":{"arguments":[{"id":12328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11275:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12329,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11281:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11245:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11250:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11245:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11268:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11245:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11245:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12331,"nodeType":"ExpressionStatement","src":"11245:47:42"},{"eventCall":{"arguments":[{"id":12333,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11336:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12334,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11348:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12332,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"11312:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11312:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12336,"nodeType":"EmitStatement","src":"11307:53:42"},{"functionReturnParameters":12222,"id":12337,"nodeType":"Return","src":"11374:7:42"}]}},{"condition":{"arguments":[{"id":12343,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11437:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12340,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11405:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11410:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11405:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11428:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11405:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11405:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12361,"nodeType":"IfStatement","src":"11401:234:42","trueBody":{"id":12360,"nodeType":"Block","src":"11451:184:42","statements":[{"expression":{"arguments":[{"id":12350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11506:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12351,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11512:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11465:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11470:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11465:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11488:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"11465:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11465:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12353,"nodeType":"ExpressionStatement","src":"11465:59:42"},{"eventCall":{"arguments":[{"id":12355,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11577:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12356,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11590:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12354,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"11543:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:61:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12358,"nodeType":"EmitStatement","src":"11538:66:42"},{"functionReturnParameters":12222,"id":12359,"nodeType":"Return","src":"11618:7:42"}]}},{"expression":{"arguments":[{"id":12367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11675:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12368,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11681:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12362,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11645:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11650:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11645:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11668:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11645:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11645:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12370,"nodeType":"ExpressionStatement","src":"11645:48:42"},{"eventCall":{"arguments":[{"id":12372,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11728:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12373,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11741:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12371,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"11708:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11708:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12375,"nodeType":"EmitStatement","src":"11703:52:42"}]},"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"9425:84:42","text":"@notice Reshuffles the active and waiting validators when a deposit is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"depositReshuffle","nameLocation":"9523:16:42","parameters":{"id":12221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12216,"mutability":"mutable","name":"self","nameLocation":"9561:4:42","nodeType":"VariableDeclaration","scope":12377,"src":"9540:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12215,"nodeType":"UserDefinedTypeName","pathNode":{"id":12214,"name":"ValidatorSet","nameLocations":["9540:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"9540:12:42"},"referencedDeclaration":16313,"src":"9540:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12218,"mutability":"mutable","name":"maybeActive","nameLocation":"9575:11:42","nodeType":"VariableDeclaration","scope":12377,"src":"9567:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"9567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12220,"mutability":"mutable","name":"newCollateral","nameLocation":"9596:13:42","nodeType":"VariableDeclaration","scope":12377,"src":"9588:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12219,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:71:42"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[],"src":"9620:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12588,"nodeType":"FunctionDefinition","src":"11858:2071:42","nodes":[],"body":{"id":12587,"nodeType":"Block","src":"11963:1966:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12391,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12388,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"11977:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11977:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11977:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12428,"nodeType":"IfStatement","src":"11973:431:42","trueBody":{"id":12427,"nodeType":"Block","src":"12021:383:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12393,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12039:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12056:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12039:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12411,"nodeType":"IfStatement","src":"12035:190:42","trueBody":{"id":12410,"nodeType":"Block","src":"12059:166:42","statements":[{"expression":{"arguments":[{"id":12401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12116:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12122:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12396,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12077:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12077:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12100:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"12077:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12077:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"12077:55:42"},{"eventCall":{"arguments":[{"id":12406,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12176:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12405,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"12155:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12155:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12408,"nodeType":"EmitStatement","src":"12150:36:42"},{"functionReturnParameters":12387,"id":12409,"nodeType":"Return","src":"12204:7:42"}]}},{"expression":{"arguments":[{"id":12417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12279:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12418,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12285:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12412,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12238:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12243:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12238:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12261:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14991,"src":"12238:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12238:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"12238:57:42"},{"eventCall":{"arguments":[{"id":12422,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12348:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12423,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12359:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12421,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"12314:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12425,"nodeType":"EmitStatement","src":"12309:64:42"},{"functionReturnParameters":12387,"id":12426,"nodeType":"Return","src":"12387:7:42"}]}},{"condition":{"id":12434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12442:42:42","subExpression":{"arguments":[{"id":12432,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12474:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12429,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12443:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12448:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12443:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12465:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"12443:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12443:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12439,"nodeType":"IfStatement","src":"12438:106:42","trueBody":{"id":12438,"nodeType":"Block","src":"12486:58:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12435,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"12507:24:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12507:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12437,"nodeType":"RevertStatement","src":"12500:33:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12440,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12608:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12625:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12608:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12498,"nodeType":"IfStatement","src":"12604:523:42","trueBody":{"id":12497,"nodeType":"Block","src":"12628:499:42","statements":[{"expression":{"arguments":[{"id":12448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12680:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12449,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12686:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12642:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12647:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12642:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12664:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":15539,"src":"12642:37:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12642:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12451,"nodeType":"ExpressionStatement","src":"12642:54:42"},{"eventCall":{"arguments":[{"id":12453,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12735:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12452,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"12715:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12715:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12455,"nodeType":"EmitStatement","src":"12710:35:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12764:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12769:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12764:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12787:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"12764:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12764:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12800:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12764:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12495,"nodeType":"IfStatement","src":"12760:336:42","trueBody":{"id":12494,"nodeType":"Block","src":"12803:293:42","statements":[{"assignments":[12463,12465],"declarations":[{"constant":false,"id":12463,"mutability":"mutable","name":"toBePromoted","nameLocation":"12830:12:42","nodeType":"VariableDeclaration","scope":12494,"src":"12822:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12462,"name":"address","nodeType":"ElementaryTypeName","src":"12822:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12465,"mutability":"mutable","name":"collateral","nameLocation":"12852:10:42","nodeType":"VariableDeclaration","scope":12494,"src":"12844:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12464,"name":"uint256","nodeType":"ElementaryTypeName","src":"12844:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12471,"initialValue":{"arguments":[{"id":12469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12893:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12866:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12871:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12866:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12889:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"12866:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12866:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12821:77:42"},{"expression":{"arguments":[{"id":12477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12943:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12916:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12921:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12916:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12939:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"12916:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12916:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12479,"nodeType":"ExpressionStatement","src":"12916:32:42"},{"expression":{"arguments":[{"id":12485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12995:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12486,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13001:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12966:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12971:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12966:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12988:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"12966:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12966:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12488,"nodeType":"ExpressionStatement","src":"12966:48:42"},{"eventCall":{"arguments":[{"id":12490,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13056:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12491,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12465,"src":"13070:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12489,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"13037:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13037:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12493,"nodeType":"EmitStatement","src":"13032:49:42"}]}},{"functionReturnParameters":12387,"id":12496,"nodeType":"Return","src":"13110:7:42"}]}},{"expression":{"arguments":[{"id":12504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13177:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12505,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13183:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12499,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13142:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13137:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13159:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15609,"src":"13137:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13137:56:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12507,"nodeType":"ExpressionStatement","src":"13137:56:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13208:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13213:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13208:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13231:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"13208:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13244:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13208:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12516,"nodeType":"IfStatement","src":"13204:74:42","trueBody":{"id":12515,"nodeType":"Block","src":"13247:31:42","statements":[{"functionReturnParameters":12387,"id":12514,"nodeType":"Return","src":"13261:7:42"}]}},{"assignments":[12518,12520],"declarations":[{"constant":false,"id":12518,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"13297:12:42","nodeType":"VariableDeclaration","scope":12587,"src":"13289:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"13289:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"13319:19:42","nodeType":"VariableDeclaration","scope":12587,"src":"13311:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"13311:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12526,"initialValue":{"arguments":[{"id":12524,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12521,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13342:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13347:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13342:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13364:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"13342:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13342:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13288:85:42"},{"assignments":[12528,12530],"declarations":[{"constant":false,"id":12528,"mutability":"mutable","name":"mayBePromoted","nameLocation":"13392:13:42","nodeType":"VariableDeclaration","scope":12587,"src":"13384:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12527,"name":"address","nodeType":"ElementaryTypeName","src":"13384:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12530,"mutability":"mutable","name":"maxWaitingCollateral","nameLocation":"13415:20:42","nodeType":"VariableDeclaration","scope":12587,"src":"13407:28:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"13407:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12536,"initialValue":{"arguments":[{"id":12534,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13466:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13439:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13444:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13439:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13462:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"13439:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13383:88:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12537,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"13485:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12538,"name":"maxWaitingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"13507:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13485:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12581,"nodeType":"IfStatement","src":"13481:368:42","trueBody":{"id":12580,"nodeType":"Block","src":"13529:320:42","statements":[{"expression":{"arguments":[{"id":12545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13569:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13543:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13548:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13543:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13565:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"13543:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12547,"nodeType":"ExpressionStatement","src":"13543:31:42"},{"expression":{"arguments":[{"id":12553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12548,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13588:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13593:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13588:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13611:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"13588:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13588:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12555,"nodeType":"ExpressionStatement","src":"13588:32:42"},{"expression":{"arguments":[{"id":12561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13663:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12562,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13669:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13656:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"13634:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13634:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12564,"nodeType":"ExpressionStatement","src":"13634:49:42"},{"expression":{"arguments":[{"id":12570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13727:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12571,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13733:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13697:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13702:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13697:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13720:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"13697:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13697:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12573,"nodeType":"ExpressionStatement","src":"13697:49:42"},{"eventCall":{"arguments":[{"id":12575,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13790:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13804:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12574,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"13766:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12578,"nodeType":"EmitStatement","src":"13761:57:42"},{"functionReturnParameters":12387,"id":12579,"nodeType":"Return","src":"13832:7:42"}]}},{"eventCall":{"arguments":[{"id":12583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12584,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"13908:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12582,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"13864:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13864:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"EmitStatement","src":"13859:63:42"}]},"documentation":{"id":12378,"nodeType":"StructuredDocumentation","src":"11768:85:42","text":"@notice Reshuffles the active and waiting validators when a withdraw is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawReshuffle","nameLocation":"11867:17:42","parameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12381,"mutability":"mutable","name":"self","nameLocation":"11906:4:42","nodeType":"VariableDeclaration","scope":12588,"src":"11885:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12380,"nodeType":"UserDefinedTypeName","pathNode":{"id":12379,"name":"ValidatorSet","nameLocations":["11885:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"11885:12:42"},"referencedDeclaration":16313,"src":"11885:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12383,"mutability":"mutable","name":"validator","nameLocation":"11920:9:42","nodeType":"VariableDeclaration","scope":12588,"src":"11912:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12382,"name":"address","nodeType":"ElementaryTypeName","src":"11912:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12385,"mutability":"mutable","name":"newCollateral","nameLocation":"11939:13:42","nodeType":"VariableDeclaration","scope":12588,"src":"11931:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12384,"name":"uint256","nodeType":"ElementaryTypeName","src":"11931:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11884:69:42"},"returnParameters":{"id":12387,"nodeType":"ParameterList","parameters":[],"src":"11963:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":11738,"nodeType":"StructuredDocumentation","src":"3939:40:42","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[12589],"name":"LibValidatorSet","nameLocation":"3987:15:42","scope":13522,"usedErrors":[]},{"id":13299,"nodeType":"ContractDefinition","src":"13933:8597:42","nodes":[{"id":12593,"nodeType":"UsingForDirective","src":"13958:53:42","nodes":[],"global":false,"libraryName":{"id":12590,"name":"LibStakingReleaseQueue","nameLocations":["13964:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":11737,"src":"13964:22:42"},"typeName":{"id":12592,"nodeType":"UserDefinedTypeName","pathNode":{"id":12591,"name":"StakingReleaseQueue","nameLocations":["13991:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"13991:19:42"},"referencedDeclaration":16284,"src":"13991:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":12597,"nodeType":"UsingForDirective","src":"14016:47:42","nodes":[],"global":false,"libraryName":{"id":12594,"name":"LibStakingChangeLog","nameLocations":["14022:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"14022:19:42"},"typeName":{"id":12596,"nodeType":"UserDefinedTypeName","pathNode":{"id":12595,"name":"StakingChangeLog","nameLocations":["14046:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"14046:16:42"},"referencedDeclaration":16257,"src":"14046:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":12601,"nodeType":"UsingForDirective","src":"14068:39:42","nodes":[],"global":false,"libraryName":{"id":12598,"name":"LibValidatorSet","nameLocations":["14074:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"14074:15:42"},"typeName":{"id":12600,"nodeType":"UserDefinedTypeName","pathNode":{"id":12599,"name":"ValidatorSet","nameLocations":["14094:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"14094:12:42"},"referencedDeclaration":16313,"src":"14094:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":12605,"nodeType":"UsingForDirective","src":"14112:25:42","nodes":[],"global":false,"libraryName":{"id":12602,"name":"LibMaxPQ","nameLocations":["14118:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"14118:8:42"},"typeName":{"id":12604,"nodeType":"UserDefinedTypeName","pathNode":{"id":12603,"name":"MaxPQ","nameLocations":["14131:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"14131:5:42"},"referencedDeclaration":14643,"src":"14131:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":12609,"nodeType":"UsingForDirective","src":"14142:25:42","nodes":[],"global":false,"libraryName":{"id":12606,"name":"LibMinPQ","nameLocations":["14148:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"14148:8:42"},"typeName":{"id":12608,"nodeType":"UserDefinedTypeName","pathNode":{"id":12607,"name":"MinPQ","nameLocations":["14161:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"14161:5:42"},"referencedDeclaration":15261,"src":"14161:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":12612,"nodeType":"UsingForDirective","src":"14172:34:42","nodes":[],"global":false,"libraryName":{"id":12610,"name":"Address","nameLocations":["14178:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"14178:7:42"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"14190:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":12615,"nodeType":"VariableDeclaration","src":"14212:57:42","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"14237:28:42","scope":13299,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12613,"name":"uint64","nodeType":"ElementaryTypeName","src":"14212:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":12614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14268:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":12619,"nodeType":"EventDefinition","src":"14276:50:42","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"14282:28:42","parameters":{"id":12618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12617,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"14318:6:42","nodeType":"VariableDeclaration","scope":12619,"src":"14311:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12616,"name":"uint64","nodeType":"ElementaryTypeName","src":"14311:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"14310:15:42"}},{"id":12625,"nodeType":"EventDefinition","src":"14331:59:42","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"14337:17:42","parameters":{"id":12624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12621,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"14363:9:42","nodeType":"VariableDeclaration","scope":12625,"src":"14355:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12620,"name":"address","nodeType":"ElementaryTypeName","src":"14355:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12623,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"14382:6:42","nodeType":"VariableDeclaration","scope":12625,"src":"14374:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12622,"name":"uint256","nodeType":"ElementaryTypeName","src":"14374:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14354:35:42"}},{"id":12648,"nodeType":"FunctionDefinition","src":"14505:225:42","nodes":[],"body":{"id":12647,"nodeType":"Block","src":"14580:150:42","nodes":[],"statements":[{"assignments":[12635],"declarations":[{"constant":false,"id":12635,"mutability":"mutable","name":"s","nameLocation":"14617:1:42","nodeType":"VariableDeclaration","scope":12647,"src":"14590:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12634,"nodeType":"UserDefinedTypeName","pathNode":{"id":12633,"name":"SubnetActorStorage","nameLocations":["14590:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14590:18:42"},"referencedDeclaration":13839,"src":"14590:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12636,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14621:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14643:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14621:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14621:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14590:65:42"},{"expression":{"arguments":[{"id":12644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12628,"src":"14713:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12640,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"14672:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14674:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14672:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14687:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"14672:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14704:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"14672:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14672:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12632,"id":12646,"nodeType":"Return","src":"14665:58:42"}]},"documentation":{"id":12626,"nodeType":"StructuredDocumentation","src":"14442:58:42","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"14514:17:42","parameters":{"id":12629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12628,"mutability":"mutable","name":"validator","nameLocation":"14540:9:42","nodeType":"VariableDeclaration","scope":12648,"src":"14532:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12627,"name":"address","nodeType":"ElementaryTypeName","src":"14532:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14531:19:42"},"returnParameters":{"id":12632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"14574:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12630,"name":"bool","nodeType":"ElementaryTypeName","src":"14574:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14573:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12671,"nodeType":"FunctionDefinition","src":"14799:227:42","nodes":[],"body":{"id":12670,"nodeType":"Block","src":"14875:151:42","nodes":[],"statements":[{"assignments":[12658],"declarations":[{"constant":false,"id":12658,"mutability":"mutable","name":"s","nameLocation":"14912:1:42","nodeType":"VariableDeclaration","scope":12670,"src":"14885:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12657,"nodeType":"UserDefinedTypeName","pathNode":{"id":12656,"name":"SubnetActorStorage","nameLocations":["14885:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14885:18:42"},"referencedDeclaration":13839,"src":"14885:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12662,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12659,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14916:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14938:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14916:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14885:65:42"},{"expression":{"arguments":[{"id":12667,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"15009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12663,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"14967:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14969:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14967:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"14967:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"14967:41:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14967:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12655,"id":12669,"nodeType":"Return","src":"14960:59:42"}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"14736:58:42","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"14808:18:42","parameters":{"id":12652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"validator","nameLocation":"14835:9:42","nodeType":"VariableDeclaration","scope":12671,"src":"14827:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12650,"name":"address","nodeType":"ElementaryTypeName","src":"14827:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14826:19:42"},"returnParameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12671,"src":"14869:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12653,"name":"bool","nodeType":"ElementaryTypeName","src":"14869:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14868:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12696,"nodeType":"FunctionDefinition","src":"15090:280:42","nodes":[],"body":{"id":12695,"nodeType":"Block","src":"15157:213:42","nodes":[],"statements":[{"assignments":[12681],"declarations":[{"constant":false,"id":12681,"mutability":"mutable","name":"s","nameLocation":"15194:1:42","nodeType":"VariableDeclaration","scope":12695,"src":"15167:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12680,"nodeType":"UserDefinedTypeName","pathNode":{"id":12679,"name":"SubnetActorStorage","nameLocations":["15167:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15167:18:42"},"referencedDeclaration":13839,"src":"15167:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12682,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15198:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15198:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15167:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12686,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"15306:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15308:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15306:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"15306:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12690,"indexExpression":{"id":12689,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"15332:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15306:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15343:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"15306:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15362:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15306:57:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12678,"id":12694,"nodeType":"Return","src":"15299:64:42"}]},"documentation":{"id":12672,"nodeType":"StructuredDocumentation","src":"15032:53:42","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"15099:9:42","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12674,"mutability":"mutable","name":"validator","nameLocation":"15117:9:42","nodeType":"VariableDeclaration","scope":12696,"src":"15109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12673,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15108:19:42"},"returnParameters":{"id":12678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12696,"src":"15151:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12676,"name":"bool","nodeType":"ElementaryTypeName","src":"15151:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15150:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12714,"nodeType":"FunctionDefinition","src":"15376:201:42","nodes":[],"body":{"id":12713,"nodeType":"Block","src":"15440:137:42","nodes":[],"statements":[{"assignments":[12703],"declarations":[{"constant":false,"id":12703,"mutability":"mutable","name":"s","nameLocation":"15477:1:42","nodeType":"VariableDeclaration","scope":12713,"src":"15450:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12702,"nodeType":"UserDefinedTypeName","pathNode":{"id":12701,"name":"SubnetActorStorage","nameLocations":["15450:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15450:18:42"},"referencedDeclaration":13839,"src":"15450:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15481:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15503:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15481:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15481:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15450:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"15532:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15534:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15532:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:21:42","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":11816,"src":"15532:36:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15532:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12700,"id":12712,"nodeType":"Return","src":"15525:45:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"15385:21:42","parameters":{"id":12697,"nodeType":"ParameterList","parameters":[],"src":"15406:2:42"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12714,"src":"15432:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12698,"name":"uint16","nodeType":"ElementaryTypeName","src":"15432:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15431:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12740,"nodeType":"FunctionDefinition","src":"15665:243:42","nodes":[],"body":{"id":12739,"nodeType":"Block","src":"15723:185:42","nodes":[],"statements":[{"assignments":[12722],"declarations":[{"constant":false,"id":12722,"mutability":"mutable","name":"s","nameLocation":"15760:1:42","nodeType":"VariableDeclaration","scope":12739,"src":"15733:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12721,"nodeType":"UserDefinedTypeName","pathNode":{"id":12720,"name":"SubnetActorStorage","nameLocations":["15733:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15733:18:42"},"referencedDeclaration":13839,"src":"15733:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12723,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15764:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15786:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15764:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15764:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15733:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12727,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15815:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15817:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15815:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15830:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"15815:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15848:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"15815:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15815:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12732,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15860:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15860:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15875:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"15860:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"15860:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15815:86:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12719,"id":12738,"nodeType":"Return","src":"15808:93:42"}]},"documentation":{"id":12715,"nodeType":"StructuredDocumentation","src":"15583:77:42","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"15674:15:42","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"15689:2:42"},"returnParameters":{"id":12719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12740,"src":"15715:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12717,"name":"uint16","nodeType":"ElementaryTypeName","src":"15715:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15714:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12758,"nodeType":"FunctionDefinition","src":"15914:214:42","nodes":[],"body":{"id":12757,"nodeType":"Block","src":"15985:143:42","nodes":[],"statements":[{"assignments":[12747],"declarations":[{"constant":false,"id":12747,"mutability":"mutable","name":"s","nameLocation":"16022:1:42","nodeType":"VariableDeclaration","scope":12757,"src":"15995:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12746,"nodeType":"UserDefinedTypeName","pathNode":{"id":12745,"name":"SubnetActorStorage","nameLocations":["15995:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15995:18:42"},"referencedDeclaration":13839,"src":"15995:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12748,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16026:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16048:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16026:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15995:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"16077:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16079:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16077:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16092:27:42","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11799,"src":"16077:42:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12744,"id":12756,"nodeType":"Return","src":"16070:51:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"15923:27:42","parameters":{"id":12741,"nodeType":"ParameterList","parameters":[],"src":"15950:2:42"},"returnParameters":{"id":12744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12758,"src":"15976:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12742,"name":"uint256","nodeType":"ElementaryTypeName","src":"15976:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15975:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12781,"nodeType":"FunctionDefinition","src":"16203:236:42","nodes":[],"body":{"id":12780,"nodeType":"Block","src":"16288:151:42","nodes":[],"statements":[{"assignments":[12768],"declarations":[{"constant":false,"id":12768,"mutability":"mutable","name":"s","nameLocation":"16325:1:42","nodeType":"VariableDeclaration","scope":12780,"src":"16298:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12767,"nodeType":"UserDefinedTypeName","pathNode":{"id":12766,"name":"SubnetActorStorage","nameLocations":["16298:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16298:18:42"},"referencedDeclaration":13839,"src":"16298:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12769,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16329:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16329:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16329:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16298:65:42"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"16380:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16382:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16380:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16395:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"16380:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12777,"indexExpression":{"id":12776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"16406:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16380:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16417:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"16380:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12765,"id":12779,"nodeType":"Return","src":"16373:59:42"}]},"documentation":{"id":12759,"nodeType":"StructuredDocumentation","src":"16134:64:42","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"16212:24:42","parameters":{"id":12762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12761,"mutability":"mutable","name":"validator","nameLocation":"16245:9:42","nodeType":"VariableDeclaration","scope":12781,"src":"16237:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12760,"name":"address","nodeType":"ElementaryTypeName","src":"16237:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16236:19:42"},"returnParameters":{"id":12765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12781,"src":"16279:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16278:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12806,"nodeType":"FunctionDefinition","src":"16592:224:42","nodes":[],"body":{"id":12805,"nodeType":"Block","src":"16677:139:42","nodes":[],"statements":[{"assignments":[12791],"declarations":[{"constant":false,"id":12791,"mutability":"mutable","name":"s","nameLocation":"16714:1:42","nodeType":"VariableDeclaration","scope":12805,"src":"16687:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12790,"nodeType":"UserDefinedTypeName","pathNode":{"id":12789,"name":"SubnetActorStorage","nameLocations":["16687:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16687:18:42"},"referencedDeclaration":13839,"src":"16687:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16718:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16740:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16718:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16718:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16687:65:42"},{"expression":{"arguments":[{"id":12801,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12784,"src":"16789:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12802,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"16800:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"16762:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16764:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16762:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16777:11:42","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":12042,"src":"16762:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16762:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12804,"nodeType":"ExpressionStatement","src":"16762:47:42"}]},"documentation":{"id":12782,"nodeType":"StructuredDocumentation","src":"16511:76:42","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"16601:22:42","parameters":{"id":12787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12784,"mutability":"mutable","name":"validator","nameLocation":"16632:9:42","nodeType":"VariableDeclaration","scope":12806,"src":"16624:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12783,"name":"address","nodeType":"ElementaryTypeName","src":"16624:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12786,"mutability":"mutable","name":"metadata","nameLocation":"16658:8:42","nodeType":"VariableDeclaration","scope":12806,"src":"16643:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12785,"name":"bytes","nodeType":"ElementaryTypeName","src":"16643:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16623:44:42"},"returnParameters":{"id":12788,"nodeType":"ParameterList","parameters":[],"src":"16677:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12915,"nodeType":"FunctionDefinition","src":"16914:1335:42","nodes":[],"body":{"id":12914,"nodeType":"Block","src":"16986:1263:42","nodes":[],"statements":[{"assignments":[12816],"declarations":[{"constant":false,"id":12816,"mutability":"mutable","name":"s","nameLocation":"17023:1:42","nodeType":"VariableDeclaration","scope":12914,"src":"16996:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12815,"nodeType":"UserDefinedTypeName","pathNode":{"id":12814,"name":"SubnetActorStorage","nameLocations":["16996:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16996:18:42"},"referencedDeclaration":13839,"src":"16996:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12820,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12817,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"17027:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17049:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"17027:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17027:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16996:65:42"},{"expression":{"arguments":[{"id":12826,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17172:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17132:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17134:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17132:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17147:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"17132:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"17132:47:42"},{"expression":{"arguments":[{"id":12835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17284:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12836,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17295:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12830,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17254:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17256:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17254:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17269:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"17254:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17254:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"ExpressionStatement","src":"17254:48:42"},{"condition":{"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17317:15:42","subExpression":{"expression":{"id":12839,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17318:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17320:12:42","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"17318:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12913,"nodeType":"IfStatement","src":"17313:930:42","trueBody":{"id":12912,"nodeType":"Block","src":"17334:909:42","statements":[{"assignments":[12843],"declarations":[{"constant":false,"id":12843,"mutability":"mutable","name":"alreadyValidator","nameLocation":"17459:16:42","nodeType":"VariableDeclaration","scope":12912,"src":"17454:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12842,"name":"bool","nodeType":"ElementaryTypeName","src":"17454:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12844,"nodeType":"VariableDeclarationStatement","src":"17454:21:42"},{"assignments":[12846],"declarations":[{"constant":false,"id":12846,"mutability":"mutable","name":"length","nameLocation":"17497:6:42","nodeType":"VariableDeclaration","scope":12912,"src":"17489:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12845,"name":"uint256","nodeType":"ElementaryTypeName","src":"17489:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12850,"initialValue":{"expression":{"expression":{"id":12847,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17506:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17508:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17506:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17526:6:42","memberName":"length","nodeType":"MemberAccess","src":"17506:26:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17489:43:42"},{"body":{"id":12875,"nodeType":"Block","src":"17576:240:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12857,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17598:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17600:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17598:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12860,"indexExpression":{"id":12859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17618:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17598:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"id":12861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17621:4:42","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":16331,"src":"17598:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12862,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17629:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17598:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12870,"nodeType":"IfStatement","src":"17594:137:42","trueBody":{"id":12869,"nodeType":"Block","src":"17640:91:42","statements":[{"expression":{"id":12866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12864,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17662:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17681:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17662:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12867,"nodeType":"ExpressionStatement","src":"17662:23:42"},{"id":12868,"nodeType":"Break","src":"17707:5:42"}]}},{"id":12874,"nodeType":"UncheckedBlock","src":"17748:54:42","statements":[{"expression":{"id":12872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17780:3:42","subExpression":{"id":12871,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17782:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12873,"nodeType":"ExpressionStatement","src":"17780:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17562:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12855,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12846,"src":"17566:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17562:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12876,"initializationExpression":{"assignments":[12852],"declarations":[{"constant":false,"id":12852,"mutability":"mutable","name":"i","nameLocation":"17559:1:42","nodeType":"VariableDeclaration","scope":12876,"src":"17551:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12851,"name":"uint256","nodeType":"ElementaryTypeName","src":"17551:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12853,"nodeType":"VariableDeclarationStatement","src":"17551:9:42"},"nodeType":"ForStatement","src":"17546:270:42"},{"condition":{"id":12878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17833:17:42","subExpression":{"id":12877,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17834:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12911,"nodeType":"IfStatement","src":"17829:404:42","trueBody":{"id":12910,"nodeType":"Block","src":"17852:381:42","statements":[{"assignments":[12880],"declarations":[{"constant":false,"id":12880,"mutability":"mutable","name":"collateral","nameLocation":"17878:10:42","nodeType":"VariableDeclaration","scope":12910,"src":"17870:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12879,"name":"uint256","nodeType":"ElementaryTypeName","src":"17870:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12887,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":12881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17891:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17893:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17891:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17906:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"17891:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12885,"indexExpression":{"id":12884,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17917:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17891:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17928:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"17891:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17870:77:42"},{"assignments":[12890],"declarations":[{"constant":false,"id":12890,"mutability":"mutable","name":"val","nameLocation":"17982:3:42","nodeType":"VariableDeclaration","scope":12910,"src":"17965:20:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator"},"typeName":{"id":12889,"nodeType":"UserDefinedTypeName","pathNode":{"id":12888,"name":"Validator","nameLocations":["17965:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"17965:9:42"},"referencedDeclaration":16334,"src":"17965:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":12901,"initialValue":{"arguments":[{"id":12892,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18026:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12893,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"18065:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":12894,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18107:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18109:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18107:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18122:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"18107:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12898,"indexExpression":{"id":12897,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18133:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18107:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18144:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"18107:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":12891,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"17988:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$16334_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18020:4:42","18057:6:42","18097:8:42"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"17988:183:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"17965:206:42"},{"expression":{"arguments":[{"id":12907,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"18214:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":12902,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18189:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18191:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"18189:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18209:4:42","memberName":"push","nodeType":"MemberAccess","src":"18189:24:42","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$_t_struct$_Validator_$16334_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":12908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12909,"nodeType":"ExpressionStatement","src":"18189:29:42"}]}}]}}]},"documentation":{"id":12807,"nodeType":"StructuredDocumentation","src":"16822:87:42","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"16923:18:42","parameters":{"id":12812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12809,"mutability":"mutable","name":"validator","nameLocation":"16950:9:42","nodeType":"VariableDeclaration","scope":12915,"src":"16942:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12808,"name":"address","nodeType":"ElementaryTypeName","src":"16942:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12811,"mutability":"mutable","name":"amount","nameLocation":"16969:6:42","nodeType":"VariableDeclaration","scope":12915,"src":"16961:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12810,"name":"uint256","nodeType":"ElementaryTypeName","src":"16961:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16941:35:42"},"returnParameters":{"id":12813,"nodeType":"ParameterList","parameters":[],"src":"16986:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12957,"nodeType":"FunctionDefinition","src":"18439:504:42","nodes":[],"body":{"id":12956,"nodeType":"Block","src":"18512:431:42","nodes":[],"statements":[{"assignments":[12925],"declarations":[{"constant":false,"id":12925,"mutability":"mutable","name":"s","nameLocation":"18549:1:42","nodeType":"VariableDeclaration","scope":12956,"src":"18522:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12924,"nodeType":"UserDefinedTypeName","pathNode":{"id":12923,"name":"SubnetActorStorage","nameLocations":["18522:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"18522:18:42"},"referencedDeclaration":13839,"src":"18522:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12926,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"18553:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"18553:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18522:65:42"},{"expression":{"arguments":[{"id":12935,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18688:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12936,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18699:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18658:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18660:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18658:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18673:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"18658:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12938,"nodeType":"ExpressionStatement","src":"18658:48:42"},{"expression":{"arguments":[{"id":12944,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18812:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18823:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12939,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18781:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18783:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18781:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18796:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"18781:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18781:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12947,"nodeType":"ExpressionStatement","src":"18781:49:42"},{"expression":{"arguments":[{"id":12953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18929:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":12950,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18908:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18900:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":12948,"name":"address","nodeType":"ElementaryTypeName","src":"18900:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":12951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18919:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"18900:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12955,"nodeType":"ExpressionStatement","src":"18900:36:42"}]},"documentation":{"id":12916,"nodeType":"StructuredDocumentation","src":"18255:179:42","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"18448:19:42","parameters":{"id":12921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12918,"mutability":"mutable","name":"validator","nameLocation":"18476:9:42","nodeType":"VariableDeclaration","scope":12957,"src":"18468:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12917,"name":"address","nodeType":"ElementaryTypeName","src":"18468:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12920,"mutability":"mutable","name":"amount","nameLocation":"18495:6:42","nodeType":"VariableDeclaration","scope":12957,"src":"18487:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18467:35:42"},"returnParameters":{"id":12922,"nodeType":"ParameterList","parameters":[],"src":"18512:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12982,"nodeType":"FunctionDefinition","src":"19060:223:42","nodes":[],"body":{"id":12981,"nodeType":"Block","src":"19143:140:42","nodes":[],"statements":[{"assignments":[12967],"declarations":[{"constant":false,"id":12967,"mutability":"mutable","name":"s","nameLocation":"19180:1:42","nodeType":"VariableDeclaration","scope":12981,"src":"19153:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12966,"nodeType":"UserDefinedTypeName","pathNode":{"id":12965,"name":"SubnetActorStorage","nameLocations":["19153:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19153:18:42"},"referencedDeclaration":13839,"src":"19153:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12971,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12968,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19184:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19206:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19184:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19184:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19153:65:42"},{"expression":{"arguments":[{"id":12977,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12960,"src":"19256:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12978,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12962,"src":"19267:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12972,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12967,"src":"19228:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19230:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19228:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":12976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19240:15:42","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":13569,"src":"19228:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12980,"nodeType":"ExpressionStatement","src":"19228:48:42"}]},"documentation":{"id":12958,"nodeType":"StructuredDocumentation","src":"19017:38:42","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"19069:20:42","parameters":{"id":12963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12960,"mutability":"mutable","name":"validator","nameLocation":"19098:9:42","nodeType":"VariableDeclaration","scope":12982,"src":"19090:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12959,"name":"address","nodeType":"ElementaryTypeName","src":"19090:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12962,"mutability":"mutable","name":"metadata","nameLocation":"19124:8:42","nodeType":"VariableDeclaration","scope":12982,"src":"19109:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12961,"name":"bytes","nodeType":"ElementaryTypeName","src":"19109:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19089:44:42"},"returnParameters":{"id":12964,"nodeType":"ParameterList","parameters":[],"src":"19143:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13016,"nodeType":"FunctionDefinition","src":"19328:256:42","nodes":[],"body":{"id":13015,"nodeType":"Block","src":"19389:195:42","nodes":[],"statements":[{"assignments":[12992],"declarations":[{"constant":false,"id":12992,"mutability":"mutable","name":"s","nameLocation":"19426:1:42","nodeType":"VariableDeclaration","scope":13015,"src":"19399:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12991,"nodeType":"UserDefinedTypeName","pathNode":{"id":12990,"name":"SubnetActorStorage","nameLocations":["19399:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19399:18:42"},"referencedDeclaration":13839,"src":"19399:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12996,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12993,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19430:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19452:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19430:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19430:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19399:65:42"},{"expression":{"arguments":[{"id":13002,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19502:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13003,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19513:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19475:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19477:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19475:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19487:14:42","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":13643,"src":"19475:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19475:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13005,"nodeType":"ExpressionStatement","src":"19475:45:42"},{"expression":{"arguments":[{"id":13011,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19559:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13012,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19570:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13006,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19530:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19532:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19530:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19545:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"19530:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19530:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13014,"nodeType":"ExpressionStatement","src":"19530:47:42"}]},"documentation":{"id":12983,"nodeType":"StructuredDocumentation","src":"19289:34:42","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"19337:7:42","parameters":{"id":12988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12985,"mutability":"mutable","name":"validator","nameLocation":"19353:9:42","nodeType":"VariableDeclaration","scope":13016,"src":"19345:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12984,"name":"address","nodeType":"ElementaryTypeName","src":"19345:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12987,"mutability":"mutable","name":"amount","nameLocation":"19372:6:42","nodeType":"VariableDeclaration","scope":13016,"src":"19364:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12986,"name":"uint256","nodeType":"ElementaryTypeName","src":"19364:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19344:35:42"},"returnParameters":{"id":12989,"nodeType":"ParameterList","parameters":[],"src":"19389:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13050,"nodeType":"FunctionDefinition","src":"19630:259:42","nodes":[],"body":{"id":13049,"nodeType":"Block","src":"19692:197:42","nodes":[],"statements":[{"assignments":[13026],"declarations":[{"constant":false,"id":13026,"mutability":"mutable","name":"s","nameLocation":"19729:1:42","nodeType":"VariableDeclaration","scope":13049,"src":"19702:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13025,"nodeType":"UserDefinedTypeName","pathNode":{"id":13024,"name":"SubnetActorStorage","nameLocations":["19702:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19702:18:42"},"referencedDeclaration":13839,"src":"19702:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13027,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19733:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19755:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19733:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19733:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19702:65:42"},{"expression":{"arguments":[{"id":13036,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19806:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19817:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19778:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19780:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19778:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19790:15:42","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":13606,"src":"19778:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19778:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13039,"nodeType":"ExpressionStatement","src":"19778:46:42"},{"expression":{"arguments":[{"id":13045,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19864:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13046,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19875:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19834:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19836:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19834:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19849:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"19834:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13048,"nodeType":"ExpressionStatement","src":"19834:48:42"}]},"documentation":{"id":13017,"nodeType":"StructuredDocumentation","src":"19590:35:42","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"19639:8:42","parameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13019,"mutability":"mutable","name":"validator","nameLocation":"19656:9:42","nodeType":"VariableDeclaration","scope":13050,"src":"19648:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13018,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13021,"mutability":"mutable","name":"amount","nameLocation":"19675:6:42","nodeType":"VariableDeclaration","scope":13050,"src":"19667:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13020,"name":"uint256","nodeType":"ElementaryTypeName","src":"19667:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19647:35:42"},"returnParameters":{"id":13023,"nodeType":"ParameterList","parameters":[],"src":"19692:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13077,"nodeType":"FunctionDefinition","src":"19998:244:42","nodes":[],"body":{"id":13076,"nodeType":"Block","src":"20051:191:42","nodes":[],"statements":[{"assignments":[13058],"declarations":[{"constant":false,"id":13058,"mutability":"mutable","name":"s","nameLocation":"20088:1:42","nodeType":"VariableDeclaration","scope":13076,"src":"20061:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13057,"nodeType":"UserDefinedTypeName","pathNode":{"id":13056,"name":"SubnetActorStorage","nameLocations":["20061:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20061:18:42"},"referencedDeclaration":13839,"src":"20061:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13062,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13059,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20092:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20114:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20092:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20092:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20061:65:42"},{"assignments":[13064],"declarations":[{"constant":false,"id":13064,"mutability":"mutable","name":"amount","nameLocation":"20144:6:42","nodeType":"VariableDeclaration","scope":13076,"src":"20136:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13063,"name":"uint256","nodeType":"ElementaryTypeName","src":"20136:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"id":13068,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20174:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"20153:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20155:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"20153:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20168:5:42","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"20153:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20153:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20136:48:42"},{"eventCall":{"arguments":[{"id":13072,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20217:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13064,"src":"20228:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13071,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"20199:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20199:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13075,"nodeType":"EmitStatement","src":"20194:41:42"}]},"documentation":{"id":13051,"nodeType":"StructuredDocumentation","src":"19952:41:42","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"20007:15:42","parameters":{"id":13054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13053,"mutability":"mutable","name":"validator","nameLocation":"20031:9:42","nodeType":"VariableDeclaration","scope":13077,"src":"20023:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13052,"name":"address","nodeType":"ElementaryTypeName","src":"20023:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20022:19:42"},"returnParameters":{"id":13055,"nodeType":"ParameterList","parameters":[],"src":"20051:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13130,"nodeType":"FunctionDefinition","src":"20356:423:42","nodes":[],"body":{"id":13129,"nodeType":"Block","src":"20413:366:42","nodes":[],"statements":[{"assignments":[13085],"declarations":[{"constant":false,"id":13085,"mutability":"mutable","name":"s","nameLocation":"20450:1:42","nodeType":"VariableDeclaration","scope":13129,"src":"20423:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13084,"nodeType":"UserDefinedTypeName","pathNode":{"id":13083,"name":"SubnetActorStorage","nameLocations":["20423:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20423:18:42"},"referencedDeclaration":13839,"src":"20423:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13086,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20454:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20476:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20454:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20423:65:42"},{"assignments":[13091],"declarations":[{"constant":false,"id":13091,"mutability":"mutable","name":"amount","nameLocation":"20506:6:42","nodeType":"VariableDeclaration","scope":13129,"src":"20498:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13090,"name":"uint256","nodeType":"ElementaryTypeName","src":"20498:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13096,"initialValue":{"baseExpression":{"expression":{"id":13092,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20515:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20517:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20515:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13095,"indexExpression":{"id":13094,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20532:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20515:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20498:42:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20555:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20565:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20555:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13104,"nodeType":"IfStatement","src":"20551:69:42","trueBody":{"id":13103,"nodeType":"Block","src":"20568:52:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13100,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"20589:18:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20589:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13102,"nodeType":"RevertStatement","src":"20582:27:42"}]}},{"expression":{"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20630:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20632:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20630:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13109,"indexExpression":{"id":13107,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20647:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20630:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20658:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20630:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13112,"nodeType":"ExpressionStatement","src":"20630:29:42"},{"expression":{"arguments":[{"id":13118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20720:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20678:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20680:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"20678:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13113,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"20669:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20696:23:42","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":8779,"src":"20669:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13120,"nodeType":"ExpressionStatement","src":"20669:58:42"},{"expression":{"arguments":[{"id":13126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20765:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13123,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20746:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20738:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":13121,"name":"address","nodeType":"ElementaryTypeName","src":"20738:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20755:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"20738:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13128,"nodeType":"ExpressionStatement","src":"20738:34:42"}]},"documentation":{"id":13078,"nodeType":"StructuredDocumentation","src":"20248:103:42","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"20365:21:42","parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"relayer","nameLocation":"20395:7:42","nodeType":"VariableDeclaration","scope":13130,"src":"20387:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13079,"name":"address","nodeType":"ElementaryTypeName","src":"20387:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20386:17:42"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[],"src":"20413:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13298,"nodeType":"FunctionDefinition","src":"20907:1621:42","nodes":[],"body":{"id":13297,"nodeType":"Block","src":"20967:1561:42","nodes":[],"statements":[{"assignments":[13138],"declarations":[{"constant":false,"id":13138,"mutability":"mutable","name":"s","nameLocation":"21004:1:42","nodeType":"VariableDeclaration","scope":13297,"src":"20977:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13137,"nodeType":"UserDefinedTypeName","pathNode":{"id":13136,"name":"SubnetActorStorage","nameLocations":["20977:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20977:18:42"},"referencedDeclaration":13839,"src":"20977:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13142,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13139,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"21008:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"21008:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21008:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20977:65:42"},{"assignments":[13145],"declarations":[{"constant":false,"id":13145,"mutability":"mutable","name":"changeSet","nameLocation":"21077:9:42","nodeType":"VariableDeclaration","scope":13297,"src":"21052:34:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13144,"nodeType":"UserDefinedTypeName","pathNode":{"id":13143,"name":"StakingChangeLog","nameLocations":["21052:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"21052:16:42"},"referencedDeclaration":16257,"src":"21052:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":13148,"initialValue":{"expression":{"id":13146,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21089:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21091:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"21089:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21052:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13149,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21115:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":13150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21138:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21148:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"21138:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21115:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13157,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21243:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13158,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21265:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21275:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21265:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21243:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13163,"nodeType":"IfStatement","src":"21239:93:42","trueBody":{"id":13162,"nodeType":"Block","src":"21301:31:42","statements":[{"functionReturnParameters":13135,"id":13161,"nodeType":"Return","src":"21315:7:42"}]}},"id":13164,"nodeType":"IfStatement","src":"21111:221:42","trueBody":{"id":13156,"nodeType":"Block","src":"21173:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13153,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"21194:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13155,"nodeType":"RevertStatement","src":"21187:35:42"}]}},{"assignments":[13166],"declarations":[{"constant":false,"id":13166,"mutability":"mutable","name":"start","nameLocation":"21349:5:42","nodeType":"VariableDeclaration","scope":13297,"src":"21342:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13165,"name":"uint64","nodeType":"ElementaryTypeName","src":"21342:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13169,"initialValue":{"expression":{"id":13167,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21357:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21367:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21357:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21342:49:42"},{"body":{"id":13283,"nodeType":"Block","src":"21452:934:42","statements":[{"assignments":[13179],"declarations":[{"constant":false,"id":13179,"mutability":"mutable","name":"change","nameLocation":"21488:6:42","nodeType":"VariableDeclaration","scope":13283,"src":"21466:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13178,"nodeType":"UserDefinedTypeName","pathNode":{"id":13177,"name":"StakingChange","nameLocations":["21466:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"21466:13:42"},"referencedDeclaration":16238,"src":"21466:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13184,"initialValue":{"arguments":[{"id":13182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21517:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13180,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21497:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21507:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"21497:19:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21497:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21466:53:42"},{"assignments":[13186],"declarations":[{"constant":false,"id":13186,"mutability":"mutable","name":"validator","nameLocation":"21541:9:42","nodeType":"VariableDeclaration","scope":13283,"src":"21533:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13185,"name":"address","nodeType":"ElementaryTypeName","src":"21533:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13189,"initialValue":{"expression":{"id":13187,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21553:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21560:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"21553:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21533:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13190,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21588:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21595:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21588:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13192,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21601:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21618:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"21601:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21588:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13271,"nodeType":"Block","src":"21732:546:42","statements":[{"assignments":[13209],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"amount","nameLocation":"21758:6:42","nodeType":"VariableDeclaration","scope":13271,"src":"21750:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13208,"name":"uint256","nodeType":"ElementaryTypeName","src":"21750:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13218,"initialValue":{"arguments":[{"expression":{"id":13212,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21778:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21785:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21778:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21795:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"21795:7:42","typeDescriptions":{}}}],"id":13216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21794:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21767:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21771:6:42","memberName":"decode","nodeType":"MemberAccess","src":"21767:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21767:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21750:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13219,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21827:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21834:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21827:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13221,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21840:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21857:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"21840:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21827:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13269,"nodeType":"Block","src":"22101:163:42","statements":[{"expression":{"arguments":[{"id":13256,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"22153:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13257,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22164:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13251,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22123:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22125:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"22123:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22138:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"22123:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22123:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13259,"nodeType":"ExpressionStatement","src":"22123:48:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":13261,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22202:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22204:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22202:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13260,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22193:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22220:8:42","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":8767,"src":"22193:35:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13265,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22236:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"22193:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13268,"nodeType":"ExpressionStatement","src":"22193:52:42"}]},"id":13270,"nodeType":"IfStatement","src":"21823:441:42","trueBody":{"id":13250,"nodeType":"Block","src":"21867:228:42","statements":[{"expression":{"arguments":[{"id":13229,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21920:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13230,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"21931:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21889:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21891:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21889:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"21889:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13232,"nodeType":"ExpressionStatement","src":"21889:49:42"},{"expression":{"arguments":[{"id":13238,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21989:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13239,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22000:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21960:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21962:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"21960:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21975:13:42","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":11692,"src":"21960:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":13240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21960:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13241,"nodeType":"ExpressionStatement","src":"21960:47:42"},{"expression":{"arguments":[{"id":13247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22069:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13243,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22038:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22040:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22038:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22029:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22056:12:42","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":8773,"src":"22029:39:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13249,"nodeType":"ExpressionStatement","src":"22029:47:42"}]}}]},"id":13272,"nodeType":"IfStatement","src":"21584:694:42","trueBody":{"id":13207,"nodeType":"Block","src":"21631:95:42","statements":[{"expression":{"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13195,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21649:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21651:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21649:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21664:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"21649:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13201,"indexExpression":{"id":13198,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21675:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21649:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21686:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"21649:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13203,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21697:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21704:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21697:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"21649:62:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13206,"nodeType":"ExpressionStatement","src":"21649:62:42"}]}},{"expression":{"arguments":[{"id":13276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22314:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22292:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22302:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"22292:21:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22292:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13278,"nodeType":"ExpressionStatement","src":"22292:24:42"},{"id":13282,"nodeType":"UncheckedBlock","src":"22330:46:42","statements":[{"expression":{"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"22358:3:42","subExpression":{"id":13279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22360:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13281,"nodeType":"ExpressionStatement","src":"22358:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21424:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13175,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21429:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21424:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13284,"initializationExpression":{"assignments":[13171],"declarations":[{"constant":false,"id":13171,"mutability":"mutable","name":"i","nameLocation":"21413:1:42","nodeType":"VariableDeclaration","scope":13284,"src":"21406:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13170,"name":"uint64","nodeType":"ElementaryTypeName","src":"21406:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13173,"initialValue":{"id":13172,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13166,"src":"21417:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21406:16:42"},"nodeType":"ForStatement","src":"21401:985:42"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13285,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22396:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22406:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"22396:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13288,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22433:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22433:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22396:60:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13292,"nodeType":"ExpressionStatement","src":"22396:60:42"},{"eventCall":{"arguments":[{"id":13294,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22501:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13293,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"22472:28:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22472:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13296,"nodeType":"EmitStatement","src":"22467:54:42"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"20785:117:42","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"20916:13:42","parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"configurationNumber","nameLocation":"20937:19:42","nodeType":"VariableDeclaration","scope":13298,"src":"20930:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13132,"name":"uint64","nodeType":"ElementaryTypeName","src":"20930:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20929:28:42"},"returnParameters":{"id":13135,"nodeType":"ParameterList","parameters":[],"src":"20967:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13299],"name":"LibStaking","nameLocation":"13941:10:42","scope":13522,"usedErrors":[1248,1256,6123]},{"id":13521,"nodeType":"ContractDefinition","src":"22687:2370:42","nodes":[{"id":13304,"nodeType":"UsingForDirective","src":"22722:39:42","nodes":[],"global":false,"libraryName":{"id":13301,"name":"LibValidatorSet","nameLocations":["22728:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"22728:15:42"},"typeName":{"id":13303,"nodeType":"UserDefinedTypeName","pathNode":{"id":13302,"name":"ValidatorSet","nameLocations":["22748:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"22748:12:42"},"referencedDeclaration":16313,"src":"22748:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":13308,"nodeType":"UsingForDirective","src":"22766:47:42","nodes":[],"global":false,"libraryName":{"id":13305,"name":"LibStakingChangeLog","nameLocations":["22772:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"22772:19:42"},"typeName":{"id":13307,"nodeType":"UserDefinedTypeName","pathNode":{"id":13306,"name":"StakingChangeLog","nameLocations":["22796:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"22796:16:42"},"referencedDeclaration":16257,"src":"22796:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":13343,"nodeType":"FunctionDefinition","src":"22819:475:42","nodes":[],"body":{"id":13342,"nodeType":"Block","src":"22932:362:42","nodes":[],"statements":[{"assignments":[13318],"declarations":[{"constant":false,"id":13318,"mutability":"mutable","name":"configurationNumber","nameLocation":"22949:19:42","nodeType":"VariableDeclaration","scope":13342,"src":"22942:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13317,"name":"uint64","nodeType":"ElementaryTypeName","src":"22942:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13332,"initialValue":{"arguments":[{"expression":{"expression":{"id":13322,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23022:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23036:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23022:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23043:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"23022:30:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":13325,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23070:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23084:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23070:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23091:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"23070:23:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":13328,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23116:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23130:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23116:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23137:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"23116:28:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":13319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13311,"src":"22971:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22976:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"22971:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22984:12:42","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":13685,"src":"22971:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["23011:9:42","23066:2:42","23107:7:42"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"22971:184:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"22942:213:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13333,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"23170:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13334,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23193:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23207:19:42","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16243,"src":"23193:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23170:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13341,"nodeType":"IfStatement","src":"23166:122:42","trueBody":{"id":13340,"nodeType":"Block","src":"23228:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13337,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"23249:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23249:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13339,"nodeType":"RevertStatement","src":"23242:35:42"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"22828:11:42","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13311,"mutability":"mutable","name":"self","nameLocation":"22872:4:42","nodeType":"VariableDeclaration","scope":13343,"src":"22840:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13310,"nodeType":"UserDefinedTypeName","pathNode":{"id":13309,"name":"ParentValidatorsTracker","nameLocations":["22840:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"22840:23:42"},"referencedDeclaration":16320,"src":"22840:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"changeRequest","nameLocation":"22908:13:42","nodeType":"VariableDeclaration","scope":13343,"src":"22878:43:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":13313,"nodeType":"UserDefinedTypeName","pathNode":{"id":13312,"name":"StakingChangeRequest","nameLocations":["22878:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"22878:20:42"},"referencedDeclaration":16244,"src":"22878:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"22839:83:42"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"22932:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13384,"nodeType":"FunctionDefinition","src":"23300:415:42","nodes":[],"body":{"id":13383,"nodeType":"Block","src":"23443:272:42","nodes":[],"statements":[{"assignments":[13354],"declarations":[{"constant":false,"id":13354,"mutability":"mutable","name":"length","nameLocation":"23461:6:42","nodeType":"VariableDeclaration","scope":13383,"src":"23453:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13353,"name":"uint256","nodeType":"ElementaryTypeName","src":"23453:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13357,"initialValue":{"expression":{"id":13355,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23470:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23485:6:42","memberName":"length","nodeType":"MemberAccess","src":"23470:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23453:38:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13358,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23505:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23505:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13363,"nodeType":"IfStatement","src":"23501:48:42","trueBody":{"id":13362,"nodeType":"Block","src":"23518:31:42","statements":[{"functionReturnParameters":13352,"id":13361,"nodeType":"Return","src":"23532:7:42"}]}},{"body":{"id":13381,"nodeType":"Block","src":"23589:120:42","statements":[{"expression":{"arguments":[{"id":13371,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"23615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":13372,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23621:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13374,"indexExpression":{"id":13373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23636:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23621:17:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":13370,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"23603:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13376,"nodeType":"ExpressionStatement","src":"23603:36:42"},{"id":13380,"nodeType":"UncheckedBlock","src":"23653:46:42","statements":[{"expression":{"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23681:3:42","subExpression":{"id":13377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23683:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13379,"nodeType":"ExpressionStatement","src":"23681:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23575:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13368,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23579:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23575:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13382,"initializationExpression":{"assignments":[13365],"declarations":[{"constant":false,"id":13365,"mutability":"mutable","name":"i","nameLocation":"23572:1:42","nodeType":"VariableDeclaration","scope":13382,"src":"23564:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13364,"name":"uint256","nodeType":"ElementaryTypeName","src":"23564:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13366,"nodeType":"VariableDeclarationStatement","src":"23564:9:42"},"nodeType":"ForStatement","src":"23559:150:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"23309:16:42","parameters":{"id":13351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"self","nameLocation":"23367:4:42","nodeType":"VariableDeclaration","scope":13384,"src":"23335:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13345,"nodeType":"UserDefinedTypeName","pathNode":{"id":13344,"name":"ParentValidatorsTracker","nameLocations":["23335:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23335:23:42"},"referencedDeclaration":16320,"src":"23335:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13350,"mutability":"mutable","name":"changeRequests","nameLocation":"23413:14:42","nodeType":"VariableDeclaration","scope":13384,"src":"23381:46:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":13348,"nodeType":"UserDefinedTypeName","pathNode":{"id":13347,"name":"StakingChangeRequest","nameLocations":["23381:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"23381:20:42"},"referencedDeclaration":16244,"src":"23381:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":13349,"nodeType":"ArrayTypeName","src":"23381:22:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"23325:108:42"},"returnParameters":{"id":13352,"nodeType":"ParameterList","parameters":[],"src":"23443:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13520,"nodeType":"FunctionDefinition","src":"23786:1269:42","nodes":[],"body":{"id":13519,"nodeType":"Block","src":"23884:1171:42","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13393,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"23898:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":13394,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"23921:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23926:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"23921:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23934:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"23921:36:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23898:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13402,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24029:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24051:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24056:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24051:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24064:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24051:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24029:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13409,"nodeType":"IfStatement","src":"24025:96:42","trueBody":{"id":13408,"nodeType":"Block","src":"24090:31:42","statements":[{"functionReturnParameters":13392,"id":13407,"nodeType":"Return","src":"24104:7:42"}]}},"id":13410,"nodeType":"IfStatement","src":"23894:227:42","trueBody":{"id":13401,"nodeType":"Block","src":"23959:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13398,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"23980:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23980:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13400,"nodeType":"RevertStatement","src":"23973:35:42"}]}},{"assignments":[13412],"declarations":[{"constant":false,"id":13412,"mutability":"mutable","name":"start","nameLocation":"24138:5:42","nodeType":"VariableDeclaration","scope":13519,"src":"24131:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13411,"name":"uint64","nodeType":"ElementaryTypeName","src":"24131:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13416,"initialValue":{"expression":{"expression":{"id":13413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24146:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24151:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24146:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24159:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24146:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24131:52:42"},{"body":{"id":13507,"nodeType":"Block","src":"24245:731:42","statements":[{"assignments":[13426],"declarations":[{"constant":false,"id":13426,"mutability":"mutable","name":"change","nameLocation":"24281:6:42","nodeType":"VariableDeclaration","scope":13507,"src":"24259:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13425,"nodeType":"UserDefinedTypeName","pathNode":{"id":13424,"name":"StakingChange","nameLocations":["24259:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"24259:13:42"},"referencedDeclaration":16238,"src":"24259:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13432,"initialValue":{"arguments":[{"id":13430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24313:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13427,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24290:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24295:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24290:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24303:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"24290:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24290:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24259:56:42"},{"assignments":[13434],"declarations":[{"constant":false,"id":13434,"mutability":"mutable","name":"validator","nameLocation":"24337:9:42","nodeType":"VariableDeclaration","scope":13507,"src":"24329:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13433,"name":"address","nodeType":"ElementaryTypeName","src":"24329:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13437,"initialValue":{"expression":{"id":13435,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24349:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24356:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"24349:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24329:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13438,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24384:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24391:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24384:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13440,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24397:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24414:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"24397:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24384:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13493,"nodeType":"Block","src":"24529:336:42","statements":[{"assignments":[13457],"declarations":[{"constant":false,"id":13457,"mutability":"mutable","name":"amount","nameLocation":"24555:6:42","nodeType":"VariableDeclaration","scope":13493,"src":"24547:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13466,"initialValue":{"arguments":[{"expression":{"id":13460,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24575:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24582:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24575:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24592:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24592:7:42","typeDescriptions":{}}}],"id":13464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24591:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24564:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24568:6:42","memberName":"decode","nodeType":"MemberAccess","src":"24564:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24564:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24547:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13467,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24624:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24631:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24624:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24637:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24654:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"24637:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24624:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13491,"nodeType":"Block","src":"24761:90:42","statements":[{"expression":{"arguments":[{"id":13487,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24814:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13488,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24825:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24783:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24788:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24783:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24799:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"24783:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24783:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13490,"nodeType":"ExpressionStatement","src":"24783:49:42"}]},"id":13492,"nodeType":"IfStatement","src":"24620:231:42","trueBody":{"id":13481,"nodeType":"Block","src":"24664:91:42","statements":[{"expression":{"arguments":[{"id":13477,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24718:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24729:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24686:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24691:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24686:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24702:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"24686:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24686:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13480,"nodeType":"ExpressionStatement","src":"24686:50:42"}]}}]},"id":13494,"nodeType":"IfStatement","src":"24380:485:42","trueBody":{"id":13455,"nodeType":"Block","src":"24427:96:42","statements":[{"expression":{"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24445:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24450:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24445:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24461:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"24445:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13449,"indexExpression":{"id":13446,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24472:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24445:37:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24483:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"24445:46:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13451,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24494:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24501:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24494:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24445:63:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13454,"nodeType":"ExpressionStatement","src":"24445:63:42"}]}},{"expression":{"arguments":[{"id":13500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24904:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24879:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24884:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24879:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24892:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"24879:24:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24879:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13502,"nodeType":"ExpressionStatement","src":"24879:27:42"},{"id":13506,"nodeType":"UncheckedBlock","src":"24920:46:42","statements":[{"expression":{"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24948:3:42","subExpression":{"id":13503,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24950:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13505,"nodeType":"ExpressionStatement","src":"24948:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24217:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24222:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24217:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13508,"initializationExpression":{"assignments":[13418],"declarations":[{"constant":false,"id":13418,"mutability":"mutable","name":"i","nameLocation":"24206:1:42","nodeType":"VariableDeclaration","scope":13508,"src":"24199:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13417,"name":"uint64","nodeType":"ElementaryTypeName","src":"24199:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13420,"initialValue":{"id":13419,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"24210:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24199:16:42"},"nodeType":"ForStatement","src":"24194:782:42"},{"expression":{"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":13509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24985:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24990:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24985:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24998:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24985:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13514,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"25025:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25047:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25025:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24985:63:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13518,"nodeType":"ExpressionStatement","src":"24985:63:42"}]},"documentation":{"id":13385,"nodeType":"StructuredDocumentation","src":"23721:60:42","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23795:13:42","parameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13388,"mutability":"mutable","name":"self","nameLocation":"23841:4:42","nodeType":"VariableDeclaration","scope":13520,"src":"23809:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13387,"nodeType":"UserDefinedTypeName","pathNode":{"id":13386,"name":"ParentValidatorsTracker","nameLocations":["23809:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23809:23:42"},"referencedDeclaration":16320,"src":"23809:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13390,"mutability":"mutable","name":"configurationNumber","nameLocation":"23854:19:42","nodeType":"VariableDeclaration","scope":13520,"src":"23847:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13389,"name":"uint64","nodeType":"ElementaryTypeName","src":"23847:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23808:66:42"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[],"src":"23884:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":13300,"nodeType":"StructuredDocumentation","src":"22532:155:42","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[13521],"name":"LibValidatorTracking","nameLocation":"22695:20:42","scope":13522,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":42} \ No newline at end of file diff --git a/contracts/out/LibStaking.sol/LibStaking.json b/contracts/out/LibStaking.sol/LibStaking.json deleted file mode 100644 index 1b34b6ffa2..0000000000 --- a/contracts/out/LibStaking.sol/LibStaking.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"CollateralClaimed","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConfigurationNumberConfirmed","inputs":[{"name":"number","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NoRewardToWithdraw","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c57610214908161002282393081602e0152f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152601c60205260409020549283156101c6576001600160a01b03166000908152601c60205260409020869055600954869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea264697066735822122020f61cdf72c7a944fae447b76d212b2f10202bf8a4ad03f685388a302d3d61ef64736f6c63430008130033","sourceMap":"13933:8597:42:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152601c60205260409020549283156101c6576001600160a01b03166000908152601c60205260409020869055600954869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea264697066735822122020f61cdf72c7a944fae447b76d212b2f10202bf8a4ad03f685388a302d3d61ef64736f6c63430008130033","sourceMap":"13933:8597:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13933:8597:42;;;;;;-1:-1:-1;;;;;13933:8597:42;;;;;;;;;-1:-1:-1;;;;;13933:8597:42;;;;;;20515:16;13933:8597;;;;;;20555:11;;;20551:69;;-1:-1:-1;;;;;13933:8597:42;;;;;20515:16;13933:8597;;;;;;;;20678:16;13933:8597;20630:25;;13933:8597;20669:58;;;;;13933:8597;;;;;;;;;;;;20669:58;;;;;;13933:8597;20669:58;;;;;;;;13933:8597;1615:21:6;;;:30;1611:109;;1749:33;;;;;;;;13933:8597:42;;;;;;;;;;;;;;;;;-1:-1:-1;;13933:8597:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;1796:8:6;1792:63;;13933:8597:42;;;1792:63:6;13933:8597:42;-1:-1:-1;;;1827:17:6;;;13933:8597:42;;;;;;;;;;;;;-1:-1:-1;;;13933:8597:42;;;;;;;;;;;1611:109:6;13933:8597:42;;-1:-1:-1;;;1668:41:6;;13933:8597:42;1668:41:6;;;13933:8597:42;;;1668:41:6;20669:58:42;13933:8597;;;;;;;;;;20669:58;;;;13933:8597;-1:-1:-1;;;13933:8597:42;;;;;;;;20669:58;13933:8597;;;;;;;;;20669:58;13933:8597;;;20551:69;13933:8597;;-1:-1:-1;;;20589:20:42;;13933:8597;;20589:20;13933:8597;;;;;;;","linkReferences":{},"immutableReferences":{"library_deploy_address":[{"start":46,"length":32}]}},"methodIdentifiers":{"claimRewardForRelayer(address)":"82985e0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CollateralClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"}],\"name\":\"ConfigurationNumberConfirmed\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claimRewardForRelayer(address)\":{\"notice\":\"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NoRewardToWithdraw"},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"CollateralClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"number","type":"uint64","indexed":false}],"type":"event","name":"ConfigurationNumberConfirmed","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claimRewardForRelayer(address)":{"notice":"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStaking"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":13522,"exportedSymbols":{"Address":[1625],"AddressShouldBeValidator":[6051],"AddressStakingReleases":[16274],"CannotConfirmFutureChanges":[6055],"GatewayActorStorage":[11147],"IGateway":[8843],"InvalidConfigurationNumber":[6091],"LibAddressStakingReleases":[11618],"LibGatewayActorStorage":[11158],"LibMaxPQ":[15248],"LibMinPQ":[15867],"LibStaking":[13299],"LibStakingChangeLog":[13719],"LibStakingReleaseQueue":[11737],"LibSubnetActorStorage":[13850],"LibValidatorSet":[12589],"LibValidatorTracking":[13521],"MaxPQ":[14643],"MinPQ":[15261],"NoCollateralToWithdraw":[6121],"NoRewardToWithdraw":[6123],"NotValidator":[6163],"ParentValidatorsTracker":[16320],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingChangeRequest":[16244],"StakingOperation":[16230],"StakingRelease":[16264],"StakingReleaseQueue":[16284],"SubnetActorStorage":[13839],"Validator":[16334],"ValidatorSet":[16313],"WithdrawExceedingCollateral":[6183]},"nodeType":"SourceUnit","src":"46:25012:42","nodes":[{"id":11448,"nodeType":"PragmaDirective","src":"46:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11450,"nodeType":"ImportDirective","src":"71:52:42","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":8844,"symbolAliases":[{"foreign":{"id":11449,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"79:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11453,"nodeType":"ImportDirective","src":"124:86:42","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":11451,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"132:21:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11452,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"155:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11456,"nodeType":"ImportDirective","src":"211:94:42","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":11454,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"219:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11455,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"240:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11459,"nodeType":"ImportDirective","src":"306:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15249,"symbolAliases":[{"foreign":{"id":11457,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"314:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11458,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14643,"src":"324:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11462,"nodeType":"ImportDirective","src":"363:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15868,"symbolAliases":[{"foreign":{"id":11460,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"371:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11461,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"381:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11464,"nodeType":"ImportDirective","src":"420:62:42","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13720,"symbolAliases":[{"foreign":{"id":11463,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"428:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11475,"nodeType":"ImportDirective","src":"483:221:42","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11465,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"491:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11466,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"512:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11467,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"530:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11468,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"545:20:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"567:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11470,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"585:14:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11471,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"601:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11472,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16274,"src":"615:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11473,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"639:23:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11474,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"664:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11483,"nodeType":"ImportDirective","src":"705:208:42","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11476,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"713:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11477,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"733:27:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11478,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"762:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11479,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"776:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11480,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"804:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11481,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"828:24:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11482,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"854:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11485,"nodeType":"ImportDirective","src":"914:65:42","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":11484,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"922:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11618,"nodeType":"ContractDefinition","src":"981:1635:42","nodes":[{"id":11524,"nodeType":"FunctionDefinition","src":"1197:261:42","nodes":[],"body":{"id":11523,"nodeType":"Block","src":"1288:170:42","nodes":[],"statements":[{"assignments":[11496],"declarations":[{"constant":false,"id":11496,"mutability":"mutable","name":"length","nameLocation":"1305:6:42","nodeType":"VariableDeclaration","scope":11523,"src":"1298:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1298:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11499,"initialValue":{"expression":{"id":11497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1314:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1319:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1314:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1298:27:42"},{"assignments":[11501],"declarations":[{"constant":false,"id":11501,"mutability":"mutable","name":"nextIdx","nameLocation":"1342:7:42","nodeType":"VariableDeclaration","scope":11523,"src":"1335:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11500,"name":"uint16","nodeType":"ElementaryTypeName","src":"1335:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11506,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1352:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1357:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1352:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11504,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1368:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1352:22:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1335:39:42"},{"expression":{"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1385:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1390:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"1385:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11511,"indexExpression":{"id":11509,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"1399:7:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1385:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11512,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11492,"src":"1410:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1385:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"id":11514,"nodeType":"ExpressionStatement","src":"1385:32:42"},{"expression":{"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11515,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1427:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1432:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1427:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11518,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1441:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1441:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1427:24:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11522,"nodeType":"ExpressionStatement","src":"1427:24:42"}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"1021:171:42","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1206:4:42","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11489,"mutability":"mutable","name":"self","nameLocation":"1242:4:42","nodeType":"VariableDeclaration","scope":11524,"src":"1211:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11488,"nodeType":"UserDefinedTypeName","pathNode":{"id":11487,"name":"AddressStakingReleases","nameLocations":["1211:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1211:22:42"},"referencedDeclaration":16274,"src":"1211:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"release","nameLocation":"1270:7:42","nodeType":"VariableDeclaration","scope":11524,"src":"1248:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11491,"nodeType":"UserDefinedTypeName","pathNode":{"id":11490,"name":"StakingRelease","nameLocations":["1248:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"1248:14:42"},"referencedDeclaration":16264,"src":"1248:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1210:68:42"},"returnParameters":{"id":11494,"nodeType":"ParameterList","parameters":[],"src":"1288:0:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11617,"nodeType":"FunctionDefinition","src":"1716:898:42","nodes":[],"body":{"id":11616,"nodeType":"Block","src":"1805:809:42","nodes":[],"statements":[{"assignments":[11536],"declarations":[{"constant":false,"id":11536,"mutability":"mutable","name":"length","nameLocation":"1822:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"1815:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11535,"name":"uint16","nodeType":"ElementaryTypeName","src":"1815:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11539,"initialValue":{"expression":{"id":11537,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1831:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1831:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1815:27:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1856:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1861:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1856:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1871:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1856:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11548,"nodeType":"IfStatement","src":"1852:78:42","trueBody":{"id":11547,"nodeType":"Block","src":"1874:56:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11544,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1895:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"RevertStatement","src":"1888:31:42"}]}},{"assignments":[11550],"declarations":[{"constant":false,"id":11550,"mutability":"mutable","name":"i","nameLocation":"1947:1:42","nodeType":"VariableDeclaration","scope":11616,"src":"1940:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11549,"name":"uint16","nodeType":"ElementaryTypeName","src":"1940:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11553,"initialValue":{"expression":{"id":11551,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1951:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1956:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1951:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1940:24:42"},{"assignments":[11555],"declarations":[{"constant":false,"id":11555,"mutability":"mutable","name":"newLength","nameLocation":"1981:9:42","nodeType":"VariableDeclaration","scope":11616,"src":"1974:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1974:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11557,"initialValue":{"id":11556,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"1993:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1974:25:42"},{"assignments":[11559],"declarations":[{"constant":false,"id":11559,"mutability":"mutable","name":"amount","nameLocation":"2017:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"2009:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11560,"nodeType":"VariableDeclarationStatement","src":"2009:14:42"},{"body":{"id":11598,"nodeType":"Block","src":"2052:458:42","statements":[{"assignments":[11566],"declarations":[{"constant":false,"id":11566,"mutability":"mutable","name":"release","nameLocation":"2088:7:42","nodeType":"VariableDeclaration","scope":11598,"src":"2066:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11565,"nodeType":"UserDefinedTypeName","pathNode":{"id":11564,"name":"StakingRelease","nameLocations":["2066:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"2066:14:42"},"referencedDeclaration":16264,"src":"2066:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11571,"initialValue":{"baseExpression":{"expression":{"id":11567,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2103:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2098:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11570,"indexExpression":{"id":11569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2112:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2066:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11572,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2263:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2271:9:42","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":16260,"src":"2263:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":11574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2283:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2289:6:42","memberName":"number","nodeType":"MemberAccess","src":"2283:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2263:32:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11579,"nodeType":"IfStatement","src":"2259:76:42","trueBody":{"id":11578,"nodeType":"Block","src":"2297:38:42","statements":[{"id":11577,"nodeType":"Break","src":"2315:5:42"}]}},{"expression":{"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":11581,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2359:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2367:6:42","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":16263,"src":"2359:14:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2349:24:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11584,"nodeType":"ExpressionStatement","src":"2349:24:42"},{"expression":{"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2387:23:42","subExpression":{"baseExpression":{"expression":{"id":11585,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2394:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2394:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11588,"indexExpression":{"id":11587,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2408:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2394:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"2387:23:42"},{"id":11597,"nodeType":"UncheckedBlock","src":"2425:75:42","statements":[{"expression":{"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2453:3:42","subExpression":{"id":11591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2455:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11593,"nodeType":"ExpressionStatement","src":"2453:3:42"},{"expression":{"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2474:11:42","subExpression":{"id":11594,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2476:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11596,"nodeType":"ExpressionStatement","src":"2474:11:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2040:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11562,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"2044:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2040:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11599,"nodeType":"WhileStatement","src":"2033:477:42"},{"expression":{"id":11604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2520:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2525:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"2520:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2536:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2520:17:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11605,"nodeType":"ExpressionStatement","src":"2520:17:42"},{"expression":{"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11606,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2547:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2552:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"2547:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11609,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2561:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2547:23:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11611,"nodeType":"ExpressionStatement","src":"2547:23:42"},{"expression":{"components":[{"id":11612,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2589:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11613,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2597:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":11614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2588:19:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":11534,"id":11615,"nodeType":"Return","src":"2581:26:42"}]},"documentation":{"id":11525,"nodeType":"StructuredDocumentation","src":"1464:247:42","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1725:7:42","parameters":{"id":11529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11528,"mutability":"mutable","name":"self","nameLocation":"1764:4:42","nodeType":"VariableDeclaration","scope":11617,"src":"1733:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11527,"nodeType":"UserDefinedTypeName","pathNode":{"id":11526,"name":"AddressStakingReleases","nameLocations":["1733:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1733:22:42"},"referencedDeclaration":16274,"src":"1733:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1732:37:42"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1788:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1797:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11532,"name":"uint16","nodeType":"ElementaryTypeName","src":"1797:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1787:17:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11618],"name":"LibAddressStakingReleases","nameLocation":"989:25:42","scope":13522,"usedErrors":[]},{"id":11737,"nodeType":"ContractDefinition","src":"2665:1272:42","nodes":[{"id":11622,"nodeType":"UsingForDirective","src":"2702:34:42","nodes":[],"global":false,"libraryName":{"id":11620,"name":"Address","nameLocations":["2708:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"2708:7:42"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"2720:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11626,"nodeType":"UsingForDirective","src":"2741:59:42","nodes":[],"global":false,"libraryName":{"id":11623,"name":"LibAddressStakingReleases","nameLocations":["2747:25:42"],"nodeType":"IdentifierPath","referencedDeclaration":11618,"src":"2747:25:42"},"typeName":{"id":11625,"nodeType":"UserDefinedTypeName","pathNode":{"id":11624,"name":"AddressStakingReleases","nameLocations":["2777:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"2777:22:42"},"referencedDeclaration":16274,"src":"2777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":11634,"nodeType":"EventDefinition","src":"2806:84:42","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2812:20:42","parameters":{"id":11633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11628,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2841:9:42","nodeType":"VariableDeclaration","scope":11634,"src":"2833:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11627,"name":"address","nodeType":"ElementaryTypeName","src":"2833:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11630,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2860:6:42","nodeType":"VariableDeclaration","scope":11634,"src":"2852:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2852:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11632,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2876:12:42","nodeType":"VariableDeclaration","scope":11634,"src":"2868:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2868:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2832:57:42"}},{"id":11649,"nodeType":"FunctionDefinition","src":"2896:130:42","nodes":[],"body":{"id":11648,"nodeType":"Block","src":"2980:46:42","nodes":[],"statements":[{"expression":{"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"2990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2995:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"2990:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11645,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"3013:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11647,"nodeType":"ExpressionStatement","src":"2990:29:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2905:15:42","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11637,"mutability":"mutable","name":"self","nameLocation":"2949:4:42","nodeType":"VariableDeclaration","scope":11649,"src":"2921:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11636,"nodeType":"UserDefinedTypeName","pathNode":{"id":11635,"name":"StakingReleaseQueue","nameLocations":["2921:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2921:19:42"},"referencedDeclaration":16284,"src":"2921:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"blocks","nameLocation":"2963:6:42","nodeType":"VariableDeclaration","scope":11649,"src":"2955:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2920:50:42"},"returnParameters":{"id":11641,"nodeType":"ParameterList","parameters":[],"src":"2980:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11692,"nodeType":"FunctionDefinition","src":"3095:419:42","nodes":[],"body":{"id":11691,"nodeType":"Block","src":"3196:318:42","nodes":[],"statements":[{"assignments":[11661],"declarations":[{"constant":false,"id":11661,"mutability":"mutable","name":"releaseAt","nameLocation":"3214:9:42","nodeType":"VariableDeclaration","scope":11691,"src":"3206:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3206:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11667,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11662,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3226:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3232:6:42","memberName":"number","nodeType":"MemberAccess","src":"3226:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3241:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3246:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"3241:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3206:55:42"},{"assignments":[11670],"declarations":[{"constant":false,"id":11670,"mutability":"mutable","name":"release","nameLocation":"3293:7:42","nodeType":"VariableDeclaration","scope":11691,"src":"3271:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11669,"nodeType":"UserDefinedTypeName","pathNode":{"id":11668,"name":"StakingRelease","nameLocations":["3271:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"3271:14:42"},"referencedDeclaration":16264,"src":"3271:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11675,"initialValue":{"arguments":[{"id":11672,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3330:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11673,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11671,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"3303:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$16264_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3319:9:42","3341:6:42"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3303:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3271:86:42"},{"expression":{"arguments":[{"id":11682,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"3398:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":11676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3368:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11680,"indexExpression":{"id":11678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3382:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3368:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3393:4:42","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":11524,"src":"3368:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$_t_struct$_StakingRelease_$16264_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"3368:38:42"},{"eventCall":{"arguments":[{"id":11686,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3455:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3474:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11688,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3496:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11685,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11634,"src":"3422:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3444:9:42","3466:6:42","3482:12:42"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3422:85:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11690,"nodeType":"EmitStatement","src":"3417:90:42"}]},"documentation":{"id":11650,"nodeType":"StructuredDocumentation","src":"3032:58:42","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3104:13:42","parameters":{"id":11658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11653,"mutability":"mutable","name":"self","nameLocation":"3146:4:42","nodeType":"VariableDeclaration","scope":11692,"src":"3118:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11652,"nodeType":"UserDefinedTypeName","pathNode":{"id":11651,"name":"StakingReleaseQueue","nameLocations":["3118:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3118:19:42"},"referencedDeclaration":16284,"src":"3118:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11655,"mutability":"mutable","name":"validator","nameLocation":"3160:9:42","nodeType":"VariableDeclaration","scope":11692,"src":"3152:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11654,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11657,"mutability":"mutable","name":"amount","nameLocation":"3179:6:42","nodeType":"VariableDeclaration","scope":11692,"src":"3171:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11656,"name":"uint256","nodeType":"ElementaryTypeName","src":"3171:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3117:69:42"},"returnParameters":{"id":11659,"nodeType":"ParameterList","parameters":[],"src":"3196:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11736,"nodeType":"FunctionDefinition","src":"3595:340:42","nodes":[],"body":{"id":11735,"nodeType":"Block","src":"3690:245:42","nodes":[],"statements":[{"assignments":[11704,11706],"declarations":[{"constant":false,"id":11704,"mutability":"mutable","name":"amount","nameLocation":"3709:6:42","nodeType":"VariableDeclaration","scope":11735,"src":"3701:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11703,"name":"uint256","nodeType":"ElementaryTypeName","src":"3701:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"newLength","nameLocation":"3724:9:42","nodeType":"VariableDeclaration","scope":11735,"src":"3717:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11705,"name":"uint16","nodeType":"ElementaryTypeName","src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11713,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":11707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3737:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3737:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11710,"indexExpression":{"id":11709,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3751:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3762:7:42","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":11617,"src":"3737:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3700:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11714,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"3786:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3799:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3786:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11724,"nodeType":"IfStatement","src":"3782:76:42","trueBody":{"id":11723,"nodeType":"Block","src":"3802:56:42","statements":[{"expression":{"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3816:31:42","subExpression":{"baseExpression":{"expression":{"id":11717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3823:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3828:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3823:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11720,"indexExpression":{"id":11719,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3837:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3823:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11722,"nodeType":"ExpressionStatement","src":"3816:31:42"}]}},{"expression":{"arguments":[{"id":11730,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3897:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11727,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3876:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11725,"name":"address","nodeType":"ElementaryTypeName","src":"3868:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"3868:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11732,"nodeType":"ExpressionStatement","src":"3868:36:42"},{"expression":{"id":11733,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3922:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11702,"id":11734,"nodeType":"Return","src":"3915:13:42"}]},"documentation":{"id":11693,"nodeType":"StructuredDocumentation","src":"3520:70:42","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3604:5:42","parameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"self","nameLocation":"3638:4:42","nodeType":"VariableDeclaration","scope":11736,"src":"3610:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11695,"nodeType":"UserDefinedTypeName","pathNode":{"id":11694,"name":"StakingReleaseQueue","nameLocations":["3610:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3610:19:42"},"referencedDeclaration":16284,"src":"3610:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11698,"mutability":"mutable","name":"validator","nameLocation":"3652:9:42","nodeType":"VariableDeclaration","scope":11736,"src":"3644:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11697,"name":"address","nodeType":"ElementaryTypeName","src":"3644:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3609:53:42"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11736,"src":"3681:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3681:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3680:9:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":11619,"nodeType":"StructuredDocumentation","src":"2618:47:42","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[11737],"name":"LibStakingReleaseQueue","nameLocation":"2673:22:42","scope":13522,"usedErrors":[]},{"id":12589,"nodeType":"ContractDefinition","src":"3979:9952:42","nodes":[{"id":11742,"nodeType":"UsingForDirective","src":"4009:25:42","nodes":[],"global":false,"libraryName":{"id":11739,"name":"LibMinPQ","nameLocations":["4015:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"4015:8:42"},"typeName":{"id":11741,"nodeType":"UserDefinedTypeName","pathNode":{"id":11740,"name":"MinPQ","nameLocations":["4028:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4028:5:42"},"referencedDeclaration":15261,"src":"4028:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":11746,"nodeType":"UsingForDirective","src":"4039:25:42","nodes":[],"global":false,"libraryName":{"id":11743,"name":"LibMaxPQ","nameLocations":["4045:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"4045:8:42"},"typeName":{"id":11745,"nodeType":"UserDefinedTypeName","pathNode":{"id":11744,"name":"MaxPQ","nameLocations":["4058:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4058:5:42"},"referencedDeclaration":14643,"src":"4058:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":11752,"nodeType":"EventDefinition","src":"4070:81:42","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"4076:32:42","parameters":{"id":11751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11748,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4117:9:42","nodeType":"VariableDeclaration","scope":11752,"src":"4109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11747,"name":"address","nodeType":"ElementaryTypeName","src":"4109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11750,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4136:13:42","nodeType":"VariableDeclaration","scope":11752,"src":"4128:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4108:42:42"}},{"id":11758,"nodeType":"EventDefinition","src":"4156:82:42","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4162:33:42","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11754,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4204:9:42","nodeType":"VariableDeclaration","scope":11758,"src":"4196:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11753,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11756,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4223:13:42","nodeType":"VariableDeclaration","scope":11758,"src":"4215:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4195:42:42"}},{"id":11764,"nodeType":"EventDefinition","src":"4243:64:42","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4249:18:42","parameters":{"id":11763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11760,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4276:9:42","nodeType":"VariableDeclaration","scope":11764,"src":"4268:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11759,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11762,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4295:10:42","nodeType":"VariableDeclaration","scope":11764,"src":"4287:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4267:39:42"}},{"id":11770,"nodeType":"EventDefinition","src":"4312:65:42","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4318:19:42","parameters":{"id":11769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11766,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4346:9:42","nodeType":"VariableDeclaration","scope":11770,"src":"4338:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11765,"name":"address","nodeType":"ElementaryTypeName","src":"4338:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11768,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4365:10:42","nodeType":"VariableDeclaration","scope":11770,"src":"4357:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11767,"name":"uint256","nodeType":"ElementaryTypeName","src":"4357:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4337:39:42"}},{"id":11776,"nodeType":"EventDefinition","src":"4382:74:42","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4388:23:42","parameters":{"id":11775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11772,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4420:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4412:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11771,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11774,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4442:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4434:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11773,"name":"address","nodeType":"ElementaryTypeName","src":"4434:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4411:44:42"}},{"id":11780,"nodeType":"EventDefinition","src":"4461:45:42","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4467:19:42","parameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4495:9:42","nodeType":"VariableDeclaration","scope":11780,"src":"4487:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11777,"name":"address","nodeType":"ElementaryTypeName","src":"4487:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4486:19:42"}},{"id":11784,"nodeType":"EventDefinition","src":"4511:46:42","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4517:20:42","parameters":{"id":11783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4546:9:42","nodeType":"VariableDeclaration","scope":11784,"src":"4538:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11781,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4537:19:42"}},{"id":11799,"nodeType":"FunctionDefinition","src":"4633:178:42","nodes":[],"body":{"id":11798,"nodeType":"Block","src":"4746:65:42","nodes":[],"statements":[{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11793,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11791,"src":"4756:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11794,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"4769:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4780:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"4769:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4756:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"4756:48:42"}]},"documentation":{"id":11785,"nodeType":"StructuredDocumentation","src":"4563:65:42","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4642:27:42","parameters":{"id":11789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11788,"mutability":"mutable","name":"validators","nameLocation":"4691:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4670:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11787,"nodeType":"UserDefinedTypeName","pathNode":{"id":11786,"name":"ValidatorSet","nameLocations":["4670:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4670:12:42"},"referencedDeclaration":16313,"src":"4670:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4669:33:42"},"returnParameters":{"id":11792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11791,"mutability":"mutable","name":"collateral","nameLocation":"4734:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4726:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11790,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4725:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11816,"nodeType":"FunctionDefinition","src":"4866:163:42","nodes":[],"body":{"id":11815,"nodeType":"Block","src":"4967:62:42","nodes":[],"statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11808,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11806,"src":"4977:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11809,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"4985:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4996:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"4985:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5013:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"4985:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4985:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4977:45:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11814,"nodeType":"ExpressionStatement","src":"4977:45:42"}]},"documentation":{"id":11800,"nodeType":"StructuredDocumentation","src":"4817:44:42","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"4875:21:42","parameters":{"id":11804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"validators","nameLocation":"4918:10:42","nodeType":"VariableDeclaration","scope":11816,"src":"4897:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11802,"nodeType":"UserDefinedTypeName","pathNode":{"id":11801,"name":"ValidatorSet","nameLocations":["4897:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4897:12:42"},"referencedDeclaration":16313,"src":"4897:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4896:33:42"},"returnParameters":{"id":11807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11806,"mutability":"mutable","name":"total","nameLocation":"4960:5:42","nodeType":"VariableDeclaration","scope":11816,"src":"4953:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11805,"name":"uint16","nodeType":"ElementaryTypeName","src":"4953:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4952:14:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11836,"nodeType":"FunctionDefinition","src":"5098:231:42","nodes":[],"body":{"id":11835,"nodeType":"Block","src":"5247:82:42","nodes":[],"statements":[{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11825,"src":"5257:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"5270:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5281:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"5270:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11831,"indexExpression":{"id":11830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5292:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5270:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"5270:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5257:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11834,"nodeType":"ExpressionStatement","src":"5257:65:42"}]},"documentation":{"id":11817,"nodeType":"StructuredDocumentation","src":"5035:58:42","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5107:22:42","parameters":{"id":11823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11820,"mutability":"mutable","name":"validators","nameLocation":"5160:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5139:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11819,"nodeType":"UserDefinedTypeName","pathNode":{"id":11818,"name":"ValidatorSet","nameLocations":["5139:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5139:12:42"},"referencedDeclaration":16313,"src":"5139:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"validator","nameLocation":"5188:9:42","nodeType":"VariableDeclaration","scope":11836,"src":"5180:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5129:74:42"},"returnParameters":{"id":11826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11825,"mutability":"mutable","name":"collateral","nameLocation":"5235:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5227:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5227:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5226:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11888,"nodeType":"FunctionDefinition","src":"5335:434:42","nodes":[],"body":{"id":11887,"nodeType":"Block","src":"5449:320:42","nodes":[],"statements":[{"assignments":[11846],"declarations":[{"constant":false,"id":11846,"mutability":"mutable","name":"size","nameLocation":"5466:4:42","nodeType":"VariableDeclaration","scope":11887,"src":"5459:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11845,"name":"uint16","nodeType":"ElementaryTypeName","src":"5459:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11847,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5473:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5484:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5473:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5501:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5473:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5473:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5459:51:42"},{"expression":{"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11852,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5520:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5546:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":11855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5532:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":11853,"name":"address","nodeType":"ElementaryTypeName","src":"5536:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11854,"nodeType":"ArrayTypeName","src":"5536:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5520:31:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11859,"nodeType":"ExpressionStatement","src":"5520:31:42"},{"body":{"id":11883,"nodeType":"Block","src":"5593:144:42","statements":[{"expression":{"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11867,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5607:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11871,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5617:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5621:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5617:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5607:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5665:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5626:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5637:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5626:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5654:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"5626:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5607:60:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11878,"nodeType":"ExpressionStatement","src":"5607:60:42"},{"id":11882,"nodeType":"UncheckedBlock","src":"5681:46:42","statements":[{"expression":{"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5709:3:42","subExpression":{"id":11879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5711:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11881,"nodeType":"ExpressionStatement","src":"5709:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5580:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11865,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5585:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5580:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11884,"initializationExpression":{"assignments":[11861],"declarations":[{"constant":false,"id":11861,"mutability":"mutable","name":"i","nameLocation":"5573:1:42","nodeType":"VariableDeclaration","scope":11884,"src":"5566:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5566:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11863,"initialValue":{"hexValue":"31","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5577:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5566:12:42"},"nodeType":"ForStatement","src":"5561:176:42"},{"expression":{"id":11885,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5753:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11844,"id":11886,"nodeType":"Return","src":"5746:16:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5344:20:42","parameters":{"id":11840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11839,"mutability":"mutable","name":"validators","nameLocation":"5386:10:42","nodeType":"VariableDeclaration","scope":11888,"src":"5365:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11838,"nodeType":"UserDefinedTypeName","pathNode":{"id":11837,"name":"ValidatorSet","nameLocations":["5365:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5365:12:42"},"referencedDeclaration":16313,"src":"5365:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5364:33:42"},"returnParameters":{"id":11844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11843,"mutability":"mutable","name":"addresses","nameLocation":"5438:9:42","nodeType":"VariableDeclaration","scope":11888,"src":"5421:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11841,"name":"address","nodeType":"ElementaryTypeName","src":"5421:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11842,"nodeType":"ArrayTypeName","src":"5421:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5420:28:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11933,"nodeType":"FunctionDefinition","src":"5840:432:42","nodes":[],"body":{"id":11932,"nodeType":"Block","src":"5945:327:42","nodes":[],"statements":[{"assignments":[11898],"declarations":[{"constant":false,"id":11898,"mutability":"mutable","name":"size","nameLocation":"5962:4:42","nodeType":"VariableDeclaration","scope":11932,"src":"5955:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11897,"name":"uint16","nodeType":"ElementaryTypeName","src":"5955:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11899,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"5969:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5969:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5969:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5955:51:42"},{"body":{"id":11930,"nodeType":"Block","src":"6048:218:42","statements":[{"assignments":[11912],"declarations":[{"constant":false,"id":11912,"mutability":"mutable","name":"validator","nameLocation":"6070:9:42","nodeType":"VariableDeclaration","scope":11930,"src":"6062:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11911,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11918,"initialValue":{"arguments":[{"id":11916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6121:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6082:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6093:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"6082:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6110:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"6082:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6062:61:42"},{"expression":{"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11919,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"6137:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":11921,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6174:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":11922,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"6186:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11920,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"6151:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6151:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:59:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11925,"nodeType":"ExpressionStatement","src":"6137:59:42"},{"id":11929,"nodeType":"UncheckedBlock","src":"6210:46:42","statements":[{"expression":{"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6238:3:42","subExpression":{"id":11926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6240:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11928,"nodeType":"ExpressionStatement","src":"6238:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6035:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11909,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"6040:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6035:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11931,"initializationExpression":{"assignments":[11905],"declarations":[{"constant":false,"id":11905,"mutability":"mutable","name":"i","nameLocation":"6028:1:42","nodeType":"VariableDeclaration","scope":11931,"src":"6021:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11904,"name":"uint16","nodeType":"ElementaryTypeName","src":"6021:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11907,"initialValue":{"hexValue":"31","id":11906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6032:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6021:12:42"},"nodeType":"ForStatement","src":"6016:250:42"}]},"documentation":{"id":11889,"nodeType":"StructuredDocumentation","src":"5775:60:42","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getActiveCollateral","nameLocation":"5849:19:42","parameters":{"id":11893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11892,"mutability":"mutable","name":"validators","nameLocation":"5890:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5869:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11891,"nodeType":"UserDefinedTypeName","pathNode":{"id":11890,"name":"ValidatorSet","nameLocations":["5869:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5869:12:42"},"referencedDeclaration":16313,"src":"5869:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5868:33:42"},"returnParameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"collateral","nameLocation":"5933:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5925:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5924:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12004,"nodeType":"FunctionDefinition","src":"6434:634:42","nodes":[],"body":{"id":12003,"nodeType":"Block","src":"6591:477:42","nodes":[],"statements":[{"assignments":[11947],"declarations":[{"constant":false,"id":11947,"mutability":"mutable","name":"size","nameLocation":"6609:4:42","nodeType":"VariableDeclaration","scope":12003,"src":"6601:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11950,"initialValue":{"expression":{"id":11948,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6616:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6626:6:42","memberName":"length","nodeType":"MemberAccess","src":"6616:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6601:31:42"},{"assignments":[11955],"declarations":[{"constant":false,"id":11955,"mutability":"mutable","name":"activeCollaterals","nameLocation":"6659:17:42","nodeType":"VariableDeclaration","scope":12003,"src":"6642:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11954,"nodeType":"ArrayTypeName","src":"6642:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11961,"initialValue":{"arguments":[{"id":11959,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6693:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6679:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6683:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11957,"nodeType":"ArrayTypeName","src":"6683:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6642:56:42"},{"body":{"id":11999,"nodeType":"Block","src":"6737:291:42","statements":[{"condition":{"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6755:44:42","subExpression":{"arguments":[{"id":11969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6774:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":11970,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6786:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11972,"indexExpression":{"id":11971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6796:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6786:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11968,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"6756:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6756:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11982,"nodeType":"IfStatement","src":"6751:116:42","trueBody":{"id":11981,"nodeType":"Block","src":"6801:66:42","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":11976,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6839:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11978,"indexExpression":{"id":11977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6849:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6839:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11975,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"6826:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11980,"nodeType":"RevertStatement","src":"6819:33:42"}]}},{"expression":{"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11983,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"6880:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11985,"indexExpression":{"id":11984,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6898:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6880:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11986,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6903:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6914:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"6903:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11991,"indexExpression":{"baseExpression":{"id":11988,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6925:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11990,"indexExpression":{"id":11989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6935:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6925:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6903:35:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6939:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"6903:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:78:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11994,"nodeType":"ExpressionStatement","src":"6880:78:42"},{"id":11998,"nodeType":"UncheckedBlock","src":"6972:46:42","statements":[{"expression":{"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7000:3:42","subExpression":{"id":11995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"7002:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11997,"nodeType":"ExpressionStatement","src":"7000:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6725:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11966,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6729:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6725:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12000,"initializationExpression":{"assignments":[11963],"declarations":[{"constant":false,"id":11963,"mutability":"mutable","name":"i","nameLocation":"6722:1:42","nodeType":"VariableDeclaration","scope":12000,"src":"6714:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11964,"nodeType":"VariableDeclarationStatement","src":"6714:9:42"},"nodeType":"ForStatement","src":"6709:319:42"},{"expression":{"id":12001,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"7044:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11945,"id":12002,"nodeType":"Return","src":"7037:24:42"}]},"documentation":{"id":11934,"nodeType":"StructuredDocumentation","src":"6278:151:42","text":"@notice Get the confirmed collaterals of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollaterals","nameLocation":"6443:23:42","parameters":{"id":11941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11937,"mutability":"mutable","name":"validators","nameLocation":"6497:10:42","nodeType":"VariableDeclaration","scope":12004,"src":"6476:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11936,"nodeType":"UserDefinedTypeName","pathNode":{"id":11935,"name":"ValidatorSet","nameLocations":["6476:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6476:12:42"},"referencedDeclaration":16313,"src":"6476:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11940,"mutability":"mutable","name":"addresses","nameLocation":"6534:9:42","nodeType":"VariableDeclaration","scope":12004,"src":"6517:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"6517:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11939,"nodeType":"ArrayTypeName","src":"6517:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6466:83:42"},"returnParameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12004,"src":"6573:16:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6573:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11943,"nodeType":"ArrayTypeName","src":"6573:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6572:18:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12021,"nodeType":"FunctionDefinition","src":"7074:167:42","nodes":[],"body":{"id":12020,"nodeType":"Block","src":"7176:65:42","nodes":[],"statements":[{"expression":{"arguments":[{"id":12017,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"7224:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"7193:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7198:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"7193:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"7193:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7193:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12013,"id":12019,"nodeType":"Return","src":"7186:48:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7083:17:42","parameters":{"id":12010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12007,"mutability":"mutable","name":"self","nameLocation":"7122:4:42","nodeType":"VariableDeclaration","scope":12021,"src":"7101:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12006,"nodeType":"UserDefinedTypeName","pathNode":{"id":12005,"name":"ValidatorSet","nameLocations":["7101:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7101:12:42"},"referencedDeclaration":16313,"src":"7101:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12009,"mutability":"mutable","name":"validator","nameLocation":"7136:9:42","nodeType":"VariableDeclaration","scope":12021,"src":"7128:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12008,"name":"address","nodeType":"ElementaryTypeName","src":"7128:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7100:46:42"},"returnParameters":{"id":12013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12021,"src":"7170:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12011,"name":"bool","nodeType":"ElementaryTypeName","src":"7170:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7169:6:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12042,"nodeType":"FunctionDefinition","src":"7282:176:42","nodes":[],"body":{"id":12041,"nodeType":"Block","src":"7389:69:42","nodes":[],"statements":[{"expression":{"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12032,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"7399:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7410:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7399:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12036,"indexExpression":{"id":12034,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12027,"src":"7421:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7399:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7432:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"7399:41:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"7443:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7399:52:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":12040,"nodeType":"ExpressionStatement","src":"7399:52:42"}]},"documentation":{"id":12022,"nodeType":"StructuredDocumentation","src":"7247:30:42","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"7291:11:42","parameters":{"id":12030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12025,"mutability":"mutable","name":"validators","nameLocation":"7324:10:42","nodeType":"VariableDeclaration","scope":12042,"src":"7303:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12024,"nodeType":"UserDefinedTypeName","pathNode":{"id":12023,"name":"ValidatorSet","nameLocations":["7303:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7303:12:42"},"referencedDeclaration":16313,"src":"7303:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12027,"mutability":"mutable","name":"validator","nameLocation":"7344:9:42","nodeType":"VariableDeclaration","scope":12042,"src":"7336:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12026,"name":"address","nodeType":"ElementaryTypeName","src":"7336:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12029,"mutability":"mutable","name":"metadata","nameLocation":"7370:8:42","nodeType":"VariableDeclaration","scope":12042,"src":"7355:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12028,"name":"bytes","nodeType":"ElementaryTypeName","src":"7355:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7302:77:42"},"returnParameters":{"id":12031,"nodeType":"ParameterList","parameters":[],"src":"7389:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12063,"nodeType":"FunctionDefinition","src":"7765:175:42","nodes":[],"body":{"id":12062,"nodeType":"Block","src":"7865:75:42","nodes":[],"statements":[{"expression":{"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12053,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"7875:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7886:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7875:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12057,"indexExpression":{"id":12055,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12048,"src":"7897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7875:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7908:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"7875:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"7927:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7875:58:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12061,"nodeType":"ExpressionStatement","src":"7875:58:42"}]},"documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"7697:63:42","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"7774:13:42","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12046,"mutability":"mutable","name":"validators","nameLocation":"7809:10:42","nodeType":"VariableDeclaration","scope":12063,"src":"7788:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"ValidatorSet","nameLocations":["7788:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7788:12:42"},"referencedDeclaration":16313,"src":"7788:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12048,"mutability":"mutable","name":"validator","nameLocation":"7829:9:42","nodeType":"VariableDeclaration","scope":12063,"src":"7821:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"7821:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12050,"mutability":"mutable","name":"amount","nameLocation":"7848:6:42","nodeType":"VariableDeclaration","scope":12063,"src":"7840:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12049,"name":"uint256","nodeType":"ElementaryTypeName","src":"7840:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7787:68:42"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"7865:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12104,"nodeType":"FunctionDefinition","src":"8012:364:42","nodes":[],"body":{"id":12103,"nodeType":"Block","src":"8113:263:42","nodes":[],"statements":[{"assignments":[12075],"declarations":[{"constant":false,"id":12075,"mutability":"mutable","name":"total","nameLocation":"8131:5:42","nodeType":"VariableDeclaration","scope":12103,"src":"8123:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12074,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12081,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12076,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8139:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8150:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8139:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12079,"indexExpression":{"id":12078,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8139:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8172:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8139:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8123:64:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12082,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8201:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12083,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8209:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12089,"nodeType":"IfStatement","src":"8197:81:42","trueBody":{"id":12088,"nodeType":"Block","src":"8217:61:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12085,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"8238:27:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8238:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12087,"nodeType":"RevertStatement","src":"8231:36:42"}]}},{"expression":{"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12090,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8288:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12091,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8297:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8288:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12093,"nodeType":"ExpressionStatement","src":"8288:15:42"},{"expression":{"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12094,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8313:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8313:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12098,"indexExpression":{"id":12096,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8335:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8346:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8313:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12100,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8364:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8313:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"8313:56:42"}]},"documentation":{"id":12064,"nodeType":"StructuredDocumentation","src":"7946:61:42","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8021:14:42","parameters":{"id":12072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12067,"mutability":"mutable","name":"validators","nameLocation":"8057:10:42","nodeType":"VariableDeclaration","scope":12104,"src":"8036:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12066,"nodeType":"UserDefinedTypeName","pathNode":{"id":12065,"name":"ValidatorSet","nameLocations":["8036:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8036:12:42"},"referencedDeclaration":16313,"src":"8036:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12069,"mutability":"mutable","name":"validator","nameLocation":"8077:9:42","nodeType":"VariableDeclaration","scope":12104,"src":"8069:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"8069:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12071,"mutability":"mutable","name":"amount","nameLocation":"8096:6:42","nodeType":"VariableDeclaration","scope":12104,"src":"8088:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12070,"name":"uint256","nodeType":"ElementaryTypeName","src":"8088:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8035:68:42"},"returnParameters":{"id":12073,"nodeType":"ParameterList","parameters":[],"src":"8113:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12146,"nodeType":"FunctionDefinition","src":"8382:408:42","nodes":[],"body":{"id":12145,"nodeType":"Block","src":"8477:313:42","nodes":[],"statements":[{"assignments":[12115],"declarations":[{"constant":false,"id":12115,"mutability":"mutable","name":"newCollateral","nameLocation":"8495:13:42","nodeType":"VariableDeclaration","scope":12145,"src":"8487:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8511:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8516:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8511:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12119,"indexExpression":{"id":12118,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8527:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8538:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8511:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8560:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8487:79:42"},{"expression":{"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8576:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8581:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8576:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12128,"indexExpression":{"id":12126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8592:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8576:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8603:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8576:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12130,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8625:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8576:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12132,"nodeType":"ExpressionStatement","src":"8576:62:42"},{"expression":{"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8649:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8654:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"8649:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8682:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8649:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12138,"nodeType":"ExpressionStatement","src":"8649:39:42"},{"expression":{"arguments":[{"id":12140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8723:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12141,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8742:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12142,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8768:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12139,"name":"depositReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"8699:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8717:4:42","8729:11:42","8753:13:42"],"names":["self","maybeActive","newCollateral"],"nodeType":"FunctionCall","src":"8699:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"8699:84:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"8391:14:42","parameters":{"id":12112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12107,"mutability":"mutable","name":"self","nameLocation":"8427:4:42","nodeType":"VariableDeclaration","scope":12146,"src":"8406:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12106,"nodeType":"UserDefinedTypeName","pathNode":{"id":12105,"name":"ValidatorSet","nameLocations":["8406:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8406:12:42"},"referencedDeclaration":16313,"src":"8406:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12109,"mutability":"mutable","name":"validator","nameLocation":"8441:9:42","nodeType":"VariableDeclaration","scope":12146,"src":"8433:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12108,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12111,"mutability":"mutable","name":"amount","nameLocation":"8460:6:42","nodeType":"VariableDeclaration","scope":12146,"src":"8452:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12110,"name":"uint256","nodeType":"ElementaryTypeName","src":"8452:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8405:62:42"},"returnParameters":{"id":12113,"nodeType":"ParameterList","parameters":[],"src":"8477:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12212,"nodeType":"FunctionDefinition","src":"8796:623:42","nodes":[],"body":{"id":12211,"nodeType":"Block","src":"8892:527:42","nodes":[],"statements":[{"assignments":[12157],"declarations":[{"constant":false,"id":12157,"mutability":"mutable","name":"newCollateral","nameLocation":"8910:13:42","nodeType":"VariableDeclaration","scope":12211,"src":"8902:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12156,"name":"uint256","nodeType":"ElementaryTypeName","src":"8902:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"8926:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8931:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8926:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12161,"indexExpression":{"id":12160,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"8942:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8926:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8953:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8926:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12163,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"8975:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8926:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8902:79:42"},{"assignments":[12167],"declarations":[{"constant":false,"id":12167,"mutability":"mutable","name":"totalCollateral","nameLocation":"8999:15:42","nodeType":"VariableDeclaration","scope":12211,"src":"8991:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12166,"name":"uint256","nodeType":"ElementaryTypeName","src":"8991:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12173,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9017:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9022:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9017:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12171,"indexExpression":{"id":12170,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9033:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9017:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9044:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"9017:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8991:68:42"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12174,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9074:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12177,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"9096:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9096:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9074:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12197,"nodeType":"Block","src":"9182:87:42","statements":[{"expression":{"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9196:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9201:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9196:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12192,"indexExpression":{"id":12190,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9212:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9223:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"9196:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12194,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9245:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12196,"nodeType":"ExpressionStatement","src":"9196:62:42"}]},"id":12198,"nodeType":"IfStatement","src":"9070:199:42","trueBody":{"id":12187,"nodeType":"Block","src":"9118:58:42","statements":[{"expression":{"id":12185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9132:33:42","subExpression":{"baseExpression":{"expression":{"id":12181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9139:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9144:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9139:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12184,"indexExpression":{"id":12183,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9155:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9139:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12186,"nodeType":"ExpressionStatement","src":"9132:33:42"}]}},{"expression":{"arguments":[{"id":12200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9304:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12201,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9321:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12202,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9347:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12199,"name":"withdrawReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12588,"src":"9279:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9298:4:42","9310:9:42","9332:13:42"],"names":["self","validator","newCollateral"],"nodeType":"FunctionCall","src":"9279:83:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12204,"nodeType":"ExpressionStatement","src":"9279:83:42"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9373:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9378:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"9373:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"9406:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9373:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12210,"nodeType":"ExpressionStatement","src":"9373:39:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"8805:15:42","parameters":{"id":12154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"mutability":"mutable","name":"self","nameLocation":"8842:4:42","nodeType":"VariableDeclaration","scope":12212,"src":"8821:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12148,"nodeType":"UserDefinedTypeName","pathNode":{"id":12147,"name":"ValidatorSet","nameLocations":["8821:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8821:12:42"},"referencedDeclaration":16313,"src":"8821:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12151,"mutability":"mutable","name":"validator","nameLocation":"8856:9:42","nodeType":"VariableDeclaration","scope":12212,"src":"8848:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12150,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12153,"mutability":"mutable","name":"amount","nameLocation":"8875:6:42","nodeType":"VariableDeclaration","scope":12212,"src":"8867:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:62:42"},"returnParameters":{"id":12155,"nodeType":"ParameterList","parameters":[],"src":"8892:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12377,"nodeType":"FunctionDefinition","src":"9514:2248:42","nodes":[],"body":{"id":12376,"nodeType":"Block","src":"9620:2142:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12226,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9665:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12223,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"9634:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12244,"nodeType":"IfStatement","src":"9630:231:42","trueBody":{"id":12243,"nodeType":"Block","src":"9679:182:42","statements":[{"expression":{"arguments":[{"id":12233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9733:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12234,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9739:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9693:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9693:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9715:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15574,"src":"9693:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"9693:58:42"},{"eventCall":{"arguments":[{"id":12238,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9803:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12239,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"9816:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12237,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"9770:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9770:60:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12241,"nodeType":"EmitStatement","src":"9765:65:42"},{"functionReturnParameters":12222,"id":12242,"nodeType":"Return","src":"9844:7:42"}]}},{"assignments":[12246],"declarations":[{"constant":false,"id":12246,"mutability":"mutable","name":"activeLimit","nameLocation":"9930:11:42","nodeType":"VariableDeclaration","scope":12376,"src":"9923:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12245,"name":"uint16","nodeType":"ElementaryTypeName","src":"9923:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12249,"initialValue":{"expression":{"id":12247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9944:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:11:42","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"9944:16:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9923:37:42"},{"assignments":[12251],"declarations":[{"constant":false,"id":12251,"mutability":"mutable","name":"activeSize","nameLocation":"9977:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"9970:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12250,"name":"uint16","nodeType":"ElementaryTypeName","src":"9970:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9995:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9990:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10012:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"9990:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9970:51:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12257,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"10035:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12258,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12251,"src":"10049:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10035:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12276,"nodeType":"IfStatement","src":"10031:267:42","trueBody":{"id":12275,"nodeType":"Block","src":"10061:237:42","statements":[{"expression":{"arguments":[{"id":12265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12266,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10190:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10155:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10160:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10155:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10177:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"10155:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10155:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12268,"nodeType":"ExpressionStatement","src":"10155:47:42"},{"eventCall":{"arguments":[{"id":12270,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10240:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12271,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10253:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12269,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"10221:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12273,"nodeType":"EmitStatement","src":"10216:51:42"},{"functionReturnParameters":12222,"id":12274,"nodeType":"Return","src":"10281:7:42"}]}},{"assignments":[12278,12280],"declarations":[{"constant":false,"id":12278,"mutability":"mutable","name":"minAddress","nameLocation":"10845:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"10837:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12277,"name":"address","nodeType":"ElementaryTypeName","src":"10837:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12280,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"10865:19:42","nodeType":"VariableDeclaration","scope":12376,"src":"10857:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12279,"name":"uint256","nodeType":"ElementaryTypeName","src":"10857:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12286,"initialValue":{"arguments":[{"id":12284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10914:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10888:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10888:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10910:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"10888:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10888:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10836:83:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12287,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"10933:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12288,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10955:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10933:35:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12339,"nodeType":"IfStatement","src":"10929:462:42","trueBody":{"id":12338,"nodeType":"Block","src":"10970:421:42","statements":[{"expression":{"arguments":[{"id":12295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11010:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10984:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10989:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10984:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11006:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"10984:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10984:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12297,"nodeType":"ExpressionStatement","src":"10984:31:42"},{"condition":{"arguments":[{"id":12301,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11066:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12298,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11034:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11039:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11034:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11057:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11034:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11034:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12313,"nodeType":"IfStatement","src":"11030:140:42","trueBody":{"id":12312,"nodeType":"Block","src":"11080:90:42","statements":[{"expression":{"arguments":[{"id":12308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12309,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11143:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11103:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11098:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11121:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"11098:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11098:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12311,"nodeType":"ExpressionStatement","src":"11098:57:42"}]}},{"expression":{"arguments":[{"id":12319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11213:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12320,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11219:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12314,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11189:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"11184:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"11184:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12322,"nodeType":"ExpressionStatement","src":"11184:47:42"},{"expression":{"arguments":[{"id":12328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11275:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12329,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11281:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11245:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11250:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11245:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11268:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11245:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11245:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12331,"nodeType":"ExpressionStatement","src":"11245:47:42"},{"eventCall":{"arguments":[{"id":12333,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11336:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12334,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11348:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12332,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"11312:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11312:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12336,"nodeType":"EmitStatement","src":"11307:53:42"},{"functionReturnParameters":12222,"id":12337,"nodeType":"Return","src":"11374:7:42"}]}},{"condition":{"arguments":[{"id":12343,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11437:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12340,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11405:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11410:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11405:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11428:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11405:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11405:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12361,"nodeType":"IfStatement","src":"11401:234:42","trueBody":{"id":12360,"nodeType":"Block","src":"11451:184:42","statements":[{"expression":{"arguments":[{"id":12350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11506:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12351,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11512:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11465:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11470:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11465:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11488:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"11465:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11465:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12353,"nodeType":"ExpressionStatement","src":"11465:59:42"},{"eventCall":{"arguments":[{"id":12355,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11577:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12356,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11590:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12354,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"11543:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:61:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12358,"nodeType":"EmitStatement","src":"11538:66:42"},{"functionReturnParameters":12222,"id":12359,"nodeType":"Return","src":"11618:7:42"}]}},{"expression":{"arguments":[{"id":12367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11675:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12368,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11681:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12362,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11645:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11650:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11645:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11668:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11645:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11645:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12370,"nodeType":"ExpressionStatement","src":"11645:48:42"},{"eventCall":{"arguments":[{"id":12372,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11728:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12373,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11741:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12371,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"11708:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11708:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12375,"nodeType":"EmitStatement","src":"11703:52:42"}]},"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"9425:84:42","text":"@notice Reshuffles the active and waiting validators when a deposit is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"depositReshuffle","nameLocation":"9523:16:42","parameters":{"id":12221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12216,"mutability":"mutable","name":"self","nameLocation":"9561:4:42","nodeType":"VariableDeclaration","scope":12377,"src":"9540:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12215,"nodeType":"UserDefinedTypeName","pathNode":{"id":12214,"name":"ValidatorSet","nameLocations":["9540:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"9540:12:42"},"referencedDeclaration":16313,"src":"9540:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12218,"mutability":"mutable","name":"maybeActive","nameLocation":"9575:11:42","nodeType":"VariableDeclaration","scope":12377,"src":"9567:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"9567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12220,"mutability":"mutable","name":"newCollateral","nameLocation":"9596:13:42","nodeType":"VariableDeclaration","scope":12377,"src":"9588:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12219,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:71:42"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[],"src":"9620:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12588,"nodeType":"FunctionDefinition","src":"11858:2071:42","nodes":[],"body":{"id":12587,"nodeType":"Block","src":"11963:1966:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12391,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12388,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"11977:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11977:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11977:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12428,"nodeType":"IfStatement","src":"11973:431:42","trueBody":{"id":12427,"nodeType":"Block","src":"12021:383:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12393,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12039:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12056:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12039:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12411,"nodeType":"IfStatement","src":"12035:190:42","trueBody":{"id":12410,"nodeType":"Block","src":"12059:166:42","statements":[{"expression":{"arguments":[{"id":12401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12116:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12122:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12396,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12077:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12077:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12100:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"12077:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12077:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"12077:55:42"},{"eventCall":{"arguments":[{"id":12406,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12176:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12405,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"12155:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12155:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12408,"nodeType":"EmitStatement","src":"12150:36:42"},{"functionReturnParameters":12387,"id":12409,"nodeType":"Return","src":"12204:7:42"}]}},{"expression":{"arguments":[{"id":12417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12279:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12418,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12285:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12412,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12238:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12243:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12238:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12261:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14991,"src":"12238:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12238:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"12238:57:42"},{"eventCall":{"arguments":[{"id":12422,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12348:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12423,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12359:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12421,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"12314:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12425,"nodeType":"EmitStatement","src":"12309:64:42"},{"functionReturnParameters":12387,"id":12426,"nodeType":"Return","src":"12387:7:42"}]}},{"condition":{"id":12434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12442:42:42","subExpression":{"arguments":[{"id":12432,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12474:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12429,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12443:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12448:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12443:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12465:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"12443:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12443:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12439,"nodeType":"IfStatement","src":"12438:106:42","trueBody":{"id":12438,"nodeType":"Block","src":"12486:58:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12435,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"12507:24:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12507:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12437,"nodeType":"RevertStatement","src":"12500:33:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12440,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12608:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12625:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12608:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12498,"nodeType":"IfStatement","src":"12604:523:42","trueBody":{"id":12497,"nodeType":"Block","src":"12628:499:42","statements":[{"expression":{"arguments":[{"id":12448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12680:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12449,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12686:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12642:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12647:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12642:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12664:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":15539,"src":"12642:37:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12642:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12451,"nodeType":"ExpressionStatement","src":"12642:54:42"},{"eventCall":{"arguments":[{"id":12453,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12735:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12452,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"12715:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12715:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12455,"nodeType":"EmitStatement","src":"12710:35:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12764:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12769:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12764:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12787:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"12764:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12764:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12800:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12764:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12495,"nodeType":"IfStatement","src":"12760:336:42","trueBody":{"id":12494,"nodeType":"Block","src":"12803:293:42","statements":[{"assignments":[12463,12465],"declarations":[{"constant":false,"id":12463,"mutability":"mutable","name":"toBePromoted","nameLocation":"12830:12:42","nodeType":"VariableDeclaration","scope":12494,"src":"12822:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12462,"name":"address","nodeType":"ElementaryTypeName","src":"12822:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12465,"mutability":"mutable","name":"collateral","nameLocation":"12852:10:42","nodeType":"VariableDeclaration","scope":12494,"src":"12844:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12464,"name":"uint256","nodeType":"ElementaryTypeName","src":"12844:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12471,"initialValue":{"arguments":[{"id":12469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12893:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12866:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12871:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12866:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12889:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"12866:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12866:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12821:77:42"},{"expression":{"arguments":[{"id":12477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12943:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12916:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12921:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12916:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12939:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"12916:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12916:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12479,"nodeType":"ExpressionStatement","src":"12916:32:42"},{"expression":{"arguments":[{"id":12485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12995:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12486,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13001:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12966:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12971:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12966:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12988:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"12966:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12966:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12488,"nodeType":"ExpressionStatement","src":"12966:48:42"},{"eventCall":{"arguments":[{"id":12490,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13056:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12491,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12465,"src":"13070:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12489,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"13037:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13037:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12493,"nodeType":"EmitStatement","src":"13032:49:42"}]}},{"functionReturnParameters":12387,"id":12496,"nodeType":"Return","src":"13110:7:42"}]}},{"expression":{"arguments":[{"id":12504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13177:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12505,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13183:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12499,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13142:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13137:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13159:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15609,"src":"13137:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13137:56:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12507,"nodeType":"ExpressionStatement","src":"13137:56:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13208:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13213:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13208:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13231:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"13208:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13244:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13208:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12516,"nodeType":"IfStatement","src":"13204:74:42","trueBody":{"id":12515,"nodeType":"Block","src":"13247:31:42","statements":[{"functionReturnParameters":12387,"id":12514,"nodeType":"Return","src":"13261:7:42"}]}},{"assignments":[12518,12520],"declarations":[{"constant":false,"id":12518,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"13297:12:42","nodeType":"VariableDeclaration","scope":12587,"src":"13289:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"13289:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"13319:19:42","nodeType":"VariableDeclaration","scope":12587,"src":"13311:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"13311:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12526,"initialValue":{"arguments":[{"id":12524,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12521,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13342:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13347:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13342:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13364:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"13342:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13342:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13288:85:42"},{"assignments":[12528,12530],"declarations":[{"constant":false,"id":12528,"mutability":"mutable","name":"mayBePromoted","nameLocation":"13392:13:42","nodeType":"VariableDeclaration","scope":12587,"src":"13384:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12527,"name":"address","nodeType":"ElementaryTypeName","src":"13384:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12530,"mutability":"mutable","name":"maxWaitingCollateral","nameLocation":"13415:20:42","nodeType":"VariableDeclaration","scope":12587,"src":"13407:28:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"13407:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12536,"initialValue":{"arguments":[{"id":12534,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13466:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13439:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13444:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13439:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13462:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"13439:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13383:88:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12537,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"13485:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12538,"name":"maxWaitingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"13507:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13485:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12581,"nodeType":"IfStatement","src":"13481:368:42","trueBody":{"id":12580,"nodeType":"Block","src":"13529:320:42","statements":[{"expression":{"arguments":[{"id":12545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13569:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13543:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13548:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13543:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13565:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"13543:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12547,"nodeType":"ExpressionStatement","src":"13543:31:42"},{"expression":{"arguments":[{"id":12553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12548,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13588:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13593:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13588:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13611:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"13588:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13588:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12555,"nodeType":"ExpressionStatement","src":"13588:32:42"},{"expression":{"arguments":[{"id":12561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13663:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12562,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13669:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13656:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"13634:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13634:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12564,"nodeType":"ExpressionStatement","src":"13634:49:42"},{"expression":{"arguments":[{"id":12570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13727:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12571,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13733:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13697:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13702:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13697:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13720:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"13697:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13697:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12573,"nodeType":"ExpressionStatement","src":"13697:49:42"},{"eventCall":{"arguments":[{"id":12575,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13790:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13804:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12574,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"13766:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12578,"nodeType":"EmitStatement","src":"13761:57:42"},{"functionReturnParameters":12387,"id":12579,"nodeType":"Return","src":"13832:7:42"}]}},{"eventCall":{"arguments":[{"id":12583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12584,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"13908:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12582,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"13864:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13864:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"EmitStatement","src":"13859:63:42"}]},"documentation":{"id":12378,"nodeType":"StructuredDocumentation","src":"11768:85:42","text":"@notice Reshuffles the active and waiting validators when a withdraw is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawReshuffle","nameLocation":"11867:17:42","parameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12381,"mutability":"mutable","name":"self","nameLocation":"11906:4:42","nodeType":"VariableDeclaration","scope":12588,"src":"11885:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12380,"nodeType":"UserDefinedTypeName","pathNode":{"id":12379,"name":"ValidatorSet","nameLocations":["11885:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"11885:12:42"},"referencedDeclaration":16313,"src":"11885:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12383,"mutability":"mutable","name":"validator","nameLocation":"11920:9:42","nodeType":"VariableDeclaration","scope":12588,"src":"11912:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12382,"name":"address","nodeType":"ElementaryTypeName","src":"11912:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12385,"mutability":"mutable","name":"newCollateral","nameLocation":"11939:13:42","nodeType":"VariableDeclaration","scope":12588,"src":"11931:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12384,"name":"uint256","nodeType":"ElementaryTypeName","src":"11931:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11884:69:42"},"returnParameters":{"id":12387,"nodeType":"ParameterList","parameters":[],"src":"11963:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":11738,"nodeType":"StructuredDocumentation","src":"3939:40:42","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[12589],"name":"LibValidatorSet","nameLocation":"3987:15:42","scope":13522,"usedErrors":[]},{"id":13299,"nodeType":"ContractDefinition","src":"13933:8597:42","nodes":[{"id":12593,"nodeType":"UsingForDirective","src":"13958:53:42","nodes":[],"global":false,"libraryName":{"id":12590,"name":"LibStakingReleaseQueue","nameLocations":["13964:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":11737,"src":"13964:22:42"},"typeName":{"id":12592,"nodeType":"UserDefinedTypeName","pathNode":{"id":12591,"name":"StakingReleaseQueue","nameLocations":["13991:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"13991:19:42"},"referencedDeclaration":16284,"src":"13991:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":12597,"nodeType":"UsingForDirective","src":"14016:47:42","nodes":[],"global":false,"libraryName":{"id":12594,"name":"LibStakingChangeLog","nameLocations":["14022:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"14022:19:42"},"typeName":{"id":12596,"nodeType":"UserDefinedTypeName","pathNode":{"id":12595,"name":"StakingChangeLog","nameLocations":["14046:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"14046:16:42"},"referencedDeclaration":16257,"src":"14046:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":12601,"nodeType":"UsingForDirective","src":"14068:39:42","nodes":[],"global":false,"libraryName":{"id":12598,"name":"LibValidatorSet","nameLocations":["14074:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"14074:15:42"},"typeName":{"id":12600,"nodeType":"UserDefinedTypeName","pathNode":{"id":12599,"name":"ValidatorSet","nameLocations":["14094:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"14094:12:42"},"referencedDeclaration":16313,"src":"14094:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":12605,"nodeType":"UsingForDirective","src":"14112:25:42","nodes":[],"global":false,"libraryName":{"id":12602,"name":"LibMaxPQ","nameLocations":["14118:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"14118:8:42"},"typeName":{"id":12604,"nodeType":"UserDefinedTypeName","pathNode":{"id":12603,"name":"MaxPQ","nameLocations":["14131:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"14131:5:42"},"referencedDeclaration":14643,"src":"14131:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":12609,"nodeType":"UsingForDirective","src":"14142:25:42","nodes":[],"global":false,"libraryName":{"id":12606,"name":"LibMinPQ","nameLocations":["14148:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"14148:8:42"},"typeName":{"id":12608,"nodeType":"UserDefinedTypeName","pathNode":{"id":12607,"name":"MinPQ","nameLocations":["14161:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"14161:5:42"},"referencedDeclaration":15261,"src":"14161:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":12612,"nodeType":"UsingForDirective","src":"14172:34:42","nodes":[],"global":false,"libraryName":{"id":12610,"name":"Address","nameLocations":["14178:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"14178:7:42"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"14190:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":12615,"nodeType":"VariableDeclaration","src":"14212:57:42","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"14237:28:42","scope":13299,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12613,"name":"uint64","nodeType":"ElementaryTypeName","src":"14212:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":12614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14268:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":12619,"nodeType":"EventDefinition","src":"14276:50:42","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"14282:28:42","parameters":{"id":12618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12617,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"14318:6:42","nodeType":"VariableDeclaration","scope":12619,"src":"14311:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12616,"name":"uint64","nodeType":"ElementaryTypeName","src":"14311:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"14310:15:42"}},{"id":12625,"nodeType":"EventDefinition","src":"14331:59:42","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"14337:17:42","parameters":{"id":12624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12621,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"14363:9:42","nodeType":"VariableDeclaration","scope":12625,"src":"14355:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12620,"name":"address","nodeType":"ElementaryTypeName","src":"14355:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12623,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"14382:6:42","nodeType":"VariableDeclaration","scope":12625,"src":"14374:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12622,"name":"uint256","nodeType":"ElementaryTypeName","src":"14374:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14354:35:42"}},{"id":12648,"nodeType":"FunctionDefinition","src":"14505:225:42","nodes":[],"body":{"id":12647,"nodeType":"Block","src":"14580:150:42","nodes":[],"statements":[{"assignments":[12635],"declarations":[{"constant":false,"id":12635,"mutability":"mutable","name":"s","nameLocation":"14617:1:42","nodeType":"VariableDeclaration","scope":12647,"src":"14590:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12634,"nodeType":"UserDefinedTypeName","pathNode":{"id":12633,"name":"SubnetActorStorage","nameLocations":["14590:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14590:18:42"},"referencedDeclaration":13839,"src":"14590:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12636,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14621:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14643:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14621:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14621:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14590:65:42"},{"expression":{"arguments":[{"id":12644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12628,"src":"14713:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12640,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"14672:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14674:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14672:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14687:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"14672:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14704:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"14672:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14672:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12632,"id":12646,"nodeType":"Return","src":"14665:58:42"}]},"documentation":{"id":12626,"nodeType":"StructuredDocumentation","src":"14442:58:42","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"14514:17:42","parameters":{"id":12629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12628,"mutability":"mutable","name":"validator","nameLocation":"14540:9:42","nodeType":"VariableDeclaration","scope":12648,"src":"14532:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12627,"name":"address","nodeType":"ElementaryTypeName","src":"14532:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14531:19:42"},"returnParameters":{"id":12632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"14574:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12630,"name":"bool","nodeType":"ElementaryTypeName","src":"14574:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14573:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12671,"nodeType":"FunctionDefinition","src":"14799:227:42","nodes":[],"body":{"id":12670,"nodeType":"Block","src":"14875:151:42","nodes":[],"statements":[{"assignments":[12658],"declarations":[{"constant":false,"id":12658,"mutability":"mutable","name":"s","nameLocation":"14912:1:42","nodeType":"VariableDeclaration","scope":12670,"src":"14885:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12657,"nodeType":"UserDefinedTypeName","pathNode":{"id":12656,"name":"SubnetActorStorage","nameLocations":["14885:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14885:18:42"},"referencedDeclaration":13839,"src":"14885:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12662,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12659,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14916:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14938:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14916:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14885:65:42"},{"expression":{"arguments":[{"id":12667,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"15009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12663,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"14967:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14969:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14967:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"14967:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"14967:41:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14967:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12655,"id":12669,"nodeType":"Return","src":"14960:59:42"}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"14736:58:42","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"14808:18:42","parameters":{"id":12652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"validator","nameLocation":"14835:9:42","nodeType":"VariableDeclaration","scope":12671,"src":"14827:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12650,"name":"address","nodeType":"ElementaryTypeName","src":"14827:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14826:19:42"},"returnParameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12671,"src":"14869:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12653,"name":"bool","nodeType":"ElementaryTypeName","src":"14869:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14868:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12696,"nodeType":"FunctionDefinition","src":"15090:280:42","nodes":[],"body":{"id":12695,"nodeType":"Block","src":"15157:213:42","nodes":[],"statements":[{"assignments":[12681],"declarations":[{"constant":false,"id":12681,"mutability":"mutable","name":"s","nameLocation":"15194:1:42","nodeType":"VariableDeclaration","scope":12695,"src":"15167:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12680,"nodeType":"UserDefinedTypeName","pathNode":{"id":12679,"name":"SubnetActorStorage","nameLocations":["15167:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15167:18:42"},"referencedDeclaration":13839,"src":"15167:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12682,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15198:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15198:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15167:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12686,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"15306:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15308:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15306:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"15306:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12690,"indexExpression":{"id":12689,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"15332:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15306:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15343:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"15306:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15362:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15306:57:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12678,"id":12694,"nodeType":"Return","src":"15299:64:42"}]},"documentation":{"id":12672,"nodeType":"StructuredDocumentation","src":"15032:53:42","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"15099:9:42","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12674,"mutability":"mutable","name":"validator","nameLocation":"15117:9:42","nodeType":"VariableDeclaration","scope":12696,"src":"15109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12673,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15108:19:42"},"returnParameters":{"id":12678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12696,"src":"15151:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12676,"name":"bool","nodeType":"ElementaryTypeName","src":"15151:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15150:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12714,"nodeType":"FunctionDefinition","src":"15376:201:42","nodes":[],"body":{"id":12713,"nodeType":"Block","src":"15440:137:42","nodes":[],"statements":[{"assignments":[12703],"declarations":[{"constant":false,"id":12703,"mutability":"mutable","name":"s","nameLocation":"15477:1:42","nodeType":"VariableDeclaration","scope":12713,"src":"15450:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12702,"nodeType":"UserDefinedTypeName","pathNode":{"id":12701,"name":"SubnetActorStorage","nameLocations":["15450:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15450:18:42"},"referencedDeclaration":13839,"src":"15450:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15481:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15503:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15481:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15481:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15450:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"15532:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15534:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15532:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:21:42","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":11816,"src":"15532:36:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15532:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12700,"id":12712,"nodeType":"Return","src":"15525:45:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"15385:21:42","parameters":{"id":12697,"nodeType":"ParameterList","parameters":[],"src":"15406:2:42"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12714,"src":"15432:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12698,"name":"uint16","nodeType":"ElementaryTypeName","src":"15432:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15431:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12740,"nodeType":"FunctionDefinition","src":"15665:243:42","nodes":[],"body":{"id":12739,"nodeType":"Block","src":"15723:185:42","nodes":[],"statements":[{"assignments":[12722],"declarations":[{"constant":false,"id":12722,"mutability":"mutable","name":"s","nameLocation":"15760:1:42","nodeType":"VariableDeclaration","scope":12739,"src":"15733:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12721,"nodeType":"UserDefinedTypeName","pathNode":{"id":12720,"name":"SubnetActorStorage","nameLocations":["15733:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15733:18:42"},"referencedDeclaration":13839,"src":"15733:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12723,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15764:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15786:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15764:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15764:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15733:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12727,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15815:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15817:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15815:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15830:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"15815:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15848:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"15815:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15815:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12732,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15860:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15860:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15875:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"15860:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"15860:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15815:86:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12719,"id":12738,"nodeType":"Return","src":"15808:93:42"}]},"documentation":{"id":12715,"nodeType":"StructuredDocumentation","src":"15583:77:42","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"15674:15:42","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"15689:2:42"},"returnParameters":{"id":12719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12740,"src":"15715:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12717,"name":"uint16","nodeType":"ElementaryTypeName","src":"15715:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15714:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12758,"nodeType":"FunctionDefinition","src":"15914:214:42","nodes":[],"body":{"id":12757,"nodeType":"Block","src":"15985:143:42","nodes":[],"statements":[{"assignments":[12747],"declarations":[{"constant":false,"id":12747,"mutability":"mutable","name":"s","nameLocation":"16022:1:42","nodeType":"VariableDeclaration","scope":12757,"src":"15995:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12746,"nodeType":"UserDefinedTypeName","pathNode":{"id":12745,"name":"SubnetActorStorage","nameLocations":["15995:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15995:18:42"},"referencedDeclaration":13839,"src":"15995:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12748,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16026:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16048:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16026:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15995:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"16077:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16079:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16077:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16092:27:42","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11799,"src":"16077:42:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12744,"id":12756,"nodeType":"Return","src":"16070:51:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"15923:27:42","parameters":{"id":12741,"nodeType":"ParameterList","parameters":[],"src":"15950:2:42"},"returnParameters":{"id":12744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12758,"src":"15976:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12742,"name":"uint256","nodeType":"ElementaryTypeName","src":"15976:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15975:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12781,"nodeType":"FunctionDefinition","src":"16203:236:42","nodes":[],"body":{"id":12780,"nodeType":"Block","src":"16288:151:42","nodes":[],"statements":[{"assignments":[12768],"declarations":[{"constant":false,"id":12768,"mutability":"mutable","name":"s","nameLocation":"16325:1:42","nodeType":"VariableDeclaration","scope":12780,"src":"16298:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12767,"nodeType":"UserDefinedTypeName","pathNode":{"id":12766,"name":"SubnetActorStorage","nameLocations":["16298:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16298:18:42"},"referencedDeclaration":13839,"src":"16298:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12769,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16329:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16329:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16329:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16298:65:42"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"16380:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16382:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16380:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16395:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"16380:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12777,"indexExpression":{"id":12776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"16406:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16380:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16417:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"16380:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12765,"id":12779,"nodeType":"Return","src":"16373:59:42"}]},"documentation":{"id":12759,"nodeType":"StructuredDocumentation","src":"16134:64:42","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"16212:24:42","parameters":{"id":12762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12761,"mutability":"mutable","name":"validator","nameLocation":"16245:9:42","nodeType":"VariableDeclaration","scope":12781,"src":"16237:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12760,"name":"address","nodeType":"ElementaryTypeName","src":"16237:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16236:19:42"},"returnParameters":{"id":12765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12781,"src":"16279:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16278:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12806,"nodeType":"FunctionDefinition","src":"16592:224:42","nodes":[],"body":{"id":12805,"nodeType":"Block","src":"16677:139:42","nodes":[],"statements":[{"assignments":[12791],"declarations":[{"constant":false,"id":12791,"mutability":"mutable","name":"s","nameLocation":"16714:1:42","nodeType":"VariableDeclaration","scope":12805,"src":"16687:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12790,"nodeType":"UserDefinedTypeName","pathNode":{"id":12789,"name":"SubnetActorStorage","nameLocations":["16687:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16687:18:42"},"referencedDeclaration":13839,"src":"16687:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16718:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16740:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16718:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16718:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16687:65:42"},{"expression":{"arguments":[{"id":12801,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12784,"src":"16789:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12802,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"16800:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"16762:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16764:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16762:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16777:11:42","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":12042,"src":"16762:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16762:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12804,"nodeType":"ExpressionStatement","src":"16762:47:42"}]},"documentation":{"id":12782,"nodeType":"StructuredDocumentation","src":"16511:76:42","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"16601:22:42","parameters":{"id":12787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12784,"mutability":"mutable","name":"validator","nameLocation":"16632:9:42","nodeType":"VariableDeclaration","scope":12806,"src":"16624:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12783,"name":"address","nodeType":"ElementaryTypeName","src":"16624:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12786,"mutability":"mutable","name":"metadata","nameLocation":"16658:8:42","nodeType":"VariableDeclaration","scope":12806,"src":"16643:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12785,"name":"bytes","nodeType":"ElementaryTypeName","src":"16643:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16623:44:42"},"returnParameters":{"id":12788,"nodeType":"ParameterList","parameters":[],"src":"16677:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12915,"nodeType":"FunctionDefinition","src":"16914:1335:42","nodes":[],"body":{"id":12914,"nodeType":"Block","src":"16986:1263:42","nodes":[],"statements":[{"assignments":[12816],"declarations":[{"constant":false,"id":12816,"mutability":"mutable","name":"s","nameLocation":"17023:1:42","nodeType":"VariableDeclaration","scope":12914,"src":"16996:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12815,"nodeType":"UserDefinedTypeName","pathNode":{"id":12814,"name":"SubnetActorStorage","nameLocations":["16996:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16996:18:42"},"referencedDeclaration":13839,"src":"16996:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12820,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12817,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"17027:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17049:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"17027:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17027:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16996:65:42"},{"expression":{"arguments":[{"id":12826,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17172:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17132:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17134:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17132:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17147:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"17132:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"17132:47:42"},{"expression":{"arguments":[{"id":12835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17284:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12836,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17295:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12830,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17254:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17256:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17254:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17269:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"17254:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17254:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"ExpressionStatement","src":"17254:48:42"},{"condition":{"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17317:15:42","subExpression":{"expression":{"id":12839,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17318:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17320:12:42","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"17318:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12913,"nodeType":"IfStatement","src":"17313:930:42","trueBody":{"id":12912,"nodeType":"Block","src":"17334:909:42","statements":[{"assignments":[12843],"declarations":[{"constant":false,"id":12843,"mutability":"mutable","name":"alreadyValidator","nameLocation":"17459:16:42","nodeType":"VariableDeclaration","scope":12912,"src":"17454:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12842,"name":"bool","nodeType":"ElementaryTypeName","src":"17454:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12844,"nodeType":"VariableDeclarationStatement","src":"17454:21:42"},{"assignments":[12846],"declarations":[{"constant":false,"id":12846,"mutability":"mutable","name":"length","nameLocation":"17497:6:42","nodeType":"VariableDeclaration","scope":12912,"src":"17489:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12845,"name":"uint256","nodeType":"ElementaryTypeName","src":"17489:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12850,"initialValue":{"expression":{"expression":{"id":12847,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17506:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17508:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17506:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17526:6:42","memberName":"length","nodeType":"MemberAccess","src":"17506:26:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17489:43:42"},{"body":{"id":12875,"nodeType":"Block","src":"17576:240:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12857,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17598:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17600:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17598:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12860,"indexExpression":{"id":12859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17618:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17598:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"id":12861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17621:4:42","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":16331,"src":"17598:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12862,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17629:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17598:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12870,"nodeType":"IfStatement","src":"17594:137:42","trueBody":{"id":12869,"nodeType":"Block","src":"17640:91:42","statements":[{"expression":{"id":12866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12864,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17662:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17681:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17662:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12867,"nodeType":"ExpressionStatement","src":"17662:23:42"},{"id":12868,"nodeType":"Break","src":"17707:5:42"}]}},{"id":12874,"nodeType":"UncheckedBlock","src":"17748:54:42","statements":[{"expression":{"id":12872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17780:3:42","subExpression":{"id":12871,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17782:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12873,"nodeType":"ExpressionStatement","src":"17780:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17562:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12855,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12846,"src":"17566:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17562:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12876,"initializationExpression":{"assignments":[12852],"declarations":[{"constant":false,"id":12852,"mutability":"mutable","name":"i","nameLocation":"17559:1:42","nodeType":"VariableDeclaration","scope":12876,"src":"17551:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12851,"name":"uint256","nodeType":"ElementaryTypeName","src":"17551:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12853,"nodeType":"VariableDeclarationStatement","src":"17551:9:42"},"nodeType":"ForStatement","src":"17546:270:42"},{"condition":{"id":12878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17833:17:42","subExpression":{"id":12877,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17834:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12911,"nodeType":"IfStatement","src":"17829:404:42","trueBody":{"id":12910,"nodeType":"Block","src":"17852:381:42","statements":[{"assignments":[12880],"declarations":[{"constant":false,"id":12880,"mutability":"mutable","name":"collateral","nameLocation":"17878:10:42","nodeType":"VariableDeclaration","scope":12910,"src":"17870:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12879,"name":"uint256","nodeType":"ElementaryTypeName","src":"17870:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12887,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":12881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17891:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17893:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17891:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17906:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"17891:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12885,"indexExpression":{"id":12884,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17917:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17891:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17928:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"17891:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17870:77:42"},{"assignments":[12890],"declarations":[{"constant":false,"id":12890,"mutability":"mutable","name":"val","nameLocation":"17982:3:42","nodeType":"VariableDeclaration","scope":12910,"src":"17965:20:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator"},"typeName":{"id":12889,"nodeType":"UserDefinedTypeName","pathNode":{"id":12888,"name":"Validator","nameLocations":["17965:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"17965:9:42"},"referencedDeclaration":16334,"src":"17965:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":12901,"initialValue":{"arguments":[{"id":12892,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18026:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12893,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"18065:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":12894,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18107:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18109:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18107:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18122:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"18107:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12898,"indexExpression":{"id":12897,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18133:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18107:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18144:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"18107:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":12891,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"17988:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$16334_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18020:4:42","18057:6:42","18097:8:42"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"17988:183:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"17965:206:42"},{"expression":{"arguments":[{"id":12907,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"18214:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":12902,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18189:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18191:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"18189:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18209:4:42","memberName":"push","nodeType":"MemberAccess","src":"18189:24:42","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$_t_struct$_Validator_$16334_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":12908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12909,"nodeType":"ExpressionStatement","src":"18189:29:42"}]}}]}}]},"documentation":{"id":12807,"nodeType":"StructuredDocumentation","src":"16822:87:42","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"16923:18:42","parameters":{"id":12812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12809,"mutability":"mutable","name":"validator","nameLocation":"16950:9:42","nodeType":"VariableDeclaration","scope":12915,"src":"16942:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12808,"name":"address","nodeType":"ElementaryTypeName","src":"16942:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12811,"mutability":"mutable","name":"amount","nameLocation":"16969:6:42","nodeType":"VariableDeclaration","scope":12915,"src":"16961:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12810,"name":"uint256","nodeType":"ElementaryTypeName","src":"16961:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16941:35:42"},"returnParameters":{"id":12813,"nodeType":"ParameterList","parameters":[],"src":"16986:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12957,"nodeType":"FunctionDefinition","src":"18439:504:42","nodes":[],"body":{"id":12956,"nodeType":"Block","src":"18512:431:42","nodes":[],"statements":[{"assignments":[12925],"declarations":[{"constant":false,"id":12925,"mutability":"mutable","name":"s","nameLocation":"18549:1:42","nodeType":"VariableDeclaration","scope":12956,"src":"18522:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12924,"nodeType":"UserDefinedTypeName","pathNode":{"id":12923,"name":"SubnetActorStorage","nameLocations":["18522:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"18522:18:42"},"referencedDeclaration":13839,"src":"18522:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12926,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"18553:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"18553:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18522:65:42"},{"expression":{"arguments":[{"id":12935,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18688:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12936,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18699:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18658:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18660:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18658:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18673:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"18658:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12938,"nodeType":"ExpressionStatement","src":"18658:48:42"},{"expression":{"arguments":[{"id":12944,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18812:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18823:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12939,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18781:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18783:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18781:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18796:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"18781:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18781:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12947,"nodeType":"ExpressionStatement","src":"18781:49:42"},{"expression":{"arguments":[{"id":12953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18929:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":12950,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18908:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18900:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":12948,"name":"address","nodeType":"ElementaryTypeName","src":"18900:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":12951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18919:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"18900:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12955,"nodeType":"ExpressionStatement","src":"18900:36:42"}]},"documentation":{"id":12916,"nodeType":"StructuredDocumentation","src":"18255:179:42","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"18448:19:42","parameters":{"id":12921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12918,"mutability":"mutable","name":"validator","nameLocation":"18476:9:42","nodeType":"VariableDeclaration","scope":12957,"src":"18468:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12917,"name":"address","nodeType":"ElementaryTypeName","src":"18468:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12920,"mutability":"mutable","name":"amount","nameLocation":"18495:6:42","nodeType":"VariableDeclaration","scope":12957,"src":"18487:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18467:35:42"},"returnParameters":{"id":12922,"nodeType":"ParameterList","parameters":[],"src":"18512:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12982,"nodeType":"FunctionDefinition","src":"19060:223:42","nodes":[],"body":{"id":12981,"nodeType":"Block","src":"19143:140:42","nodes":[],"statements":[{"assignments":[12967],"declarations":[{"constant":false,"id":12967,"mutability":"mutable","name":"s","nameLocation":"19180:1:42","nodeType":"VariableDeclaration","scope":12981,"src":"19153:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12966,"nodeType":"UserDefinedTypeName","pathNode":{"id":12965,"name":"SubnetActorStorage","nameLocations":["19153:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19153:18:42"},"referencedDeclaration":13839,"src":"19153:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12971,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12968,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19184:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19206:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19184:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19184:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19153:65:42"},{"expression":{"arguments":[{"id":12977,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12960,"src":"19256:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12978,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12962,"src":"19267:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12972,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12967,"src":"19228:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19230:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19228:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":12976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19240:15:42","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":13569,"src":"19228:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12980,"nodeType":"ExpressionStatement","src":"19228:48:42"}]},"documentation":{"id":12958,"nodeType":"StructuredDocumentation","src":"19017:38:42","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"19069:20:42","parameters":{"id":12963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12960,"mutability":"mutable","name":"validator","nameLocation":"19098:9:42","nodeType":"VariableDeclaration","scope":12982,"src":"19090:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12959,"name":"address","nodeType":"ElementaryTypeName","src":"19090:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12962,"mutability":"mutable","name":"metadata","nameLocation":"19124:8:42","nodeType":"VariableDeclaration","scope":12982,"src":"19109:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12961,"name":"bytes","nodeType":"ElementaryTypeName","src":"19109:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19089:44:42"},"returnParameters":{"id":12964,"nodeType":"ParameterList","parameters":[],"src":"19143:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13016,"nodeType":"FunctionDefinition","src":"19328:256:42","nodes":[],"body":{"id":13015,"nodeType":"Block","src":"19389:195:42","nodes":[],"statements":[{"assignments":[12992],"declarations":[{"constant":false,"id":12992,"mutability":"mutable","name":"s","nameLocation":"19426:1:42","nodeType":"VariableDeclaration","scope":13015,"src":"19399:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12991,"nodeType":"UserDefinedTypeName","pathNode":{"id":12990,"name":"SubnetActorStorage","nameLocations":["19399:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19399:18:42"},"referencedDeclaration":13839,"src":"19399:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12996,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12993,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19430:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19452:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19430:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19430:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19399:65:42"},{"expression":{"arguments":[{"id":13002,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19502:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13003,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19513:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19475:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19477:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19475:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19487:14:42","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":13643,"src":"19475:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19475:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13005,"nodeType":"ExpressionStatement","src":"19475:45:42"},{"expression":{"arguments":[{"id":13011,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19559:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13012,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19570:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13006,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19530:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19532:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19530:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19545:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"19530:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19530:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13014,"nodeType":"ExpressionStatement","src":"19530:47:42"}]},"documentation":{"id":12983,"nodeType":"StructuredDocumentation","src":"19289:34:42","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"19337:7:42","parameters":{"id":12988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12985,"mutability":"mutable","name":"validator","nameLocation":"19353:9:42","nodeType":"VariableDeclaration","scope":13016,"src":"19345:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12984,"name":"address","nodeType":"ElementaryTypeName","src":"19345:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12987,"mutability":"mutable","name":"amount","nameLocation":"19372:6:42","nodeType":"VariableDeclaration","scope":13016,"src":"19364:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12986,"name":"uint256","nodeType":"ElementaryTypeName","src":"19364:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19344:35:42"},"returnParameters":{"id":12989,"nodeType":"ParameterList","parameters":[],"src":"19389:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13050,"nodeType":"FunctionDefinition","src":"19630:259:42","nodes":[],"body":{"id":13049,"nodeType":"Block","src":"19692:197:42","nodes":[],"statements":[{"assignments":[13026],"declarations":[{"constant":false,"id":13026,"mutability":"mutable","name":"s","nameLocation":"19729:1:42","nodeType":"VariableDeclaration","scope":13049,"src":"19702:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13025,"nodeType":"UserDefinedTypeName","pathNode":{"id":13024,"name":"SubnetActorStorage","nameLocations":["19702:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19702:18:42"},"referencedDeclaration":13839,"src":"19702:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13027,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19733:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19755:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19733:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19733:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19702:65:42"},{"expression":{"arguments":[{"id":13036,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19806:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19817:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19778:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19780:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19778:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19790:15:42","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":13606,"src":"19778:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19778:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13039,"nodeType":"ExpressionStatement","src":"19778:46:42"},{"expression":{"arguments":[{"id":13045,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19864:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13046,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19875:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19834:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19836:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19834:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19849:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"19834:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13048,"nodeType":"ExpressionStatement","src":"19834:48:42"}]},"documentation":{"id":13017,"nodeType":"StructuredDocumentation","src":"19590:35:42","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"19639:8:42","parameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13019,"mutability":"mutable","name":"validator","nameLocation":"19656:9:42","nodeType":"VariableDeclaration","scope":13050,"src":"19648:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13018,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13021,"mutability":"mutable","name":"amount","nameLocation":"19675:6:42","nodeType":"VariableDeclaration","scope":13050,"src":"19667:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13020,"name":"uint256","nodeType":"ElementaryTypeName","src":"19667:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19647:35:42"},"returnParameters":{"id":13023,"nodeType":"ParameterList","parameters":[],"src":"19692:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13077,"nodeType":"FunctionDefinition","src":"19998:244:42","nodes":[],"body":{"id":13076,"nodeType":"Block","src":"20051:191:42","nodes":[],"statements":[{"assignments":[13058],"declarations":[{"constant":false,"id":13058,"mutability":"mutable","name":"s","nameLocation":"20088:1:42","nodeType":"VariableDeclaration","scope":13076,"src":"20061:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13057,"nodeType":"UserDefinedTypeName","pathNode":{"id":13056,"name":"SubnetActorStorage","nameLocations":["20061:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20061:18:42"},"referencedDeclaration":13839,"src":"20061:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13062,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13059,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20092:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20114:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20092:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20092:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20061:65:42"},{"assignments":[13064],"declarations":[{"constant":false,"id":13064,"mutability":"mutable","name":"amount","nameLocation":"20144:6:42","nodeType":"VariableDeclaration","scope":13076,"src":"20136:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13063,"name":"uint256","nodeType":"ElementaryTypeName","src":"20136:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"id":13068,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20174:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"20153:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20155:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"20153:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20168:5:42","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"20153:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20153:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20136:48:42"},{"eventCall":{"arguments":[{"id":13072,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20217:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13064,"src":"20228:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13071,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"20199:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20199:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13075,"nodeType":"EmitStatement","src":"20194:41:42"}]},"documentation":{"id":13051,"nodeType":"StructuredDocumentation","src":"19952:41:42","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"20007:15:42","parameters":{"id":13054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13053,"mutability":"mutable","name":"validator","nameLocation":"20031:9:42","nodeType":"VariableDeclaration","scope":13077,"src":"20023:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13052,"name":"address","nodeType":"ElementaryTypeName","src":"20023:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20022:19:42"},"returnParameters":{"id":13055,"nodeType":"ParameterList","parameters":[],"src":"20051:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13130,"nodeType":"FunctionDefinition","src":"20356:423:42","nodes":[],"body":{"id":13129,"nodeType":"Block","src":"20413:366:42","nodes":[],"statements":[{"assignments":[13085],"declarations":[{"constant":false,"id":13085,"mutability":"mutable","name":"s","nameLocation":"20450:1:42","nodeType":"VariableDeclaration","scope":13129,"src":"20423:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13084,"nodeType":"UserDefinedTypeName","pathNode":{"id":13083,"name":"SubnetActorStorage","nameLocations":["20423:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20423:18:42"},"referencedDeclaration":13839,"src":"20423:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13086,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20454:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20476:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20454:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20423:65:42"},{"assignments":[13091],"declarations":[{"constant":false,"id":13091,"mutability":"mutable","name":"amount","nameLocation":"20506:6:42","nodeType":"VariableDeclaration","scope":13129,"src":"20498:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13090,"name":"uint256","nodeType":"ElementaryTypeName","src":"20498:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13096,"initialValue":{"baseExpression":{"expression":{"id":13092,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20515:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20517:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20515:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13095,"indexExpression":{"id":13094,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20532:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20515:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20498:42:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20555:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20565:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20555:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13104,"nodeType":"IfStatement","src":"20551:69:42","trueBody":{"id":13103,"nodeType":"Block","src":"20568:52:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13100,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"20589:18:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20589:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13102,"nodeType":"RevertStatement","src":"20582:27:42"}]}},{"expression":{"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20630:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20632:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20630:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13109,"indexExpression":{"id":13107,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20647:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20630:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20658:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20630:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13112,"nodeType":"ExpressionStatement","src":"20630:29:42"},{"expression":{"arguments":[{"id":13118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20720:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20678:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20680:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"20678:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13113,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"20669:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20696:23:42","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":8779,"src":"20669:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13120,"nodeType":"ExpressionStatement","src":"20669:58:42"},{"expression":{"arguments":[{"id":13126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20765:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13123,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20746:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20738:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":13121,"name":"address","nodeType":"ElementaryTypeName","src":"20738:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20755:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"20738:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13128,"nodeType":"ExpressionStatement","src":"20738:34:42"}]},"documentation":{"id":13078,"nodeType":"StructuredDocumentation","src":"20248:103:42","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"20365:21:42","parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"relayer","nameLocation":"20395:7:42","nodeType":"VariableDeclaration","scope":13130,"src":"20387:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13079,"name":"address","nodeType":"ElementaryTypeName","src":"20387:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20386:17:42"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[],"src":"20413:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13298,"nodeType":"FunctionDefinition","src":"20907:1621:42","nodes":[],"body":{"id":13297,"nodeType":"Block","src":"20967:1561:42","nodes":[],"statements":[{"assignments":[13138],"declarations":[{"constant":false,"id":13138,"mutability":"mutable","name":"s","nameLocation":"21004:1:42","nodeType":"VariableDeclaration","scope":13297,"src":"20977:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13137,"nodeType":"UserDefinedTypeName","pathNode":{"id":13136,"name":"SubnetActorStorage","nameLocations":["20977:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20977:18:42"},"referencedDeclaration":13839,"src":"20977:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13142,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13139,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"21008:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"21008:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21008:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20977:65:42"},{"assignments":[13145],"declarations":[{"constant":false,"id":13145,"mutability":"mutable","name":"changeSet","nameLocation":"21077:9:42","nodeType":"VariableDeclaration","scope":13297,"src":"21052:34:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13144,"nodeType":"UserDefinedTypeName","pathNode":{"id":13143,"name":"StakingChangeLog","nameLocations":["21052:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"21052:16:42"},"referencedDeclaration":16257,"src":"21052:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":13148,"initialValue":{"expression":{"id":13146,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21089:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21091:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"21089:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21052:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13149,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21115:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":13150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21138:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21148:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"21138:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21115:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13157,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21243:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13158,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21265:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21275:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21265:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21243:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13163,"nodeType":"IfStatement","src":"21239:93:42","trueBody":{"id":13162,"nodeType":"Block","src":"21301:31:42","statements":[{"functionReturnParameters":13135,"id":13161,"nodeType":"Return","src":"21315:7:42"}]}},"id":13164,"nodeType":"IfStatement","src":"21111:221:42","trueBody":{"id":13156,"nodeType":"Block","src":"21173:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13153,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"21194:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13155,"nodeType":"RevertStatement","src":"21187:35:42"}]}},{"assignments":[13166],"declarations":[{"constant":false,"id":13166,"mutability":"mutable","name":"start","nameLocation":"21349:5:42","nodeType":"VariableDeclaration","scope":13297,"src":"21342:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13165,"name":"uint64","nodeType":"ElementaryTypeName","src":"21342:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13169,"initialValue":{"expression":{"id":13167,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21357:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21367:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21357:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21342:49:42"},{"body":{"id":13283,"nodeType":"Block","src":"21452:934:42","statements":[{"assignments":[13179],"declarations":[{"constant":false,"id":13179,"mutability":"mutable","name":"change","nameLocation":"21488:6:42","nodeType":"VariableDeclaration","scope":13283,"src":"21466:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13178,"nodeType":"UserDefinedTypeName","pathNode":{"id":13177,"name":"StakingChange","nameLocations":["21466:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"21466:13:42"},"referencedDeclaration":16238,"src":"21466:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13184,"initialValue":{"arguments":[{"id":13182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21517:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13180,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21497:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21507:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"21497:19:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21497:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21466:53:42"},{"assignments":[13186],"declarations":[{"constant":false,"id":13186,"mutability":"mutable","name":"validator","nameLocation":"21541:9:42","nodeType":"VariableDeclaration","scope":13283,"src":"21533:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13185,"name":"address","nodeType":"ElementaryTypeName","src":"21533:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13189,"initialValue":{"expression":{"id":13187,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21553:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21560:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"21553:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21533:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13190,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21588:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21595:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21588:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13192,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21601:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21618:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"21601:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21588:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13271,"nodeType":"Block","src":"21732:546:42","statements":[{"assignments":[13209],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"amount","nameLocation":"21758:6:42","nodeType":"VariableDeclaration","scope":13271,"src":"21750:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13208,"name":"uint256","nodeType":"ElementaryTypeName","src":"21750:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13218,"initialValue":{"arguments":[{"expression":{"id":13212,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21778:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21785:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21778:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21795:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"21795:7:42","typeDescriptions":{}}}],"id":13216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21794:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21767:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21771:6:42","memberName":"decode","nodeType":"MemberAccess","src":"21767:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21767:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21750:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13219,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21827:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21834:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21827:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13221,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21840:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21857:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"21840:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21827:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13269,"nodeType":"Block","src":"22101:163:42","statements":[{"expression":{"arguments":[{"id":13256,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"22153:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13257,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22164:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13251,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22123:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22125:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"22123:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22138:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"22123:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22123:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13259,"nodeType":"ExpressionStatement","src":"22123:48:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":13261,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22202:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22204:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22202:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13260,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22193:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22220:8:42","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":8767,"src":"22193:35:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13265,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22236:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"22193:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13268,"nodeType":"ExpressionStatement","src":"22193:52:42"}]},"id":13270,"nodeType":"IfStatement","src":"21823:441:42","trueBody":{"id":13250,"nodeType":"Block","src":"21867:228:42","statements":[{"expression":{"arguments":[{"id":13229,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21920:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13230,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"21931:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21889:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21891:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21889:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"21889:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13232,"nodeType":"ExpressionStatement","src":"21889:49:42"},{"expression":{"arguments":[{"id":13238,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21989:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13239,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22000:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21960:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21962:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"21960:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21975:13:42","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":11692,"src":"21960:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":13240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21960:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13241,"nodeType":"ExpressionStatement","src":"21960:47:42"},{"expression":{"arguments":[{"id":13247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22069:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13243,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22038:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22040:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22038:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22029:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22056:12:42","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":8773,"src":"22029:39:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13249,"nodeType":"ExpressionStatement","src":"22029:47:42"}]}}]},"id":13272,"nodeType":"IfStatement","src":"21584:694:42","trueBody":{"id":13207,"nodeType":"Block","src":"21631:95:42","statements":[{"expression":{"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13195,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21649:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21651:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21649:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21664:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"21649:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13201,"indexExpression":{"id":13198,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21675:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21649:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21686:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"21649:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13203,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21697:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21704:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21697:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"21649:62:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13206,"nodeType":"ExpressionStatement","src":"21649:62:42"}]}},{"expression":{"arguments":[{"id":13276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22314:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22292:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22302:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"22292:21:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22292:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13278,"nodeType":"ExpressionStatement","src":"22292:24:42"},{"id":13282,"nodeType":"UncheckedBlock","src":"22330:46:42","statements":[{"expression":{"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"22358:3:42","subExpression":{"id":13279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22360:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13281,"nodeType":"ExpressionStatement","src":"22358:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21424:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13175,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21429:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21424:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13284,"initializationExpression":{"assignments":[13171],"declarations":[{"constant":false,"id":13171,"mutability":"mutable","name":"i","nameLocation":"21413:1:42","nodeType":"VariableDeclaration","scope":13284,"src":"21406:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13170,"name":"uint64","nodeType":"ElementaryTypeName","src":"21406:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13173,"initialValue":{"id":13172,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13166,"src":"21417:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21406:16:42"},"nodeType":"ForStatement","src":"21401:985:42"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13285,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22396:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22406:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"22396:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13288,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22433:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22433:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22396:60:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13292,"nodeType":"ExpressionStatement","src":"22396:60:42"},{"eventCall":{"arguments":[{"id":13294,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22501:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13293,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"22472:28:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22472:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13296,"nodeType":"EmitStatement","src":"22467:54:42"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"20785:117:42","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"20916:13:42","parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"configurationNumber","nameLocation":"20937:19:42","nodeType":"VariableDeclaration","scope":13298,"src":"20930:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13132,"name":"uint64","nodeType":"ElementaryTypeName","src":"20930:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20929:28:42"},"returnParameters":{"id":13135,"nodeType":"ParameterList","parameters":[],"src":"20967:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13299],"name":"LibStaking","nameLocation":"13941:10:42","scope":13522,"usedErrors":[1248,1256,6123]},{"id":13521,"nodeType":"ContractDefinition","src":"22687:2370:42","nodes":[{"id":13304,"nodeType":"UsingForDirective","src":"22722:39:42","nodes":[],"global":false,"libraryName":{"id":13301,"name":"LibValidatorSet","nameLocations":["22728:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"22728:15:42"},"typeName":{"id":13303,"nodeType":"UserDefinedTypeName","pathNode":{"id":13302,"name":"ValidatorSet","nameLocations":["22748:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"22748:12:42"},"referencedDeclaration":16313,"src":"22748:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":13308,"nodeType":"UsingForDirective","src":"22766:47:42","nodes":[],"global":false,"libraryName":{"id":13305,"name":"LibStakingChangeLog","nameLocations":["22772:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"22772:19:42"},"typeName":{"id":13307,"nodeType":"UserDefinedTypeName","pathNode":{"id":13306,"name":"StakingChangeLog","nameLocations":["22796:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"22796:16:42"},"referencedDeclaration":16257,"src":"22796:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":13343,"nodeType":"FunctionDefinition","src":"22819:475:42","nodes":[],"body":{"id":13342,"nodeType":"Block","src":"22932:362:42","nodes":[],"statements":[{"assignments":[13318],"declarations":[{"constant":false,"id":13318,"mutability":"mutable","name":"configurationNumber","nameLocation":"22949:19:42","nodeType":"VariableDeclaration","scope":13342,"src":"22942:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13317,"name":"uint64","nodeType":"ElementaryTypeName","src":"22942:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13332,"initialValue":{"arguments":[{"expression":{"expression":{"id":13322,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23022:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23036:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23022:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23043:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"23022:30:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":13325,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23070:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23084:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23070:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23091:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"23070:23:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":13328,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23116:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23130:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23116:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23137:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"23116:28:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":13319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13311,"src":"22971:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22976:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"22971:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22984:12:42","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":13685,"src":"22971:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["23011:9:42","23066:2:42","23107:7:42"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"22971:184:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"22942:213:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13333,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"23170:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13334,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23193:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23207:19:42","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16243,"src":"23193:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23170:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13341,"nodeType":"IfStatement","src":"23166:122:42","trueBody":{"id":13340,"nodeType":"Block","src":"23228:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13337,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"23249:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23249:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13339,"nodeType":"RevertStatement","src":"23242:35:42"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"22828:11:42","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13311,"mutability":"mutable","name":"self","nameLocation":"22872:4:42","nodeType":"VariableDeclaration","scope":13343,"src":"22840:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13310,"nodeType":"UserDefinedTypeName","pathNode":{"id":13309,"name":"ParentValidatorsTracker","nameLocations":["22840:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"22840:23:42"},"referencedDeclaration":16320,"src":"22840:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"changeRequest","nameLocation":"22908:13:42","nodeType":"VariableDeclaration","scope":13343,"src":"22878:43:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":13313,"nodeType":"UserDefinedTypeName","pathNode":{"id":13312,"name":"StakingChangeRequest","nameLocations":["22878:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"22878:20:42"},"referencedDeclaration":16244,"src":"22878:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"22839:83:42"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"22932:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13384,"nodeType":"FunctionDefinition","src":"23300:415:42","nodes":[],"body":{"id":13383,"nodeType":"Block","src":"23443:272:42","nodes":[],"statements":[{"assignments":[13354],"declarations":[{"constant":false,"id":13354,"mutability":"mutable","name":"length","nameLocation":"23461:6:42","nodeType":"VariableDeclaration","scope":13383,"src":"23453:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13353,"name":"uint256","nodeType":"ElementaryTypeName","src":"23453:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13357,"initialValue":{"expression":{"id":13355,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23470:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23485:6:42","memberName":"length","nodeType":"MemberAccess","src":"23470:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23453:38:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13358,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23505:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23505:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13363,"nodeType":"IfStatement","src":"23501:48:42","trueBody":{"id":13362,"nodeType":"Block","src":"23518:31:42","statements":[{"functionReturnParameters":13352,"id":13361,"nodeType":"Return","src":"23532:7:42"}]}},{"body":{"id":13381,"nodeType":"Block","src":"23589:120:42","statements":[{"expression":{"arguments":[{"id":13371,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"23615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":13372,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23621:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13374,"indexExpression":{"id":13373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23636:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23621:17:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":13370,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"23603:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13376,"nodeType":"ExpressionStatement","src":"23603:36:42"},{"id":13380,"nodeType":"UncheckedBlock","src":"23653:46:42","statements":[{"expression":{"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23681:3:42","subExpression":{"id":13377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23683:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13379,"nodeType":"ExpressionStatement","src":"23681:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23575:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13368,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23579:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23575:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13382,"initializationExpression":{"assignments":[13365],"declarations":[{"constant":false,"id":13365,"mutability":"mutable","name":"i","nameLocation":"23572:1:42","nodeType":"VariableDeclaration","scope":13382,"src":"23564:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13364,"name":"uint256","nodeType":"ElementaryTypeName","src":"23564:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13366,"nodeType":"VariableDeclarationStatement","src":"23564:9:42"},"nodeType":"ForStatement","src":"23559:150:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"23309:16:42","parameters":{"id":13351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"self","nameLocation":"23367:4:42","nodeType":"VariableDeclaration","scope":13384,"src":"23335:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13345,"nodeType":"UserDefinedTypeName","pathNode":{"id":13344,"name":"ParentValidatorsTracker","nameLocations":["23335:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23335:23:42"},"referencedDeclaration":16320,"src":"23335:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13350,"mutability":"mutable","name":"changeRequests","nameLocation":"23413:14:42","nodeType":"VariableDeclaration","scope":13384,"src":"23381:46:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":13348,"nodeType":"UserDefinedTypeName","pathNode":{"id":13347,"name":"StakingChangeRequest","nameLocations":["23381:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"23381:20:42"},"referencedDeclaration":16244,"src":"23381:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":13349,"nodeType":"ArrayTypeName","src":"23381:22:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"23325:108:42"},"returnParameters":{"id":13352,"nodeType":"ParameterList","parameters":[],"src":"23443:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13520,"nodeType":"FunctionDefinition","src":"23786:1269:42","nodes":[],"body":{"id":13519,"nodeType":"Block","src":"23884:1171:42","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13393,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"23898:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":13394,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"23921:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23926:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"23921:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23934:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"23921:36:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23898:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13402,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24029:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24051:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24056:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24051:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24064:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24051:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24029:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13409,"nodeType":"IfStatement","src":"24025:96:42","trueBody":{"id":13408,"nodeType":"Block","src":"24090:31:42","statements":[{"functionReturnParameters":13392,"id":13407,"nodeType":"Return","src":"24104:7:42"}]}},"id":13410,"nodeType":"IfStatement","src":"23894:227:42","trueBody":{"id":13401,"nodeType":"Block","src":"23959:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13398,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"23980:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23980:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13400,"nodeType":"RevertStatement","src":"23973:35:42"}]}},{"assignments":[13412],"declarations":[{"constant":false,"id":13412,"mutability":"mutable","name":"start","nameLocation":"24138:5:42","nodeType":"VariableDeclaration","scope":13519,"src":"24131:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13411,"name":"uint64","nodeType":"ElementaryTypeName","src":"24131:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13416,"initialValue":{"expression":{"expression":{"id":13413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24146:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24151:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24146:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24159:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24146:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24131:52:42"},{"body":{"id":13507,"nodeType":"Block","src":"24245:731:42","statements":[{"assignments":[13426],"declarations":[{"constant":false,"id":13426,"mutability":"mutable","name":"change","nameLocation":"24281:6:42","nodeType":"VariableDeclaration","scope":13507,"src":"24259:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13425,"nodeType":"UserDefinedTypeName","pathNode":{"id":13424,"name":"StakingChange","nameLocations":["24259:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"24259:13:42"},"referencedDeclaration":16238,"src":"24259:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13432,"initialValue":{"arguments":[{"id":13430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24313:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13427,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24290:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24295:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24290:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24303:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"24290:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24290:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24259:56:42"},{"assignments":[13434],"declarations":[{"constant":false,"id":13434,"mutability":"mutable","name":"validator","nameLocation":"24337:9:42","nodeType":"VariableDeclaration","scope":13507,"src":"24329:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13433,"name":"address","nodeType":"ElementaryTypeName","src":"24329:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13437,"initialValue":{"expression":{"id":13435,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24349:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24356:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"24349:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24329:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13438,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24384:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24391:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24384:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13440,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24397:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24414:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"24397:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24384:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13493,"nodeType":"Block","src":"24529:336:42","statements":[{"assignments":[13457],"declarations":[{"constant":false,"id":13457,"mutability":"mutable","name":"amount","nameLocation":"24555:6:42","nodeType":"VariableDeclaration","scope":13493,"src":"24547:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13466,"initialValue":{"arguments":[{"expression":{"id":13460,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24575:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24582:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24575:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24592:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24592:7:42","typeDescriptions":{}}}],"id":13464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24591:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24564:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24568:6:42","memberName":"decode","nodeType":"MemberAccess","src":"24564:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24564:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24547:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13467,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24624:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24631:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24624:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24637:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24654:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"24637:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24624:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13491,"nodeType":"Block","src":"24761:90:42","statements":[{"expression":{"arguments":[{"id":13487,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24814:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13488,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24825:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24783:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24788:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24783:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24799:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"24783:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24783:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13490,"nodeType":"ExpressionStatement","src":"24783:49:42"}]},"id":13492,"nodeType":"IfStatement","src":"24620:231:42","trueBody":{"id":13481,"nodeType":"Block","src":"24664:91:42","statements":[{"expression":{"arguments":[{"id":13477,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24718:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24729:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24686:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24691:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24686:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24702:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"24686:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24686:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13480,"nodeType":"ExpressionStatement","src":"24686:50:42"}]}}]},"id":13494,"nodeType":"IfStatement","src":"24380:485:42","trueBody":{"id":13455,"nodeType":"Block","src":"24427:96:42","statements":[{"expression":{"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24445:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24450:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24445:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24461:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"24445:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13449,"indexExpression":{"id":13446,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24472:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24445:37:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24483:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"24445:46:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13451,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24494:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24501:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24494:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24445:63:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13454,"nodeType":"ExpressionStatement","src":"24445:63:42"}]}},{"expression":{"arguments":[{"id":13500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24904:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24879:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24884:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24879:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24892:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"24879:24:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24879:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13502,"nodeType":"ExpressionStatement","src":"24879:27:42"},{"id":13506,"nodeType":"UncheckedBlock","src":"24920:46:42","statements":[{"expression":{"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24948:3:42","subExpression":{"id":13503,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24950:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13505,"nodeType":"ExpressionStatement","src":"24948:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24217:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24222:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24217:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13508,"initializationExpression":{"assignments":[13418],"declarations":[{"constant":false,"id":13418,"mutability":"mutable","name":"i","nameLocation":"24206:1:42","nodeType":"VariableDeclaration","scope":13508,"src":"24199:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13417,"name":"uint64","nodeType":"ElementaryTypeName","src":"24199:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13420,"initialValue":{"id":13419,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"24210:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24199:16:42"},"nodeType":"ForStatement","src":"24194:782:42"},{"expression":{"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":13509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24985:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24990:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24985:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24998:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24985:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13514,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"25025:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25047:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25025:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24985:63:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13518,"nodeType":"ExpressionStatement","src":"24985:63:42"}]},"documentation":{"id":13385,"nodeType":"StructuredDocumentation","src":"23721:60:42","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23795:13:42","parameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13388,"mutability":"mutable","name":"self","nameLocation":"23841:4:42","nodeType":"VariableDeclaration","scope":13520,"src":"23809:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13387,"nodeType":"UserDefinedTypeName","pathNode":{"id":13386,"name":"ParentValidatorsTracker","nameLocations":["23809:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23809:23:42"},"referencedDeclaration":16320,"src":"23809:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13390,"mutability":"mutable","name":"configurationNumber","nameLocation":"23854:19:42","nodeType":"VariableDeclaration","scope":13520,"src":"23847:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13389,"name":"uint64","nodeType":"ElementaryTypeName","src":"23847:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23808:66:42"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[],"src":"23884:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":13300,"nodeType":"StructuredDocumentation","src":"22532:155:42","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[13521],"name":"LibValidatorTracking","nameLocation":"22695:20:42","scope":13522,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":42} \ No newline at end of file diff --git a/contracts/out/LibStaking.sol/LibStakingReleaseQueue.json b/contracts/out/LibStaking.sol/LibStakingReleaseQueue.json deleted file mode 100644 index 6046a9c1ff..0000000000 --- a/contracts/out/LibStaking.sol/LibStakingReleaseQueue.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"NewCollateralRelease","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"releaseBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122048dc23512737243d46dfa0c5f6b5c0a1c89839d519c79517e8ccf4dd5cb85ca464736f6c63430008130033","sourceMap":"2665:1272:42:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122048dc23512737243d46dfa0c5f6b5c0a1c89839d519c79517e8ccf4dd5cb85ca464736f6c63430008130033","sourceMap":"2665:1272:42:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseBlock\",\"type\":\"uint256\"}],\"name\":\"NewCollateralRelease\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingReleaseQueue`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStakingReleaseQueue\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"releaseBlock","type":"uint256","indexed":false}],"type":"event","name":"NewCollateralRelease","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStakingReleaseQueue"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":13522,"exportedSymbols":{"Address":[1625],"AddressShouldBeValidator":[6051],"AddressStakingReleases":[16274],"CannotConfirmFutureChanges":[6055],"GatewayActorStorage":[11147],"IGateway":[8843],"InvalidConfigurationNumber":[6091],"LibAddressStakingReleases":[11618],"LibGatewayActorStorage":[11158],"LibMaxPQ":[15248],"LibMinPQ":[15867],"LibStaking":[13299],"LibStakingChangeLog":[13719],"LibStakingReleaseQueue":[11737],"LibSubnetActorStorage":[13850],"LibValidatorSet":[12589],"LibValidatorTracking":[13521],"MaxPQ":[14643],"MinPQ":[15261],"NoCollateralToWithdraw":[6121],"NoRewardToWithdraw":[6123],"NotValidator":[6163],"ParentValidatorsTracker":[16320],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingChangeRequest":[16244],"StakingOperation":[16230],"StakingRelease":[16264],"StakingReleaseQueue":[16284],"SubnetActorStorage":[13839],"Validator":[16334],"ValidatorSet":[16313],"WithdrawExceedingCollateral":[6183]},"nodeType":"SourceUnit","src":"46:25012:42","nodes":[{"id":11448,"nodeType":"PragmaDirective","src":"46:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11450,"nodeType":"ImportDirective","src":"71:52:42","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":8844,"symbolAliases":[{"foreign":{"id":11449,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"79:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11453,"nodeType":"ImportDirective","src":"124:86:42","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":11451,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"132:21:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11452,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"155:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11456,"nodeType":"ImportDirective","src":"211:94:42","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":11454,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"219:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11455,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"240:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11459,"nodeType":"ImportDirective","src":"306:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15249,"symbolAliases":[{"foreign":{"id":11457,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"314:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11458,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14643,"src":"324:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11462,"nodeType":"ImportDirective","src":"363:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15868,"symbolAliases":[{"foreign":{"id":11460,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"371:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11461,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"381:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11464,"nodeType":"ImportDirective","src":"420:62:42","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13720,"symbolAliases":[{"foreign":{"id":11463,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"428:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11475,"nodeType":"ImportDirective","src":"483:221:42","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11465,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"491:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11466,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"512:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11467,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"530:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11468,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"545:20:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"567:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11470,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"585:14:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11471,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"601:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11472,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16274,"src":"615:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11473,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"639:23:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11474,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"664:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11483,"nodeType":"ImportDirective","src":"705:208:42","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11476,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"713:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11477,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"733:27:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11478,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"762:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11479,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"776:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11480,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"804:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11481,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"828:24:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11482,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"854:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11485,"nodeType":"ImportDirective","src":"914:65:42","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":11484,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"922:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11618,"nodeType":"ContractDefinition","src":"981:1635:42","nodes":[{"id":11524,"nodeType":"FunctionDefinition","src":"1197:261:42","nodes":[],"body":{"id":11523,"nodeType":"Block","src":"1288:170:42","nodes":[],"statements":[{"assignments":[11496],"declarations":[{"constant":false,"id":11496,"mutability":"mutable","name":"length","nameLocation":"1305:6:42","nodeType":"VariableDeclaration","scope":11523,"src":"1298:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1298:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11499,"initialValue":{"expression":{"id":11497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1314:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1319:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1314:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1298:27:42"},{"assignments":[11501],"declarations":[{"constant":false,"id":11501,"mutability":"mutable","name":"nextIdx","nameLocation":"1342:7:42","nodeType":"VariableDeclaration","scope":11523,"src":"1335:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11500,"name":"uint16","nodeType":"ElementaryTypeName","src":"1335:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11506,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1352:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1357:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1352:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11504,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1368:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1352:22:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1335:39:42"},{"expression":{"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1385:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1390:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"1385:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11511,"indexExpression":{"id":11509,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"1399:7:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1385:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11512,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11492,"src":"1410:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1385:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"id":11514,"nodeType":"ExpressionStatement","src":"1385:32:42"},{"expression":{"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11515,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1427:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1432:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1427:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11518,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1441:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1441:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1427:24:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11522,"nodeType":"ExpressionStatement","src":"1427:24:42"}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"1021:171:42","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1206:4:42","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11489,"mutability":"mutable","name":"self","nameLocation":"1242:4:42","nodeType":"VariableDeclaration","scope":11524,"src":"1211:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11488,"nodeType":"UserDefinedTypeName","pathNode":{"id":11487,"name":"AddressStakingReleases","nameLocations":["1211:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1211:22:42"},"referencedDeclaration":16274,"src":"1211:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"release","nameLocation":"1270:7:42","nodeType":"VariableDeclaration","scope":11524,"src":"1248:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11491,"nodeType":"UserDefinedTypeName","pathNode":{"id":11490,"name":"StakingRelease","nameLocations":["1248:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"1248:14:42"},"referencedDeclaration":16264,"src":"1248:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1210:68:42"},"returnParameters":{"id":11494,"nodeType":"ParameterList","parameters":[],"src":"1288:0:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11617,"nodeType":"FunctionDefinition","src":"1716:898:42","nodes":[],"body":{"id":11616,"nodeType":"Block","src":"1805:809:42","nodes":[],"statements":[{"assignments":[11536],"declarations":[{"constant":false,"id":11536,"mutability":"mutable","name":"length","nameLocation":"1822:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"1815:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11535,"name":"uint16","nodeType":"ElementaryTypeName","src":"1815:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11539,"initialValue":{"expression":{"id":11537,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1831:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1831:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1815:27:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1856:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1861:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1856:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1871:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1856:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11548,"nodeType":"IfStatement","src":"1852:78:42","trueBody":{"id":11547,"nodeType":"Block","src":"1874:56:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11544,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1895:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"RevertStatement","src":"1888:31:42"}]}},{"assignments":[11550],"declarations":[{"constant":false,"id":11550,"mutability":"mutable","name":"i","nameLocation":"1947:1:42","nodeType":"VariableDeclaration","scope":11616,"src":"1940:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11549,"name":"uint16","nodeType":"ElementaryTypeName","src":"1940:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11553,"initialValue":{"expression":{"id":11551,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1951:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1956:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1951:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1940:24:42"},{"assignments":[11555],"declarations":[{"constant":false,"id":11555,"mutability":"mutable","name":"newLength","nameLocation":"1981:9:42","nodeType":"VariableDeclaration","scope":11616,"src":"1974:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1974:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11557,"initialValue":{"id":11556,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"1993:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1974:25:42"},{"assignments":[11559],"declarations":[{"constant":false,"id":11559,"mutability":"mutable","name":"amount","nameLocation":"2017:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"2009:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11560,"nodeType":"VariableDeclarationStatement","src":"2009:14:42"},{"body":{"id":11598,"nodeType":"Block","src":"2052:458:42","statements":[{"assignments":[11566],"declarations":[{"constant":false,"id":11566,"mutability":"mutable","name":"release","nameLocation":"2088:7:42","nodeType":"VariableDeclaration","scope":11598,"src":"2066:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11565,"nodeType":"UserDefinedTypeName","pathNode":{"id":11564,"name":"StakingRelease","nameLocations":["2066:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"2066:14:42"},"referencedDeclaration":16264,"src":"2066:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11571,"initialValue":{"baseExpression":{"expression":{"id":11567,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2103:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2098:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11570,"indexExpression":{"id":11569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2112:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2066:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11572,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2263:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2271:9:42","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":16260,"src":"2263:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":11574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2283:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2289:6:42","memberName":"number","nodeType":"MemberAccess","src":"2283:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2263:32:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11579,"nodeType":"IfStatement","src":"2259:76:42","trueBody":{"id":11578,"nodeType":"Block","src":"2297:38:42","statements":[{"id":11577,"nodeType":"Break","src":"2315:5:42"}]}},{"expression":{"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":11581,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2359:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2367:6:42","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":16263,"src":"2359:14:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2349:24:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11584,"nodeType":"ExpressionStatement","src":"2349:24:42"},{"expression":{"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2387:23:42","subExpression":{"baseExpression":{"expression":{"id":11585,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2394:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2394:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11588,"indexExpression":{"id":11587,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2408:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2394:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"2387:23:42"},{"id":11597,"nodeType":"UncheckedBlock","src":"2425:75:42","statements":[{"expression":{"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2453:3:42","subExpression":{"id":11591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2455:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11593,"nodeType":"ExpressionStatement","src":"2453:3:42"},{"expression":{"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2474:11:42","subExpression":{"id":11594,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2476:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11596,"nodeType":"ExpressionStatement","src":"2474:11:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2040:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11562,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"2044:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2040:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11599,"nodeType":"WhileStatement","src":"2033:477:42"},{"expression":{"id":11604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2520:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2525:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"2520:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2536:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2520:17:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11605,"nodeType":"ExpressionStatement","src":"2520:17:42"},{"expression":{"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11606,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2547:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2552:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"2547:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11609,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2561:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2547:23:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11611,"nodeType":"ExpressionStatement","src":"2547:23:42"},{"expression":{"components":[{"id":11612,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2589:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11613,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2597:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":11614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2588:19:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":11534,"id":11615,"nodeType":"Return","src":"2581:26:42"}]},"documentation":{"id":11525,"nodeType":"StructuredDocumentation","src":"1464:247:42","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1725:7:42","parameters":{"id":11529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11528,"mutability":"mutable","name":"self","nameLocation":"1764:4:42","nodeType":"VariableDeclaration","scope":11617,"src":"1733:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11527,"nodeType":"UserDefinedTypeName","pathNode":{"id":11526,"name":"AddressStakingReleases","nameLocations":["1733:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1733:22:42"},"referencedDeclaration":16274,"src":"1733:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1732:37:42"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1788:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1797:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11532,"name":"uint16","nodeType":"ElementaryTypeName","src":"1797:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1787:17:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11618],"name":"LibAddressStakingReleases","nameLocation":"989:25:42","scope":13522,"usedErrors":[]},{"id":11737,"nodeType":"ContractDefinition","src":"2665:1272:42","nodes":[{"id":11622,"nodeType":"UsingForDirective","src":"2702:34:42","nodes":[],"global":false,"libraryName":{"id":11620,"name":"Address","nameLocations":["2708:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"2708:7:42"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"2720:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11626,"nodeType":"UsingForDirective","src":"2741:59:42","nodes":[],"global":false,"libraryName":{"id":11623,"name":"LibAddressStakingReleases","nameLocations":["2747:25:42"],"nodeType":"IdentifierPath","referencedDeclaration":11618,"src":"2747:25:42"},"typeName":{"id":11625,"nodeType":"UserDefinedTypeName","pathNode":{"id":11624,"name":"AddressStakingReleases","nameLocations":["2777:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"2777:22:42"},"referencedDeclaration":16274,"src":"2777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":11634,"nodeType":"EventDefinition","src":"2806:84:42","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2812:20:42","parameters":{"id":11633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11628,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2841:9:42","nodeType":"VariableDeclaration","scope":11634,"src":"2833:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11627,"name":"address","nodeType":"ElementaryTypeName","src":"2833:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11630,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2860:6:42","nodeType":"VariableDeclaration","scope":11634,"src":"2852:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2852:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11632,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2876:12:42","nodeType":"VariableDeclaration","scope":11634,"src":"2868:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2868:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2832:57:42"}},{"id":11649,"nodeType":"FunctionDefinition","src":"2896:130:42","nodes":[],"body":{"id":11648,"nodeType":"Block","src":"2980:46:42","nodes":[],"statements":[{"expression":{"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"2990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2995:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"2990:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11645,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"3013:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11647,"nodeType":"ExpressionStatement","src":"2990:29:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2905:15:42","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11637,"mutability":"mutable","name":"self","nameLocation":"2949:4:42","nodeType":"VariableDeclaration","scope":11649,"src":"2921:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11636,"nodeType":"UserDefinedTypeName","pathNode":{"id":11635,"name":"StakingReleaseQueue","nameLocations":["2921:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2921:19:42"},"referencedDeclaration":16284,"src":"2921:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"blocks","nameLocation":"2963:6:42","nodeType":"VariableDeclaration","scope":11649,"src":"2955:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2920:50:42"},"returnParameters":{"id":11641,"nodeType":"ParameterList","parameters":[],"src":"2980:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11692,"nodeType":"FunctionDefinition","src":"3095:419:42","nodes":[],"body":{"id":11691,"nodeType":"Block","src":"3196:318:42","nodes":[],"statements":[{"assignments":[11661],"declarations":[{"constant":false,"id":11661,"mutability":"mutable","name":"releaseAt","nameLocation":"3214:9:42","nodeType":"VariableDeclaration","scope":11691,"src":"3206:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3206:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11667,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11662,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3226:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3232:6:42","memberName":"number","nodeType":"MemberAccess","src":"3226:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3241:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3246:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"3241:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3206:55:42"},{"assignments":[11670],"declarations":[{"constant":false,"id":11670,"mutability":"mutable","name":"release","nameLocation":"3293:7:42","nodeType":"VariableDeclaration","scope":11691,"src":"3271:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11669,"nodeType":"UserDefinedTypeName","pathNode":{"id":11668,"name":"StakingRelease","nameLocations":["3271:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"3271:14:42"},"referencedDeclaration":16264,"src":"3271:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11675,"initialValue":{"arguments":[{"id":11672,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3330:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11673,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11671,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"3303:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$16264_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3319:9:42","3341:6:42"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3303:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3271:86:42"},{"expression":{"arguments":[{"id":11682,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"3398:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":11676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3368:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11680,"indexExpression":{"id":11678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3382:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3368:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3393:4:42","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":11524,"src":"3368:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$_t_struct$_StakingRelease_$16264_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"3368:38:42"},{"eventCall":{"arguments":[{"id":11686,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3455:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3474:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11688,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3496:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11685,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11634,"src":"3422:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3444:9:42","3466:6:42","3482:12:42"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3422:85:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11690,"nodeType":"EmitStatement","src":"3417:90:42"}]},"documentation":{"id":11650,"nodeType":"StructuredDocumentation","src":"3032:58:42","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3104:13:42","parameters":{"id":11658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11653,"mutability":"mutable","name":"self","nameLocation":"3146:4:42","nodeType":"VariableDeclaration","scope":11692,"src":"3118:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11652,"nodeType":"UserDefinedTypeName","pathNode":{"id":11651,"name":"StakingReleaseQueue","nameLocations":["3118:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3118:19:42"},"referencedDeclaration":16284,"src":"3118:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11655,"mutability":"mutable","name":"validator","nameLocation":"3160:9:42","nodeType":"VariableDeclaration","scope":11692,"src":"3152:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11654,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11657,"mutability":"mutable","name":"amount","nameLocation":"3179:6:42","nodeType":"VariableDeclaration","scope":11692,"src":"3171:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11656,"name":"uint256","nodeType":"ElementaryTypeName","src":"3171:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3117:69:42"},"returnParameters":{"id":11659,"nodeType":"ParameterList","parameters":[],"src":"3196:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11736,"nodeType":"FunctionDefinition","src":"3595:340:42","nodes":[],"body":{"id":11735,"nodeType":"Block","src":"3690:245:42","nodes":[],"statements":[{"assignments":[11704,11706],"declarations":[{"constant":false,"id":11704,"mutability":"mutable","name":"amount","nameLocation":"3709:6:42","nodeType":"VariableDeclaration","scope":11735,"src":"3701:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11703,"name":"uint256","nodeType":"ElementaryTypeName","src":"3701:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"newLength","nameLocation":"3724:9:42","nodeType":"VariableDeclaration","scope":11735,"src":"3717:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11705,"name":"uint16","nodeType":"ElementaryTypeName","src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11713,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":11707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3737:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3737:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11710,"indexExpression":{"id":11709,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3751:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3762:7:42","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":11617,"src":"3737:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3700:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11714,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"3786:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3799:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3786:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11724,"nodeType":"IfStatement","src":"3782:76:42","trueBody":{"id":11723,"nodeType":"Block","src":"3802:56:42","statements":[{"expression":{"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3816:31:42","subExpression":{"baseExpression":{"expression":{"id":11717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3823:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3828:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3823:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11720,"indexExpression":{"id":11719,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3837:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3823:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11722,"nodeType":"ExpressionStatement","src":"3816:31:42"}]}},{"expression":{"arguments":[{"id":11730,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3897:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11727,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3876:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11725,"name":"address","nodeType":"ElementaryTypeName","src":"3868:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"3868:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11732,"nodeType":"ExpressionStatement","src":"3868:36:42"},{"expression":{"id":11733,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3922:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11702,"id":11734,"nodeType":"Return","src":"3915:13:42"}]},"documentation":{"id":11693,"nodeType":"StructuredDocumentation","src":"3520:70:42","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3604:5:42","parameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"self","nameLocation":"3638:4:42","nodeType":"VariableDeclaration","scope":11736,"src":"3610:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11695,"nodeType":"UserDefinedTypeName","pathNode":{"id":11694,"name":"StakingReleaseQueue","nameLocations":["3610:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3610:19:42"},"referencedDeclaration":16284,"src":"3610:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11698,"mutability":"mutable","name":"validator","nameLocation":"3652:9:42","nodeType":"VariableDeclaration","scope":11736,"src":"3644:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11697,"name":"address","nodeType":"ElementaryTypeName","src":"3644:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3609:53:42"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11736,"src":"3681:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3681:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3680:9:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":11619,"nodeType":"StructuredDocumentation","src":"2618:47:42","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[11737],"name":"LibStakingReleaseQueue","nameLocation":"2673:22:42","scope":13522,"usedErrors":[]},{"id":12589,"nodeType":"ContractDefinition","src":"3979:9952:42","nodes":[{"id":11742,"nodeType":"UsingForDirective","src":"4009:25:42","nodes":[],"global":false,"libraryName":{"id":11739,"name":"LibMinPQ","nameLocations":["4015:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"4015:8:42"},"typeName":{"id":11741,"nodeType":"UserDefinedTypeName","pathNode":{"id":11740,"name":"MinPQ","nameLocations":["4028:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4028:5:42"},"referencedDeclaration":15261,"src":"4028:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":11746,"nodeType":"UsingForDirective","src":"4039:25:42","nodes":[],"global":false,"libraryName":{"id":11743,"name":"LibMaxPQ","nameLocations":["4045:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"4045:8:42"},"typeName":{"id":11745,"nodeType":"UserDefinedTypeName","pathNode":{"id":11744,"name":"MaxPQ","nameLocations":["4058:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4058:5:42"},"referencedDeclaration":14643,"src":"4058:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":11752,"nodeType":"EventDefinition","src":"4070:81:42","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"4076:32:42","parameters":{"id":11751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11748,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4117:9:42","nodeType":"VariableDeclaration","scope":11752,"src":"4109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11747,"name":"address","nodeType":"ElementaryTypeName","src":"4109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11750,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4136:13:42","nodeType":"VariableDeclaration","scope":11752,"src":"4128:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4108:42:42"}},{"id":11758,"nodeType":"EventDefinition","src":"4156:82:42","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4162:33:42","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11754,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4204:9:42","nodeType":"VariableDeclaration","scope":11758,"src":"4196:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11753,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11756,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4223:13:42","nodeType":"VariableDeclaration","scope":11758,"src":"4215:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4195:42:42"}},{"id":11764,"nodeType":"EventDefinition","src":"4243:64:42","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4249:18:42","parameters":{"id":11763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11760,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4276:9:42","nodeType":"VariableDeclaration","scope":11764,"src":"4268:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11759,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11762,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4295:10:42","nodeType":"VariableDeclaration","scope":11764,"src":"4287:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4267:39:42"}},{"id":11770,"nodeType":"EventDefinition","src":"4312:65:42","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4318:19:42","parameters":{"id":11769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11766,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4346:9:42","nodeType":"VariableDeclaration","scope":11770,"src":"4338:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11765,"name":"address","nodeType":"ElementaryTypeName","src":"4338:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11768,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4365:10:42","nodeType":"VariableDeclaration","scope":11770,"src":"4357:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11767,"name":"uint256","nodeType":"ElementaryTypeName","src":"4357:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4337:39:42"}},{"id":11776,"nodeType":"EventDefinition","src":"4382:74:42","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4388:23:42","parameters":{"id":11775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11772,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4420:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4412:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11771,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11774,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4442:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4434:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11773,"name":"address","nodeType":"ElementaryTypeName","src":"4434:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4411:44:42"}},{"id":11780,"nodeType":"EventDefinition","src":"4461:45:42","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4467:19:42","parameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4495:9:42","nodeType":"VariableDeclaration","scope":11780,"src":"4487:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11777,"name":"address","nodeType":"ElementaryTypeName","src":"4487:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4486:19:42"}},{"id":11784,"nodeType":"EventDefinition","src":"4511:46:42","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4517:20:42","parameters":{"id":11783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4546:9:42","nodeType":"VariableDeclaration","scope":11784,"src":"4538:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11781,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4537:19:42"}},{"id":11799,"nodeType":"FunctionDefinition","src":"4633:178:42","nodes":[],"body":{"id":11798,"nodeType":"Block","src":"4746:65:42","nodes":[],"statements":[{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11793,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11791,"src":"4756:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11794,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"4769:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4780:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"4769:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4756:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"4756:48:42"}]},"documentation":{"id":11785,"nodeType":"StructuredDocumentation","src":"4563:65:42","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4642:27:42","parameters":{"id":11789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11788,"mutability":"mutable","name":"validators","nameLocation":"4691:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4670:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11787,"nodeType":"UserDefinedTypeName","pathNode":{"id":11786,"name":"ValidatorSet","nameLocations":["4670:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4670:12:42"},"referencedDeclaration":16313,"src":"4670:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4669:33:42"},"returnParameters":{"id":11792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11791,"mutability":"mutable","name":"collateral","nameLocation":"4734:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4726:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11790,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4725:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11816,"nodeType":"FunctionDefinition","src":"4866:163:42","nodes":[],"body":{"id":11815,"nodeType":"Block","src":"4967:62:42","nodes":[],"statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11808,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11806,"src":"4977:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11809,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"4985:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4996:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"4985:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5013:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"4985:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4985:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4977:45:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11814,"nodeType":"ExpressionStatement","src":"4977:45:42"}]},"documentation":{"id":11800,"nodeType":"StructuredDocumentation","src":"4817:44:42","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"4875:21:42","parameters":{"id":11804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"validators","nameLocation":"4918:10:42","nodeType":"VariableDeclaration","scope":11816,"src":"4897:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11802,"nodeType":"UserDefinedTypeName","pathNode":{"id":11801,"name":"ValidatorSet","nameLocations":["4897:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4897:12:42"},"referencedDeclaration":16313,"src":"4897:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4896:33:42"},"returnParameters":{"id":11807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11806,"mutability":"mutable","name":"total","nameLocation":"4960:5:42","nodeType":"VariableDeclaration","scope":11816,"src":"4953:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11805,"name":"uint16","nodeType":"ElementaryTypeName","src":"4953:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4952:14:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11836,"nodeType":"FunctionDefinition","src":"5098:231:42","nodes":[],"body":{"id":11835,"nodeType":"Block","src":"5247:82:42","nodes":[],"statements":[{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11825,"src":"5257:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"5270:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5281:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"5270:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11831,"indexExpression":{"id":11830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5292:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5270:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"5270:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5257:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11834,"nodeType":"ExpressionStatement","src":"5257:65:42"}]},"documentation":{"id":11817,"nodeType":"StructuredDocumentation","src":"5035:58:42","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5107:22:42","parameters":{"id":11823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11820,"mutability":"mutable","name":"validators","nameLocation":"5160:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5139:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11819,"nodeType":"UserDefinedTypeName","pathNode":{"id":11818,"name":"ValidatorSet","nameLocations":["5139:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5139:12:42"},"referencedDeclaration":16313,"src":"5139:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"validator","nameLocation":"5188:9:42","nodeType":"VariableDeclaration","scope":11836,"src":"5180:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5129:74:42"},"returnParameters":{"id":11826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11825,"mutability":"mutable","name":"collateral","nameLocation":"5235:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5227:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5227:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5226:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11888,"nodeType":"FunctionDefinition","src":"5335:434:42","nodes":[],"body":{"id":11887,"nodeType":"Block","src":"5449:320:42","nodes":[],"statements":[{"assignments":[11846],"declarations":[{"constant":false,"id":11846,"mutability":"mutable","name":"size","nameLocation":"5466:4:42","nodeType":"VariableDeclaration","scope":11887,"src":"5459:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11845,"name":"uint16","nodeType":"ElementaryTypeName","src":"5459:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11847,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5473:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5484:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5473:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5501:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5473:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5473:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5459:51:42"},{"expression":{"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11852,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5520:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5546:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":11855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5532:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":11853,"name":"address","nodeType":"ElementaryTypeName","src":"5536:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11854,"nodeType":"ArrayTypeName","src":"5536:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5520:31:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11859,"nodeType":"ExpressionStatement","src":"5520:31:42"},{"body":{"id":11883,"nodeType":"Block","src":"5593:144:42","statements":[{"expression":{"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11867,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5607:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11871,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5617:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5621:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5617:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5607:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5665:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5626:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5637:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5626:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5654:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"5626:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5607:60:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11878,"nodeType":"ExpressionStatement","src":"5607:60:42"},{"id":11882,"nodeType":"UncheckedBlock","src":"5681:46:42","statements":[{"expression":{"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5709:3:42","subExpression":{"id":11879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5711:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11881,"nodeType":"ExpressionStatement","src":"5709:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5580:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11865,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5585:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5580:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11884,"initializationExpression":{"assignments":[11861],"declarations":[{"constant":false,"id":11861,"mutability":"mutable","name":"i","nameLocation":"5573:1:42","nodeType":"VariableDeclaration","scope":11884,"src":"5566:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5566:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11863,"initialValue":{"hexValue":"31","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5577:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5566:12:42"},"nodeType":"ForStatement","src":"5561:176:42"},{"expression":{"id":11885,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5753:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11844,"id":11886,"nodeType":"Return","src":"5746:16:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5344:20:42","parameters":{"id":11840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11839,"mutability":"mutable","name":"validators","nameLocation":"5386:10:42","nodeType":"VariableDeclaration","scope":11888,"src":"5365:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11838,"nodeType":"UserDefinedTypeName","pathNode":{"id":11837,"name":"ValidatorSet","nameLocations":["5365:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5365:12:42"},"referencedDeclaration":16313,"src":"5365:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5364:33:42"},"returnParameters":{"id":11844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11843,"mutability":"mutable","name":"addresses","nameLocation":"5438:9:42","nodeType":"VariableDeclaration","scope":11888,"src":"5421:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11841,"name":"address","nodeType":"ElementaryTypeName","src":"5421:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11842,"nodeType":"ArrayTypeName","src":"5421:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5420:28:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11933,"nodeType":"FunctionDefinition","src":"5840:432:42","nodes":[],"body":{"id":11932,"nodeType":"Block","src":"5945:327:42","nodes":[],"statements":[{"assignments":[11898],"declarations":[{"constant":false,"id":11898,"mutability":"mutable","name":"size","nameLocation":"5962:4:42","nodeType":"VariableDeclaration","scope":11932,"src":"5955:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11897,"name":"uint16","nodeType":"ElementaryTypeName","src":"5955:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11899,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"5969:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5969:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5969:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5955:51:42"},{"body":{"id":11930,"nodeType":"Block","src":"6048:218:42","statements":[{"assignments":[11912],"declarations":[{"constant":false,"id":11912,"mutability":"mutable","name":"validator","nameLocation":"6070:9:42","nodeType":"VariableDeclaration","scope":11930,"src":"6062:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11911,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11918,"initialValue":{"arguments":[{"id":11916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6121:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6082:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6093:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"6082:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6110:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"6082:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6062:61:42"},{"expression":{"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11919,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"6137:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":11921,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6174:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":11922,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"6186:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11920,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"6151:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6151:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:59:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11925,"nodeType":"ExpressionStatement","src":"6137:59:42"},{"id":11929,"nodeType":"UncheckedBlock","src":"6210:46:42","statements":[{"expression":{"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6238:3:42","subExpression":{"id":11926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6240:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11928,"nodeType":"ExpressionStatement","src":"6238:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6035:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11909,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"6040:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6035:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11931,"initializationExpression":{"assignments":[11905],"declarations":[{"constant":false,"id":11905,"mutability":"mutable","name":"i","nameLocation":"6028:1:42","nodeType":"VariableDeclaration","scope":11931,"src":"6021:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11904,"name":"uint16","nodeType":"ElementaryTypeName","src":"6021:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11907,"initialValue":{"hexValue":"31","id":11906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6032:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6021:12:42"},"nodeType":"ForStatement","src":"6016:250:42"}]},"documentation":{"id":11889,"nodeType":"StructuredDocumentation","src":"5775:60:42","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getActiveCollateral","nameLocation":"5849:19:42","parameters":{"id":11893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11892,"mutability":"mutable","name":"validators","nameLocation":"5890:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5869:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11891,"nodeType":"UserDefinedTypeName","pathNode":{"id":11890,"name":"ValidatorSet","nameLocations":["5869:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5869:12:42"},"referencedDeclaration":16313,"src":"5869:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5868:33:42"},"returnParameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"collateral","nameLocation":"5933:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5925:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5924:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12004,"nodeType":"FunctionDefinition","src":"6434:634:42","nodes":[],"body":{"id":12003,"nodeType":"Block","src":"6591:477:42","nodes":[],"statements":[{"assignments":[11947],"declarations":[{"constant":false,"id":11947,"mutability":"mutable","name":"size","nameLocation":"6609:4:42","nodeType":"VariableDeclaration","scope":12003,"src":"6601:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11950,"initialValue":{"expression":{"id":11948,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6616:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6626:6:42","memberName":"length","nodeType":"MemberAccess","src":"6616:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6601:31:42"},{"assignments":[11955],"declarations":[{"constant":false,"id":11955,"mutability":"mutable","name":"activeCollaterals","nameLocation":"6659:17:42","nodeType":"VariableDeclaration","scope":12003,"src":"6642:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11954,"nodeType":"ArrayTypeName","src":"6642:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11961,"initialValue":{"arguments":[{"id":11959,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6693:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6679:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6683:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11957,"nodeType":"ArrayTypeName","src":"6683:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6642:56:42"},{"body":{"id":11999,"nodeType":"Block","src":"6737:291:42","statements":[{"condition":{"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6755:44:42","subExpression":{"arguments":[{"id":11969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6774:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":11970,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6786:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11972,"indexExpression":{"id":11971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6796:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6786:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11968,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"6756:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6756:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11982,"nodeType":"IfStatement","src":"6751:116:42","trueBody":{"id":11981,"nodeType":"Block","src":"6801:66:42","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":11976,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6839:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11978,"indexExpression":{"id":11977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6849:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6839:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11975,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"6826:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11980,"nodeType":"RevertStatement","src":"6819:33:42"}]}},{"expression":{"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11983,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"6880:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11985,"indexExpression":{"id":11984,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6898:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6880:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11986,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6903:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6914:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"6903:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11991,"indexExpression":{"baseExpression":{"id":11988,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6925:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11990,"indexExpression":{"id":11989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6935:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6925:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6903:35:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6939:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"6903:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:78:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11994,"nodeType":"ExpressionStatement","src":"6880:78:42"},{"id":11998,"nodeType":"UncheckedBlock","src":"6972:46:42","statements":[{"expression":{"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7000:3:42","subExpression":{"id":11995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"7002:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11997,"nodeType":"ExpressionStatement","src":"7000:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6725:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11966,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6729:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6725:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12000,"initializationExpression":{"assignments":[11963],"declarations":[{"constant":false,"id":11963,"mutability":"mutable","name":"i","nameLocation":"6722:1:42","nodeType":"VariableDeclaration","scope":12000,"src":"6714:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11964,"nodeType":"VariableDeclarationStatement","src":"6714:9:42"},"nodeType":"ForStatement","src":"6709:319:42"},{"expression":{"id":12001,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"7044:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11945,"id":12002,"nodeType":"Return","src":"7037:24:42"}]},"documentation":{"id":11934,"nodeType":"StructuredDocumentation","src":"6278:151:42","text":"@notice Get the confirmed collaterals of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollaterals","nameLocation":"6443:23:42","parameters":{"id":11941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11937,"mutability":"mutable","name":"validators","nameLocation":"6497:10:42","nodeType":"VariableDeclaration","scope":12004,"src":"6476:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11936,"nodeType":"UserDefinedTypeName","pathNode":{"id":11935,"name":"ValidatorSet","nameLocations":["6476:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6476:12:42"},"referencedDeclaration":16313,"src":"6476:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11940,"mutability":"mutable","name":"addresses","nameLocation":"6534:9:42","nodeType":"VariableDeclaration","scope":12004,"src":"6517:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"6517:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11939,"nodeType":"ArrayTypeName","src":"6517:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6466:83:42"},"returnParameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12004,"src":"6573:16:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6573:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11943,"nodeType":"ArrayTypeName","src":"6573:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6572:18:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12021,"nodeType":"FunctionDefinition","src":"7074:167:42","nodes":[],"body":{"id":12020,"nodeType":"Block","src":"7176:65:42","nodes":[],"statements":[{"expression":{"arguments":[{"id":12017,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"7224:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"7193:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7198:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"7193:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"7193:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7193:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12013,"id":12019,"nodeType":"Return","src":"7186:48:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7083:17:42","parameters":{"id":12010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12007,"mutability":"mutable","name":"self","nameLocation":"7122:4:42","nodeType":"VariableDeclaration","scope":12021,"src":"7101:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12006,"nodeType":"UserDefinedTypeName","pathNode":{"id":12005,"name":"ValidatorSet","nameLocations":["7101:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7101:12:42"},"referencedDeclaration":16313,"src":"7101:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12009,"mutability":"mutable","name":"validator","nameLocation":"7136:9:42","nodeType":"VariableDeclaration","scope":12021,"src":"7128:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12008,"name":"address","nodeType":"ElementaryTypeName","src":"7128:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7100:46:42"},"returnParameters":{"id":12013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12021,"src":"7170:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12011,"name":"bool","nodeType":"ElementaryTypeName","src":"7170:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7169:6:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12042,"nodeType":"FunctionDefinition","src":"7282:176:42","nodes":[],"body":{"id":12041,"nodeType":"Block","src":"7389:69:42","nodes":[],"statements":[{"expression":{"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12032,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"7399:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7410:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7399:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12036,"indexExpression":{"id":12034,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12027,"src":"7421:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7399:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7432:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"7399:41:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"7443:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7399:52:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":12040,"nodeType":"ExpressionStatement","src":"7399:52:42"}]},"documentation":{"id":12022,"nodeType":"StructuredDocumentation","src":"7247:30:42","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"7291:11:42","parameters":{"id":12030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12025,"mutability":"mutable","name":"validators","nameLocation":"7324:10:42","nodeType":"VariableDeclaration","scope":12042,"src":"7303:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12024,"nodeType":"UserDefinedTypeName","pathNode":{"id":12023,"name":"ValidatorSet","nameLocations":["7303:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7303:12:42"},"referencedDeclaration":16313,"src":"7303:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12027,"mutability":"mutable","name":"validator","nameLocation":"7344:9:42","nodeType":"VariableDeclaration","scope":12042,"src":"7336:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12026,"name":"address","nodeType":"ElementaryTypeName","src":"7336:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12029,"mutability":"mutable","name":"metadata","nameLocation":"7370:8:42","nodeType":"VariableDeclaration","scope":12042,"src":"7355:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12028,"name":"bytes","nodeType":"ElementaryTypeName","src":"7355:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7302:77:42"},"returnParameters":{"id":12031,"nodeType":"ParameterList","parameters":[],"src":"7389:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12063,"nodeType":"FunctionDefinition","src":"7765:175:42","nodes":[],"body":{"id":12062,"nodeType":"Block","src":"7865:75:42","nodes":[],"statements":[{"expression":{"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12053,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"7875:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7886:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7875:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12057,"indexExpression":{"id":12055,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12048,"src":"7897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7875:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7908:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"7875:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"7927:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7875:58:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12061,"nodeType":"ExpressionStatement","src":"7875:58:42"}]},"documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"7697:63:42","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"7774:13:42","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12046,"mutability":"mutable","name":"validators","nameLocation":"7809:10:42","nodeType":"VariableDeclaration","scope":12063,"src":"7788:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"ValidatorSet","nameLocations":["7788:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7788:12:42"},"referencedDeclaration":16313,"src":"7788:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12048,"mutability":"mutable","name":"validator","nameLocation":"7829:9:42","nodeType":"VariableDeclaration","scope":12063,"src":"7821:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"7821:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12050,"mutability":"mutable","name":"amount","nameLocation":"7848:6:42","nodeType":"VariableDeclaration","scope":12063,"src":"7840:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12049,"name":"uint256","nodeType":"ElementaryTypeName","src":"7840:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7787:68:42"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"7865:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12104,"nodeType":"FunctionDefinition","src":"8012:364:42","nodes":[],"body":{"id":12103,"nodeType":"Block","src":"8113:263:42","nodes":[],"statements":[{"assignments":[12075],"declarations":[{"constant":false,"id":12075,"mutability":"mutable","name":"total","nameLocation":"8131:5:42","nodeType":"VariableDeclaration","scope":12103,"src":"8123:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12074,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12081,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12076,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8139:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8150:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8139:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12079,"indexExpression":{"id":12078,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8139:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8172:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8139:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8123:64:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12082,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8201:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12083,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8209:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12089,"nodeType":"IfStatement","src":"8197:81:42","trueBody":{"id":12088,"nodeType":"Block","src":"8217:61:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12085,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"8238:27:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8238:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12087,"nodeType":"RevertStatement","src":"8231:36:42"}]}},{"expression":{"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12090,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8288:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12091,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8297:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8288:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12093,"nodeType":"ExpressionStatement","src":"8288:15:42"},{"expression":{"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12094,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8313:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8313:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12098,"indexExpression":{"id":12096,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8335:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8346:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8313:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12100,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8364:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8313:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"8313:56:42"}]},"documentation":{"id":12064,"nodeType":"StructuredDocumentation","src":"7946:61:42","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8021:14:42","parameters":{"id":12072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12067,"mutability":"mutable","name":"validators","nameLocation":"8057:10:42","nodeType":"VariableDeclaration","scope":12104,"src":"8036:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12066,"nodeType":"UserDefinedTypeName","pathNode":{"id":12065,"name":"ValidatorSet","nameLocations":["8036:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8036:12:42"},"referencedDeclaration":16313,"src":"8036:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12069,"mutability":"mutable","name":"validator","nameLocation":"8077:9:42","nodeType":"VariableDeclaration","scope":12104,"src":"8069:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"8069:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12071,"mutability":"mutable","name":"amount","nameLocation":"8096:6:42","nodeType":"VariableDeclaration","scope":12104,"src":"8088:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12070,"name":"uint256","nodeType":"ElementaryTypeName","src":"8088:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8035:68:42"},"returnParameters":{"id":12073,"nodeType":"ParameterList","parameters":[],"src":"8113:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12146,"nodeType":"FunctionDefinition","src":"8382:408:42","nodes":[],"body":{"id":12145,"nodeType":"Block","src":"8477:313:42","nodes":[],"statements":[{"assignments":[12115],"declarations":[{"constant":false,"id":12115,"mutability":"mutable","name":"newCollateral","nameLocation":"8495:13:42","nodeType":"VariableDeclaration","scope":12145,"src":"8487:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8511:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8516:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8511:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12119,"indexExpression":{"id":12118,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8527:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8538:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8511:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8560:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8487:79:42"},{"expression":{"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8576:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8581:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8576:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12128,"indexExpression":{"id":12126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8592:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8576:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8603:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8576:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12130,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8625:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8576:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12132,"nodeType":"ExpressionStatement","src":"8576:62:42"},{"expression":{"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8649:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8654:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"8649:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8682:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8649:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12138,"nodeType":"ExpressionStatement","src":"8649:39:42"},{"expression":{"arguments":[{"id":12140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8723:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12141,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8742:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12142,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8768:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12139,"name":"depositReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"8699:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8717:4:42","8729:11:42","8753:13:42"],"names":["self","maybeActive","newCollateral"],"nodeType":"FunctionCall","src":"8699:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"8699:84:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"8391:14:42","parameters":{"id":12112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12107,"mutability":"mutable","name":"self","nameLocation":"8427:4:42","nodeType":"VariableDeclaration","scope":12146,"src":"8406:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12106,"nodeType":"UserDefinedTypeName","pathNode":{"id":12105,"name":"ValidatorSet","nameLocations":["8406:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8406:12:42"},"referencedDeclaration":16313,"src":"8406:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12109,"mutability":"mutable","name":"validator","nameLocation":"8441:9:42","nodeType":"VariableDeclaration","scope":12146,"src":"8433:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12108,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12111,"mutability":"mutable","name":"amount","nameLocation":"8460:6:42","nodeType":"VariableDeclaration","scope":12146,"src":"8452:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12110,"name":"uint256","nodeType":"ElementaryTypeName","src":"8452:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8405:62:42"},"returnParameters":{"id":12113,"nodeType":"ParameterList","parameters":[],"src":"8477:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12212,"nodeType":"FunctionDefinition","src":"8796:623:42","nodes":[],"body":{"id":12211,"nodeType":"Block","src":"8892:527:42","nodes":[],"statements":[{"assignments":[12157],"declarations":[{"constant":false,"id":12157,"mutability":"mutable","name":"newCollateral","nameLocation":"8910:13:42","nodeType":"VariableDeclaration","scope":12211,"src":"8902:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12156,"name":"uint256","nodeType":"ElementaryTypeName","src":"8902:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"8926:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8931:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8926:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12161,"indexExpression":{"id":12160,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"8942:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8926:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8953:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8926:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12163,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"8975:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8926:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8902:79:42"},{"assignments":[12167],"declarations":[{"constant":false,"id":12167,"mutability":"mutable","name":"totalCollateral","nameLocation":"8999:15:42","nodeType":"VariableDeclaration","scope":12211,"src":"8991:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12166,"name":"uint256","nodeType":"ElementaryTypeName","src":"8991:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12173,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9017:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9022:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9017:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12171,"indexExpression":{"id":12170,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9033:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9017:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9044:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"9017:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8991:68:42"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12174,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9074:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12177,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"9096:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9096:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9074:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12197,"nodeType":"Block","src":"9182:87:42","statements":[{"expression":{"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9196:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9201:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9196:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12192,"indexExpression":{"id":12190,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9212:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9223:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"9196:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12194,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9245:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12196,"nodeType":"ExpressionStatement","src":"9196:62:42"}]},"id":12198,"nodeType":"IfStatement","src":"9070:199:42","trueBody":{"id":12187,"nodeType":"Block","src":"9118:58:42","statements":[{"expression":{"id":12185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9132:33:42","subExpression":{"baseExpression":{"expression":{"id":12181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9139:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9144:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9139:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12184,"indexExpression":{"id":12183,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9155:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9139:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12186,"nodeType":"ExpressionStatement","src":"9132:33:42"}]}},{"expression":{"arguments":[{"id":12200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9304:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12201,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9321:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12202,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9347:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12199,"name":"withdrawReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12588,"src":"9279:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9298:4:42","9310:9:42","9332:13:42"],"names":["self","validator","newCollateral"],"nodeType":"FunctionCall","src":"9279:83:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12204,"nodeType":"ExpressionStatement","src":"9279:83:42"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9373:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9378:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"9373:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"9406:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9373:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12210,"nodeType":"ExpressionStatement","src":"9373:39:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"8805:15:42","parameters":{"id":12154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"mutability":"mutable","name":"self","nameLocation":"8842:4:42","nodeType":"VariableDeclaration","scope":12212,"src":"8821:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12148,"nodeType":"UserDefinedTypeName","pathNode":{"id":12147,"name":"ValidatorSet","nameLocations":["8821:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8821:12:42"},"referencedDeclaration":16313,"src":"8821:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12151,"mutability":"mutable","name":"validator","nameLocation":"8856:9:42","nodeType":"VariableDeclaration","scope":12212,"src":"8848:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12150,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12153,"mutability":"mutable","name":"amount","nameLocation":"8875:6:42","nodeType":"VariableDeclaration","scope":12212,"src":"8867:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:62:42"},"returnParameters":{"id":12155,"nodeType":"ParameterList","parameters":[],"src":"8892:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12377,"nodeType":"FunctionDefinition","src":"9514:2248:42","nodes":[],"body":{"id":12376,"nodeType":"Block","src":"9620:2142:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12226,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9665:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12223,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"9634:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12244,"nodeType":"IfStatement","src":"9630:231:42","trueBody":{"id":12243,"nodeType":"Block","src":"9679:182:42","statements":[{"expression":{"arguments":[{"id":12233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9733:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12234,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9739:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9693:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9693:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9715:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15574,"src":"9693:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"9693:58:42"},{"eventCall":{"arguments":[{"id":12238,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9803:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12239,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"9816:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12237,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"9770:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9770:60:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12241,"nodeType":"EmitStatement","src":"9765:65:42"},{"functionReturnParameters":12222,"id":12242,"nodeType":"Return","src":"9844:7:42"}]}},{"assignments":[12246],"declarations":[{"constant":false,"id":12246,"mutability":"mutable","name":"activeLimit","nameLocation":"9930:11:42","nodeType":"VariableDeclaration","scope":12376,"src":"9923:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12245,"name":"uint16","nodeType":"ElementaryTypeName","src":"9923:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12249,"initialValue":{"expression":{"id":12247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9944:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:11:42","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"9944:16:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9923:37:42"},{"assignments":[12251],"declarations":[{"constant":false,"id":12251,"mutability":"mutable","name":"activeSize","nameLocation":"9977:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"9970:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12250,"name":"uint16","nodeType":"ElementaryTypeName","src":"9970:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9995:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9990:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10012:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"9990:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9970:51:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12257,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"10035:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12258,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12251,"src":"10049:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10035:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12276,"nodeType":"IfStatement","src":"10031:267:42","trueBody":{"id":12275,"nodeType":"Block","src":"10061:237:42","statements":[{"expression":{"arguments":[{"id":12265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12266,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10190:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10155:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10160:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10155:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10177:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"10155:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10155:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12268,"nodeType":"ExpressionStatement","src":"10155:47:42"},{"eventCall":{"arguments":[{"id":12270,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10240:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12271,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10253:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12269,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"10221:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12273,"nodeType":"EmitStatement","src":"10216:51:42"},{"functionReturnParameters":12222,"id":12274,"nodeType":"Return","src":"10281:7:42"}]}},{"assignments":[12278,12280],"declarations":[{"constant":false,"id":12278,"mutability":"mutable","name":"minAddress","nameLocation":"10845:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"10837:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12277,"name":"address","nodeType":"ElementaryTypeName","src":"10837:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12280,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"10865:19:42","nodeType":"VariableDeclaration","scope":12376,"src":"10857:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12279,"name":"uint256","nodeType":"ElementaryTypeName","src":"10857:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12286,"initialValue":{"arguments":[{"id":12284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10914:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10888:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10888:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10910:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"10888:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10888:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10836:83:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12287,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"10933:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12288,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10955:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10933:35:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12339,"nodeType":"IfStatement","src":"10929:462:42","trueBody":{"id":12338,"nodeType":"Block","src":"10970:421:42","statements":[{"expression":{"arguments":[{"id":12295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11010:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10984:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10989:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10984:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11006:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"10984:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10984:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12297,"nodeType":"ExpressionStatement","src":"10984:31:42"},{"condition":{"arguments":[{"id":12301,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11066:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12298,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11034:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11039:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11034:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11057:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11034:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11034:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12313,"nodeType":"IfStatement","src":"11030:140:42","trueBody":{"id":12312,"nodeType":"Block","src":"11080:90:42","statements":[{"expression":{"arguments":[{"id":12308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12309,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11143:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11103:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11098:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11121:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"11098:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11098:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12311,"nodeType":"ExpressionStatement","src":"11098:57:42"}]}},{"expression":{"arguments":[{"id":12319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11213:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12320,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11219:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12314,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11189:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"11184:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"11184:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12322,"nodeType":"ExpressionStatement","src":"11184:47:42"},{"expression":{"arguments":[{"id":12328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11275:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12329,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11281:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11245:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11250:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11245:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11268:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11245:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11245:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12331,"nodeType":"ExpressionStatement","src":"11245:47:42"},{"eventCall":{"arguments":[{"id":12333,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11336:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12334,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11348:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12332,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"11312:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11312:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12336,"nodeType":"EmitStatement","src":"11307:53:42"},{"functionReturnParameters":12222,"id":12337,"nodeType":"Return","src":"11374:7:42"}]}},{"condition":{"arguments":[{"id":12343,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11437:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12340,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11405:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11410:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11405:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11428:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11405:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11405:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12361,"nodeType":"IfStatement","src":"11401:234:42","trueBody":{"id":12360,"nodeType":"Block","src":"11451:184:42","statements":[{"expression":{"arguments":[{"id":12350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11506:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12351,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11512:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11465:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11470:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11465:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11488:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"11465:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11465:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12353,"nodeType":"ExpressionStatement","src":"11465:59:42"},{"eventCall":{"arguments":[{"id":12355,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11577:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12356,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11590:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12354,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"11543:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:61:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12358,"nodeType":"EmitStatement","src":"11538:66:42"},{"functionReturnParameters":12222,"id":12359,"nodeType":"Return","src":"11618:7:42"}]}},{"expression":{"arguments":[{"id":12367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11675:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12368,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11681:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12362,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11645:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11650:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11645:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11668:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11645:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11645:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12370,"nodeType":"ExpressionStatement","src":"11645:48:42"},{"eventCall":{"arguments":[{"id":12372,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11728:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12373,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11741:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12371,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"11708:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11708:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12375,"nodeType":"EmitStatement","src":"11703:52:42"}]},"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"9425:84:42","text":"@notice Reshuffles the active and waiting validators when a deposit is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"depositReshuffle","nameLocation":"9523:16:42","parameters":{"id":12221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12216,"mutability":"mutable","name":"self","nameLocation":"9561:4:42","nodeType":"VariableDeclaration","scope":12377,"src":"9540:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12215,"nodeType":"UserDefinedTypeName","pathNode":{"id":12214,"name":"ValidatorSet","nameLocations":["9540:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"9540:12:42"},"referencedDeclaration":16313,"src":"9540:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12218,"mutability":"mutable","name":"maybeActive","nameLocation":"9575:11:42","nodeType":"VariableDeclaration","scope":12377,"src":"9567:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"9567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12220,"mutability":"mutable","name":"newCollateral","nameLocation":"9596:13:42","nodeType":"VariableDeclaration","scope":12377,"src":"9588:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12219,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:71:42"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[],"src":"9620:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12588,"nodeType":"FunctionDefinition","src":"11858:2071:42","nodes":[],"body":{"id":12587,"nodeType":"Block","src":"11963:1966:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12391,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12388,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"11977:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11977:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11977:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12428,"nodeType":"IfStatement","src":"11973:431:42","trueBody":{"id":12427,"nodeType":"Block","src":"12021:383:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12393,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12039:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12056:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12039:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12411,"nodeType":"IfStatement","src":"12035:190:42","trueBody":{"id":12410,"nodeType":"Block","src":"12059:166:42","statements":[{"expression":{"arguments":[{"id":12401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12116:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12122:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12396,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12077:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12077:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12100:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"12077:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12077:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"12077:55:42"},{"eventCall":{"arguments":[{"id":12406,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12176:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12405,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"12155:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12155:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12408,"nodeType":"EmitStatement","src":"12150:36:42"},{"functionReturnParameters":12387,"id":12409,"nodeType":"Return","src":"12204:7:42"}]}},{"expression":{"arguments":[{"id":12417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12279:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12418,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12285:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12412,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12238:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12243:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12238:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12261:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14991,"src":"12238:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12238:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"12238:57:42"},{"eventCall":{"arguments":[{"id":12422,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12348:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12423,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12359:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12421,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"12314:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12425,"nodeType":"EmitStatement","src":"12309:64:42"},{"functionReturnParameters":12387,"id":12426,"nodeType":"Return","src":"12387:7:42"}]}},{"condition":{"id":12434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12442:42:42","subExpression":{"arguments":[{"id":12432,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12474:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12429,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12443:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12448:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12443:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12465:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"12443:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12443:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12439,"nodeType":"IfStatement","src":"12438:106:42","trueBody":{"id":12438,"nodeType":"Block","src":"12486:58:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12435,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"12507:24:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12507:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12437,"nodeType":"RevertStatement","src":"12500:33:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12440,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12608:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12625:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12608:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12498,"nodeType":"IfStatement","src":"12604:523:42","trueBody":{"id":12497,"nodeType":"Block","src":"12628:499:42","statements":[{"expression":{"arguments":[{"id":12448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12680:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12449,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12686:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12642:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12647:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12642:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12664:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":15539,"src":"12642:37:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12642:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12451,"nodeType":"ExpressionStatement","src":"12642:54:42"},{"eventCall":{"arguments":[{"id":12453,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12735:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12452,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"12715:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12715:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12455,"nodeType":"EmitStatement","src":"12710:35:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12764:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12769:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12764:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12787:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"12764:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12764:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12800:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12764:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12495,"nodeType":"IfStatement","src":"12760:336:42","trueBody":{"id":12494,"nodeType":"Block","src":"12803:293:42","statements":[{"assignments":[12463,12465],"declarations":[{"constant":false,"id":12463,"mutability":"mutable","name":"toBePromoted","nameLocation":"12830:12:42","nodeType":"VariableDeclaration","scope":12494,"src":"12822:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12462,"name":"address","nodeType":"ElementaryTypeName","src":"12822:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12465,"mutability":"mutable","name":"collateral","nameLocation":"12852:10:42","nodeType":"VariableDeclaration","scope":12494,"src":"12844:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12464,"name":"uint256","nodeType":"ElementaryTypeName","src":"12844:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12471,"initialValue":{"arguments":[{"id":12469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12893:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12866:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12871:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12866:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12889:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"12866:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12866:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12821:77:42"},{"expression":{"arguments":[{"id":12477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12943:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12916:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12921:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12916:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12939:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"12916:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12916:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12479,"nodeType":"ExpressionStatement","src":"12916:32:42"},{"expression":{"arguments":[{"id":12485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12995:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12486,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13001:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12966:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12971:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12966:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12988:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"12966:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12966:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12488,"nodeType":"ExpressionStatement","src":"12966:48:42"},{"eventCall":{"arguments":[{"id":12490,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13056:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12491,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12465,"src":"13070:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12489,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"13037:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13037:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12493,"nodeType":"EmitStatement","src":"13032:49:42"}]}},{"functionReturnParameters":12387,"id":12496,"nodeType":"Return","src":"13110:7:42"}]}},{"expression":{"arguments":[{"id":12504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13177:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12505,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13183:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12499,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13142:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13137:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13159:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15609,"src":"13137:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13137:56:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12507,"nodeType":"ExpressionStatement","src":"13137:56:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13208:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13213:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13208:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13231:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"13208:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13244:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13208:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12516,"nodeType":"IfStatement","src":"13204:74:42","trueBody":{"id":12515,"nodeType":"Block","src":"13247:31:42","statements":[{"functionReturnParameters":12387,"id":12514,"nodeType":"Return","src":"13261:7:42"}]}},{"assignments":[12518,12520],"declarations":[{"constant":false,"id":12518,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"13297:12:42","nodeType":"VariableDeclaration","scope":12587,"src":"13289:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"13289:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"13319:19:42","nodeType":"VariableDeclaration","scope":12587,"src":"13311:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"13311:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12526,"initialValue":{"arguments":[{"id":12524,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12521,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13342:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13347:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13342:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13364:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"13342:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13342:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13288:85:42"},{"assignments":[12528,12530],"declarations":[{"constant":false,"id":12528,"mutability":"mutable","name":"mayBePromoted","nameLocation":"13392:13:42","nodeType":"VariableDeclaration","scope":12587,"src":"13384:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12527,"name":"address","nodeType":"ElementaryTypeName","src":"13384:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12530,"mutability":"mutable","name":"maxWaitingCollateral","nameLocation":"13415:20:42","nodeType":"VariableDeclaration","scope":12587,"src":"13407:28:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"13407:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12536,"initialValue":{"arguments":[{"id":12534,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13466:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13439:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13444:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13439:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13462:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"13439:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13383:88:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12537,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"13485:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12538,"name":"maxWaitingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"13507:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13485:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12581,"nodeType":"IfStatement","src":"13481:368:42","trueBody":{"id":12580,"nodeType":"Block","src":"13529:320:42","statements":[{"expression":{"arguments":[{"id":12545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13569:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13543:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13548:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13543:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13565:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"13543:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12547,"nodeType":"ExpressionStatement","src":"13543:31:42"},{"expression":{"arguments":[{"id":12553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12548,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13588:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13593:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13588:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13611:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"13588:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13588:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12555,"nodeType":"ExpressionStatement","src":"13588:32:42"},{"expression":{"arguments":[{"id":12561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13663:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12562,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13669:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13656:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"13634:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13634:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12564,"nodeType":"ExpressionStatement","src":"13634:49:42"},{"expression":{"arguments":[{"id":12570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13727:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12571,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13733:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13697:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13702:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13697:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13720:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"13697:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13697:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12573,"nodeType":"ExpressionStatement","src":"13697:49:42"},{"eventCall":{"arguments":[{"id":12575,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13790:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13804:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12574,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"13766:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12578,"nodeType":"EmitStatement","src":"13761:57:42"},{"functionReturnParameters":12387,"id":12579,"nodeType":"Return","src":"13832:7:42"}]}},{"eventCall":{"arguments":[{"id":12583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12584,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"13908:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12582,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"13864:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13864:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"EmitStatement","src":"13859:63:42"}]},"documentation":{"id":12378,"nodeType":"StructuredDocumentation","src":"11768:85:42","text":"@notice Reshuffles the active and waiting validators when a withdraw is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawReshuffle","nameLocation":"11867:17:42","parameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12381,"mutability":"mutable","name":"self","nameLocation":"11906:4:42","nodeType":"VariableDeclaration","scope":12588,"src":"11885:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12380,"nodeType":"UserDefinedTypeName","pathNode":{"id":12379,"name":"ValidatorSet","nameLocations":["11885:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"11885:12:42"},"referencedDeclaration":16313,"src":"11885:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12383,"mutability":"mutable","name":"validator","nameLocation":"11920:9:42","nodeType":"VariableDeclaration","scope":12588,"src":"11912:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12382,"name":"address","nodeType":"ElementaryTypeName","src":"11912:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12385,"mutability":"mutable","name":"newCollateral","nameLocation":"11939:13:42","nodeType":"VariableDeclaration","scope":12588,"src":"11931:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12384,"name":"uint256","nodeType":"ElementaryTypeName","src":"11931:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11884:69:42"},"returnParameters":{"id":12387,"nodeType":"ParameterList","parameters":[],"src":"11963:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":11738,"nodeType":"StructuredDocumentation","src":"3939:40:42","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[12589],"name":"LibValidatorSet","nameLocation":"3987:15:42","scope":13522,"usedErrors":[]},{"id":13299,"nodeType":"ContractDefinition","src":"13933:8597:42","nodes":[{"id":12593,"nodeType":"UsingForDirective","src":"13958:53:42","nodes":[],"global":false,"libraryName":{"id":12590,"name":"LibStakingReleaseQueue","nameLocations":["13964:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":11737,"src":"13964:22:42"},"typeName":{"id":12592,"nodeType":"UserDefinedTypeName","pathNode":{"id":12591,"name":"StakingReleaseQueue","nameLocations":["13991:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"13991:19:42"},"referencedDeclaration":16284,"src":"13991:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":12597,"nodeType":"UsingForDirective","src":"14016:47:42","nodes":[],"global":false,"libraryName":{"id":12594,"name":"LibStakingChangeLog","nameLocations":["14022:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"14022:19:42"},"typeName":{"id":12596,"nodeType":"UserDefinedTypeName","pathNode":{"id":12595,"name":"StakingChangeLog","nameLocations":["14046:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"14046:16:42"},"referencedDeclaration":16257,"src":"14046:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":12601,"nodeType":"UsingForDirective","src":"14068:39:42","nodes":[],"global":false,"libraryName":{"id":12598,"name":"LibValidatorSet","nameLocations":["14074:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"14074:15:42"},"typeName":{"id":12600,"nodeType":"UserDefinedTypeName","pathNode":{"id":12599,"name":"ValidatorSet","nameLocations":["14094:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"14094:12:42"},"referencedDeclaration":16313,"src":"14094:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":12605,"nodeType":"UsingForDirective","src":"14112:25:42","nodes":[],"global":false,"libraryName":{"id":12602,"name":"LibMaxPQ","nameLocations":["14118:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"14118:8:42"},"typeName":{"id":12604,"nodeType":"UserDefinedTypeName","pathNode":{"id":12603,"name":"MaxPQ","nameLocations":["14131:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"14131:5:42"},"referencedDeclaration":14643,"src":"14131:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":12609,"nodeType":"UsingForDirective","src":"14142:25:42","nodes":[],"global":false,"libraryName":{"id":12606,"name":"LibMinPQ","nameLocations":["14148:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"14148:8:42"},"typeName":{"id":12608,"nodeType":"UserDefinedTypeName","pathNode":{"id":12607,"name":"MinPQ","nameLocations":["14161:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"14161:5:42"},"referencedDeclaration":15261,"src":"14161:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":12612,"nodeType":"UsingForDirective","src":"14172:34:42","nodes":[],"global":false,"libraryName":{"id":12610,"name":"Address","nameLocations":["14178:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"14178:7:42"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"14190:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":12615,"nodeType":"VariableDeclaration","src":"14212:57:42","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"14237:28:42","scope":13299,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12613,"name":"uint64","nodeType":"ElementaryTypeName","src":"14212:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":12614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14268:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":12619,"nodeType":"EventDefinition","src":"14276:50:42","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"14282:28:42","parameters":{"id":12618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12617,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"14318:6:42","nodeType":"VariableDeclaration","scope":12619,"src":"14311:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12616,"name":"uint64","nodeType":"ElementaryTypeName","src":"14311:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"14310:15:42"}},{"id":12625,"nodeType":"EventDefinition","src":"14331:59:42","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"14337:17:42","parameters":{"id":12624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12621,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"14363:9:42","nodeType":"VariableDeclaration","scope":12625,"src":"14355:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12620,"name":"address","nodeType":"ElementaryTypeName","src":"14355:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12623,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"14382:6:42","nodeType":"VariableDeclaration","scope":12625,"src":"14374:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12622,"name":"uint256","nodeType":"ElementaryTypeName","src":"14374:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14354:35:42"}},{"id":12648,"nodeType":"FunctionDefinition","src":"14505:225:42","nodes":[],"body":{"id":12647,"nodeType":"Block","src":"14580:150:42","nodes":[],"statements":[{"assignments":[12635],"declarations":[{"constant":false,"id":12635,"mutability":"mutable","name":"s","nameLocation":"14617:1:42","nodeType":"VariableDeclaration","scope":12647,"src":"14590:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12634,"nodeType":"UserDefinedTypeName","pathNode":{"id":12633,"name":"SubnetActorStorage","nameLocations":["14590:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14590:18:42"},"referencedDeclaration":13839,"src":"14590:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12636,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14621:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14643:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14621:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14621:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14590:65:42"},{"expression":{"arguments":[{"id":12644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12628,"src":"14713:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12640,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"14672:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14674:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14672:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14687:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"14672:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14704:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"14672:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14672:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12632,"id":12646,"nodeType":"Return","src":"14665:58:42"}]},"documentation":{"id":12626,"nodeType":"StructuredDocumentation","src":"14442:58:42","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"14514:17:42","parameters":{"id":12629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12628,"mutability":"mutable","name":"validator","nameLocation":"14540:9:42","nodeType":"VariableDeclaration","scope":12648,"src":"14532:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12627,"name":"address","nodeType":"ElementaryTypeName","src":"14532:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14531:19:42"},"returnParameters":{"id":12632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"14574:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12630,"name":"bool","nodeType":"ElementaryTypeName","src":"14574:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14573:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12671,"nodeType":"FunctionDefinition","src":"14799:227:42","nodes":[],"body":{"id":12670,"nodeType":"Block","src":"14875:151:42","nodes":[],"statements":[{"assignments":[12658],"declarations":[{"constant":false,"id":12658,"mutability":"mutable","name":"s","nameLocation":"14912:1:42","nodeType":"VariableDeclaration","scope":12670,"src":"14885:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12657,"nodeType":"UserDefinedTypeName","pathNode":{"id":12656,"name":"SubnetActorStorage","nameLocations":["14885:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14885:18:42"},"referencedDeclaration":13839,"src":"14885:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12662,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12659,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14916:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14938:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14916:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14885:65:42"},{"expression":{"arguments":[{"id":12667,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"15009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12663,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"14967:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14969:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14967:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"14967:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"14967:41:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14967:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12655,"id":12669,"nodeType":"Return","src":"14960:59:42"}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"14736:58:42","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"14808:18:42","parameters":{"id":12652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"validator","nameLocation":"14835:9:42","nodeType":"VariableDeclaration","scope":12671,"src":"14827:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12650,"name":"address","nodeType":"ElementaryTypeName","src":"14827:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14826:19:42"},"returnParameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12671,"src":"14869:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12653,"name":"bool","nodeType":"ElementaryTypeName","src":"14869:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14868:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12696,"nodeType":"FunctionDefinition","src":"15090:280:42","nodes":[],"body":{"id":12695,"nodeType":"Block","src":"15157:213:42","nodes":[],"statements":[{"assignments":[12681],"declarations":[{"constant":false,"id":12681,"mutability":"mutable","name":"s","nameLocation":"15194:1:42","nodeType":"VariableDeclaration","scope":12695,"src":"15167:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12680,"nodeType":"UserDefinedTypeName","pathNode":{"id":12679,"name":"SubnetActorStorage","nameLocations":["15167:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15167:18:42"},"referencedDeclaration":13839,"src":"15167:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12682,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15198:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15198:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15167:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12686,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"15306:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15308:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15306:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"15306:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12690,"indexExpression":{"id":12689,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"15332:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15306:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15343:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"15306:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15362:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15306:57:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12678,"id":12694,"nodeType":"Return","src":"15299:64:42"}]},"documentation":{"id":12672,"nodeType":"StructuredDocumentation","src":"15032:53:42","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"15099:9:42","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12674,"mutability":"mutable","name":"validator","nameLocation":"15117:9:42","nodeType":"VariableDeclaration","scope":12696,"src":"15109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12673,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15108:19:42"},"returnParameters":{"id":12678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12696,"src":"15151:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12676,"name":"bool","nodeType":"ElementaryTypeName","src":"15151:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15150:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12714,"nodeType":"FunctionDefinition","src":"15376:201:42","nodes":[],"body":{"id":12713,"nodeType":"Block","src":"15440:137:42","nodes":[],"statements":[{"assignments":[12703],"declarations":[{"constant":false,"id":12703,"mutability":"mutable","name":"s","nameLocation":"15477:1:42","nodeType":"VariableDeclaration","scope":12713,"src":"15450:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12702,"nodeType":"UserDefinedTypeName","pathNode":{"id":12701,"name":"SubnetActorStorage","nameLocations":["15450:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15450:18:42"},"referencedDeclaration":13839,"src":"15450:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15481:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15503:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15481:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15481:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15450:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"15532:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15534:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15532:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:21:42","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":11816,"src":"15532:36:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15532:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12700,"id":12712,"nodeType":"Return","src":"15525:45:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"15385:21:42","parameters":{"id":12697,"nodeType":"ParameterList","parameters":[],"src":"15406:2:42"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12714,"src":"15432:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12698,"name":"uint16","nodeType":"ElementaryTypeName","src":"15432:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15431:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12740,"nodeType":"FunctionDefinition","src":"15665:243:42","nodes":[],"body":{"id":12739,"nodeType":"Block","src":"15723:185:42","nodes":[],"statements":[{"assignments":[12722],"declarations":[{"constant":false,"id":12722,"mutability":"mutable","name":"s","nameLocation":"15760:1:42","nodeType":"VariableDeclaration","scope":12739,"src":"15733:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12721,"nodeType":"UserDefinedTypeName","pathNode":{"id":12720,"name":"SubnetActorStorage","nameLocations":["15733:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15733:18:42"},"referencedDeclaration":13839,"src":"15733:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12723,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15764:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15786:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15764:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15764:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15733:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12727,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15815:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15817:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15815:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15830:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"15815:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15848:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"15815:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15815:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12732,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15860:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15860:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15875:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"15860:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"15860:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15815:86:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12719,"id":12738,"nodeType":"Return","src":"15808:93:42"}]},"documentation":{"id":12715,"nodeType":"StructuredDocumentation","src":"15583:77:42","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"15674:15:42","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"15689:2:42"},"returnParameters":{"id":12719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12740,"src":"15715:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12717,"name":"uint16","nodeType":"ElementaryTypeName","src":"15715:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15714:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12758,"nodeType":"FunctionDefinition","src":"15914:214:42","nodes":[],"body":{"id":12757,"nodeType":"Block","src":"15985:143:42","nodes":[],"statements":[{"assignments":[12747],"declarations":[{"constant":false,"id":12747,"mutability":"mutable","name":"s","nameLocation":"16022:1:42","nodeType":"VariableDeclaration","scope":12757,"src":"15995:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12746,"nodeType":"UserDefinedTypeName","pathNode":{"id":12745,"name":"SubnetActorStorage","nameLocations":["15995:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15995:18:42"},"referencedDeclaration":13839,"src":"15995:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12748,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16026:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16048:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16026:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15995:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"16077:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16079:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16077:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16092:27:42","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11799,"src":"16077:42:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12744,"id":12756,"nodeType":"Return","src":"16070:51:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"15923:27:42","parameters":{"id":12741,"nodeType":"ParameterList","parameters":[],"src":"15950:2:42"},"returnParameters":{"id":12744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12758,"src":"15976:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12742,"name":"uint256","nodeType":"ElementaryTypeName","src":"15976:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15975:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12781,"nodeType":"FunctionDefinition","src":"16203:236:42","nodes":[],"body":{"id":12780,"nodeType":"Block","src":"16288:151:42","nodes":[],"statements":[{"assignments":[12768],"declarations":[{"constant":false,"id":12768,"mutability":"mutable","name":"s","nameLocation":"16325:1:42","nodeType":"VariableDeclaration","scope":12780,"src":"16298:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12767,"nodeType":"UserDefinedTypeName","pathNode":{"id":12766,"name":"SubnetActorStorage","nameLocations":["16298:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16298:18:42"},"referencedDeclaration":13839,"src":"16298:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12769,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16329:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16329:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16329:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16298:65:42"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"16380:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16382:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16380:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16395:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"16380:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12777,"indexExpression":{"id":12776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"16406:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16380:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16417:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"16380:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12765,"id":12779,"nodeType":"Return","src":"16373:59:42"}]},"documentation":{"id":12759,"nodeType":"StructuredDocumentation","src":"16134:64:42","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"16212:24:42","parameters":{"id":12762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12761,"mutability":"mutable","name":"validator","nameLocation":"16245:9:42","nodeType":"VariableDeclaration","scope":12781,"src":"16237:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12760,"name":"address","nodeType":"ElementaryTypeName","src":"16237:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16236:19:42"},"returnParameters":{"id":12765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12781,"src":"16279:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16278:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12806,"nodeType":"FunctionDefinition","src":"16592:224:42","nodes":[],"body":{"id":12805,"nodeType":"Block","src":"16677:139:42","nodes":[],"statements":[{"assignments":[12791],"declarations":[{"constant":false,"id":12791,"mutability":"mutable","name":"s","nameLocation":"16714:1:42","nodeType":"VariableDeclaration","scope":12805,"src":"16687:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12790,"nodeType":"UserDefinedTypeName","pathNode":{"id":12789,"name":"SubnetActorStorage","nameLocations":["16687:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16687:18:42"},"referencedDeclaration":13839,"src":"16687:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16718:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16740:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16718:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16718:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16687:65:42"},{"expression":{"arguments":[{"id":12801,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12784,"src":"16789:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12802,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"16800:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"16762:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16764:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16762:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16777:11:42","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":12042,"src":"16762:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16762:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12804,"nodeType":"ExpressionStatement","src":"16762:47:42"}]},"documentation":{"id":12782,"nodeType":"StructuredDocumentation","src":"16511:76:42","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"16601:22:42","parameters":{"id":12787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12784,"mutability":"mutable","name":"validator","nameLocation":"16632:9:42","nodeType":"VariableDeclaration","scope":12806,"src":"16624:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12783,"name":"address","nodeType":"ElementaryTypeName","src":"16624:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12786,"mutability":"mutable","name":"metadata","nameLocation":"16658:8:42","nodeType":"VariableDeclaration","scope":12806,"src":"16643:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12785,"name":"bytes","nodeType":"ElementaryTypeName","src":"16643:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16623:44:42"},"returnParameters":{"id":12788,"nodeType":"ParameterList","parameters":[],"src":"16677:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12915,"nodeType":"FunctionDefinition","src":"16914:1335:42","nodes":[],"body":{"id":12914,"nodeType":"Block","src":"16986:1263:42","nodes":[],"statements":[{"assignments":[12816],"declarations":[{"constant":false,"id":12816,"mutability":"mutable","name":"s","nameLocation":"17023:1:42","nodeType":"VariableDeclaration","scope":12914,"src":"16996:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12815,"nodeType":"UserDefinedTypeName","pathNode":{"id":12814,"name":"SubnetActorStorage","nameLocations":["16996:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16996:18:42"},"referencedDeclaration":13839,"src":"16996:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12820,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12817,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"17027:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17049:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"17027:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17027:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16996:65:42"},{"expression":{"arguments":[{"id":12826,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17172:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17132:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17134:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17132:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17147:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"17132:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"17132:47:42"},{"expression":{"arguments":[{"id":12835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17284:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12836,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17295:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12830,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17254:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17256:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17254:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17269:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"17254:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17254:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"ExpressionStatement","src":"17254:48:42"},{"condition":{"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17317:15:42","subExpression":{"expression":{"id":12839,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17318:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17320:12:42","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"17318:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12913,"nodeType":"IfStatement","src":"17313:930:42","trueBody":{"id":12912,"nodeType":"Block","src":"17334:909:42","statements":[{"assignments":[12843],"declarations":[{"constant":false,"id":12843,"mutability":"mutable","name":"alreadyValidator","nameLocation":"17459:16:42","nodeType":"VariableDeclaration","scope":12912,"src":"17454:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12842,"name":"bool","nodeType":"ElementaryTypeName","src":"17454:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12844,"nodeType":"VariableDeclarationStatement","src":"17454:21:42"},{"assignments":[12846],"declarations":[{"constant":false,"id":12846,"mutability":"mutable","name":"length","nameLocation":"17497:6:42","nodeType":"VariableDeclaration","scope":12912,"src":"17489:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12845,"name":"uint256","nodeType":"ElementaryTypeName","src":"17489:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12850,"initialValue":{"expression":{"expression":{"id":12847,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17506:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17508:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17506:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17526:6:42","memberName":"length","nodeType":"MemberAccess","src":"17506:26:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17489:43:42"},{"body":{"id":12875,"nodeType":"Block","src":"17576:240:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12857,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17598:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17600:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17598:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12860,"indexExpression":{"id":12859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17618:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17598:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"id":12861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17621:4:42","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":16331,"src":"17598:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12862,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17629:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17598:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12870,"nodeType":"IfStatement","src":"17594:137:42","trueBody":{"id":12869,"nodeType":"Block","src":"17640:91:42","statements":[{"expression":{"id":12866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12864,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17662:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17681:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17662:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12867,"nodeType":"ExpressionStatement","src":"17662:23:42"},{"id":12868,"nodeType":"Break","src":"17707:5:42"}]}},{"id":12874,"nodeType":"UncheckedBlock","src":"17748:54:42","statements":[{"expression":{"id":12872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17780:3:42","subExpression":{"id":12871,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17782:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12873,"nodeType":"ExpressionStatement","src":"17780:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17562:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12855,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12846,"src":"17566:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17562:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12876,"initializationExpression":{"assignments":[12852],"declarations":[{"constant":false,"id":12852,"mutability":"mutable","name":"i","nameLocation":"17559:1:42","nodeType":"VariableDeclaration","scope":12876,"src":"17551:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12851,"name":"uint256","nodeType":"ElementaryTypeName","src":"17551:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12853,"nodeType":"VariableDeclarationStatement","src":"17551:9:42"},"nodeType":"ForStatement","src":"17546:270:42"},{"condition":{"id":12878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17833:17:42","subExpression":{"id":12877,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17834:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12911,"nodeType":"IfStatement","src":"17829:404:42","trueBody":{"id":12910,"nodeType":"Block","src":"17852:381:42","statements":[{"assignments":[12880],"declarations":[{"constant":false,"id":12880,"mutability":"mutable","name":"collateral","nameLocation":"17878:10:42","nodeType":"VariableDeclaration","scope":12910,"src":"17870:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12879,"name":"uint256","nodeType":"ElementaryTypeName","src":"17870:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12887,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":12881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17891:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17893:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17891:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17906:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"17891:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12885,"indexExpression":{"id":12884,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17917:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17891:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17928:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"17891:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17870:77:42"},{"assignments":[12890],"declarations":[{"constant":false,"id":12890,"mutability":"mutable","name":"val","nameLocation":"17982:3:42","nodeType":"VariableDeclaration","scope":12910,"src":"17965:20:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator"},"typeName":{"id":12889,"nodeType":"UserDefinedTypeName","pathNode":{"id":12888,"name":"Validator","nameLocations":["17965:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"17965:9:42"},"referencedDeclaration":16334,"src":"17965:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":12901,"initialValue":{"arguments":[{"id":12892,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18026:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12893,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"18065:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":12894,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18107:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18109:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18107:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18122:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"18107:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12898,"indexExpression":{"id":12897,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18133:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18107:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18144:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"18107:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":12891,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"17988:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$16334_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18020:4:42","18057:6:42","18097:8:42"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"17988:183:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"17965:206:42"},{"expression":{"arguments":[{"id":12907,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"18214:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":12902,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18189:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18191:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"18189:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18209:4:42","memberName":"push","nodeType":"MemberAccess","src":"18189:24:42","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$_t_struct$_Validator_$16334_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":12908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12909,"nodeType":"ExpressionStatement","src":"18189:29:42"}]}}]}}]},"documentation":{"id":12807,"nodeType":"StructuredDocumentation","src":"16822:87:42","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"16923:18:42","parameters":{"id":12812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12809,"mutability":"mutable","name":"validator","nameLocation":"16950:9:42","nodeType":"VariableDeclaration","scope":12915,"src":"16942:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12808,"name":"address","nodeType":"ElementaryTypeName","src":"16942:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12811,"mutability":"mutable","name":"amount","nameLocation":"16969:6:42","nodeType":"VariableDeclaration","scope":12915,"src":"16961:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12810,"name":"uint256","nodeType":"ElementaryTypeName","src":"16961:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16941:35:42"},"returnParameters":{"id":12813,"nodeType":"ParameterList","parameters":[],"src":"16986:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12957,"nodeType":"FunctionDefinition","src":"18439:504:42","nodes":[],"body":{"id":12956,"nodeType":"Block","src":"18512:431:42","nodes":[],"statements":[{"assignments":[12925],"declarations":[{"constant":false,"id":12925,"mutability":"mutable","name":"s","nameLocation":"18549:1:42","nodeType":"VariableDeclaration","scope":12956,"src":"18522:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12924,"nodeType":"UserDefinedTypeName","pathNode":{"id":12923,"name":"SubnetActorStorage","nameLocations":["18522:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"18522:18:42"},"referencedDeclaration":13839,"src":"18522:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12926,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"18553:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"18553:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18522:65:42"},{"expression":{"arguments":[{"id":12935,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18688:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12936,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18699:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18658:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18660:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18658:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18673:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"18658:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12938,"nodeType":"ExpressionStatement","src":"18658:48:42"},{"expression":{"arguments":[{"id":12944,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18812:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18823:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12939,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18781:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18783:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18781:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18796:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"18781:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18781:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12947,"nodeType":"ExpressionStatement","src":"18781:49:42"},{"expression":{"arguments":[{"id":12953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18929:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":12950,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18908:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18900:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":12948,"name":"address","nodeType":"ElementaryTypeName","src":"18900:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":12951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18919:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"18900:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12955,"nodeType":"ExpressionStatement","src":"18900:36:42"}]},"documentation":{"id":12916,"nodeType":"StructuredDocumentation","src":"18255:179:42","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"18448:19:42","parameters":{"id":12921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12918,"mutability":"mutable","name":"validator","nameLocation":"18476:9:42","nodeType":"VariableDeclaration","scope":12957,"src":"18468:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12917,"name":"address","nodeType":"ElementaryTypeName","src":"18468:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12920,"mutability":"mutable","name":"amount","nameLocation":"18495:6:42","nodeType":"VariableDeclaration","scope":12957,"src":"18487:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18467:35:42"},"returnParameters":{"id":12922,"nodeType":"ParameterList","parameters":[],"src":"18512:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12982,"nodeType":"FunctionDefinition","src":"19060:223:42","nodes":[],"body":{"id":12981,"nodeType":"Block","src":"19143:140:42","nodes":[],"statements":[{"assignments":[12967],"declarations":[{"constant":false,"id":12967,"mutability":"mutable","name":"s","nameLocation":"19180:1:42","nodeType":"VariableDeclaration","scope":12981,"src":"19153:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12966,"nodeType":"UserDefinedTypeName","pathNode":{"id":12965,"name":"SubnetActorStorage","nameLocations":["19153:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19153:18:42"},"referencedDeclaration":13839,"src":"19153:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12971,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12968,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19184:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19206:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19184:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19184:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19153:65:42"},{"expression":{"arguments":[{"id":12977,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12960,"src":"19256:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12978,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12962,"src":"19267:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12972,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12967,"src":"19228:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19230:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19228:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":12976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19240:15:42","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":13569,"src":"19228:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12980,"nodeType":"ExpressionStatement","src":"19228:48:42"}]},"documentation":{"id":12958,"nodeType":"StructuredDocumentation","src":"19017:38:42","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"19069:20:42","parameters":{"id":12963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12960,"mutability":"mutable","name":"validator","nameLocation":"19098:9:42","nodeType":"VariableDeclaration","scope":12982,"src":"19090:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12959,"name":"address","nodeType":"ElementaryTypeName","src":"19090:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12962,"mutability":"mutable","name":"metadata","nameLocation":"19124:8:42","nodeType":"VariableDeclaration","scope":12982,"src":"19109:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12961,"name":"bytes","nodeType":"ElementaryTypeName","src":"19109:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19089:44:42"},"returnParameters":{"id":12964,"nodeType":"ParameterList","parameters":[],"src":"19143:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13016,"nodeType":"FunctionDefinition","src":"19328:256:42","nodes":[],"body":{"id":13015,"nodeType":"Block","src":"19389:195:42","nodes":[],"statements":[{"assignments":[12992],"declarations":[{"constant":false,"id":12992,"mutability":"mutable","name":"s","nameLocation":"19426:1:42","nodeType":"VariableDeclaration","scope":13015,"src":"19399:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12991,"nodeType":"UserDefinedTypeName","pathNode":{"id":12990,"name":"SubnetActorStorage","nameLocations":["19399:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19399:18:42"},"referencedDeclaration":13839,"src":"19399:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12996,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12993,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19430:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19452:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19430:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19430:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19399:65:42"},{"expression":{"arguments":[{"id":13002,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19502:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13003,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19513:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19475:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19477:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19475:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19487:14:42","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":13643,"src":"19475:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19475:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13005,"nodeType":"ExpressionStatement","src":"19475:45:42"},{"expression":{"arguments":[{"id":13011,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19559:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13012,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19570:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13006,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19530:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19532:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19530:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19545:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"19530:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19530:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13014,"nodeType":"ExpressionStatement","src":"19530:47:42"}]},"documentation":{"id":12983,"nodeType":"StructuredDocumentation","src":"19289:34:42","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"19337:7:42","parameters":{"id":12988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12985,"mutability":"mutable","name":"validator","nameLocation":"19353:9:42","nodeType":"VariableDeclaration","scope":13016,"src":"19345:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12984,"name":"address","nodeType":"ElementaryTypeName","src":"19345:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12987,"mutability":"mutable","name":"amount","nameLocation":"19372:6:42","nodeType":"VariableDeclaration","scope":13016,"src":"19364:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12986,"name":"uint256","nodeType":"ElementaryTypeName","src":"19364:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19344:35:42"},"returnParameters":{"id":12989,"nodeType":"ParameterList","parameters":[],"src":"19389:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13050,"nodeType":"FunctionDefinition","src":"19630:259:42","nodes":[],"body":{"id":13049,"nodeType":"Block","src":"19692:197:42","nodes":[],"statements":[{"assignments":[13026],"declarations":[{"constant":false,"id":13026,"mutability":"mutable","name":"s","nameLocation":"19729:1:42","nodeType":"VariableDeclaration","scope":13049,"src":"19702:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13025,"nodeType":"UserDefinedTypeName","pathNode":{"id":13024,"name":"SubnetActorStorage","nameLocations":["19702:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19702:18:42"},"referencedDeclaration":13839,"src":"19702:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13027,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19733:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19755:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19733:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19733:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19702:65:42"},{"expression":{"arguments":[{"id":13036,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19806:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19817:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19778:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19780:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19778:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19790:15:42","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":13606,"src":"19778:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19778:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13039,"nodeType":"ExpressionStatement","src":"19778:46:42"},{"expression":{"arguments":[{"id":13045,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19864:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13046,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19875:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19834:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19836:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19834:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19849:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"19834:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13048,"nodeType":"ExpressionStatement","src":"19834:48:42"}]},"documentation":{"id":13017,"nodeType":"StructuredDocumentation","src":"19590:35:42","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"19639:8:42","parameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13019,"mutability":"mutable","name":"validator","nameLocation":"19656:9:42","nodeType":"VariableDeclaration","scope":13050,"src":"19648:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13018,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13021,"mutability":"mutable","name":"amount","nameLocation":"19675:6:42","nodeType":"VariableDeclaration","scope":13050,"src":"19667:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13020,"name":"uint256","nodeType":"ElementaryTypeName","src":"19667:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19647:35:42"},"returnParameters":{"id":13023,"nodeType":"ParameterList","parameters":[],"src":"19692:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13077,"nodeType":"FunctionDefinition","src":"19998:244:42","nodes":[],"body":{"id":13076,"nodeType":"Block","src":"20051:191:42","nodes":[],"statements":[{"assignments":[13058],"declarations":[{"constant":false,"id":13058,"mutability":"mutable","name":"s","nameLocation":"20088:1:42","nodeType":"VariableDeclaration","scope":13076,"src":"20061:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13057,"nodeType":"UserDefinedTypeName","pathNode":{"id":13056,"name":"SubnetActorStorage","nameLocations":["20061:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20061:18:42"},"referencedDeclaration":13839,"src":"20061:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13062,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13059,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20092:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20114:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20092:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20092:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20061:65:42"},{"assignments":[13064],"declarations":[{"constant":false,"id":13064,"mutability":"mutable","name":"amount","nameLocation":"20144:6:42","nodeType":"VariableDeclaration","scope":13076,"src":"20136:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13063,"name":"uint256","nodeType":"ElementaryTypeName","src":"20136:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"id":13068,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20174:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"20153:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20155:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"20153:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20168:5:42","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"20153:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20153:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20136:48:42"},{"eventCall":{"arguments":[{"id":13072,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20217:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13064,"src":"20228:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13071,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"20199:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20199:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13075,"nodeType":"EmitStatement","src":"20194:41:42"}]},"documentation":{"id":13051,"nodeType":"StructuredDocumentation","src":"19952:41:42","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"20007:15:42","parameters":{"id":13054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13053,"mutability":"mutable","name":"validator","nameLocation":"20031:9:42","nodeType":"VariableDeclaration","scope":13077,"src":"20023:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13052,"name":"address","nodeType":"ElementaryTypeName","src":"20023:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20022:19:42"},"returnParameters":{"id":13055,"nodeType":"ParameterList","parameters":[],"src":"20051:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13130,"nodeType":"FunctionDefinition","src":"20356:423:42","nodes":[],"body":{"id":13129,"nodeType":"Block","src":"20413:366:42","nodes":[],"statements":[{"assignments":[13085],"declarations":[{"constant":false,"id":13085,"mutability":"mutable","name":"s","nameLocation":"20450:1:42","nodeType":"VariableDeclaration","scope":13129,"src":"20423:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13084,"nodeType":"UserDefinedTypeName","pathNode":{"id":13083,"name":"SubnetActorStorage","nameLocations":["20423:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20423:18:42"},"referencedDeclaration":13839,"src":"20423:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13086,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20454:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20476:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20454:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20423:65:42"},{"assignments":[13091],"declarations":[{"constant":false,"id":13091,"mutability":"mutable","name":"amount","nameLocation":"20506:6:42","nodeType":"VariableDeclaration","scope":13129,"src":"20498:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13090,"name":"uint256","nodeType":"ElementaryTypeName","src":"20498:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13096,"initialValue":{"baseExpression":{"expression":{"id":13092,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20515:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20517:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20515:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13095,"indexExpression":{"id":13094,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20532:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20515:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20498:42:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20555:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20565:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20555:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13104,"nodeType":"IfStatement","src":"20551:69:42","trueBody":{"id":13103,"nodeType":"Block","src":"20568:52:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13100,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"20589:18:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20589:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13102,"nodeType":"RevertStatement","src":"20582:27:42"}]}},{"expression":{"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20630:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20632:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20630:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13109,"indexExpression":{"id":13107,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20647:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20630:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20658:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20630:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13112,"nodeType":"ExpressionStatement","src":"20630:29:42"},{"expression":{"arguments":[{"id":13118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20720:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20678:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20680:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"20678:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13113,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"20669:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20696:23:42","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":8779,"src":"20669:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13120,"nodeType":"ExpressionStatement","src":"20669:58:42"},{"expression":{"arguments":[{"id":13126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20765:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13123,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20746:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20738:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":13121,"name":"address","nodeType":"ElementaryTypeName","src":"20738:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20755:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"20738:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13128,"nodeType":"ExpressionStatement","src":"20738:34:42"}]},"documentation":{"id":13078,"nodeType":"StructuredDocumentation","src":"20248:103:42","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"20365:21:42","parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"relayer","nameLocation":"20395:7:42","nodeType":"VariableDeclaration","scope":13130,"src":"20387:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13079,"name":"address","nodeType":"ElementaryTypeName","src":"20387:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20386:17:42"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[],"src":"20413:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13298,"nodeType":"FunctionDefinition","src":"20907:1621:42","nodes":[],"body":{"id":13297,"nodeType":"Block","src":"20967:1561:42","nodes":[],"statements":[{"assignments":[13138],"declarations":[{"constant":false,"id":13138,"mutability":"mutable","name":"s","nameLocation":"21004:1:42","nodeType":"VariableDeclaration","scope":13297,"src":"20977:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13137,"nodeType":"UserDefinedTypeName","pathNode":{"id":13136,"name":"SubnetActorStorage","nameLocations":["20977:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20977:18:42"},"referencedDeclaration":13839,"src":"20977:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13142,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13139,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"21008:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"21008:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21008:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20977:65:42"},{"assignments":[13145],"declarations":[{"constant":false,"id":13145,"mutability":"mutable","name":"changeSet","nameLocation":"21077:9:42","nodeType":"VariableDeclaration","scope":13297,"src":"21052:34:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13144,"nodeType":"UserDefinedTypeName","pathNode":{"id":13143,"name":"StakingChangeLog","nameLocations":["21052:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"21052:16:42"},"referencedDeclaration":16257,"src":"21052:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":13148,"initialValue":{"expression":{"id":13146,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21089:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21091:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"21089:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21052:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13149,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21115:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":13150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21138:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21148:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"21138:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21115:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13157,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21243:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13158,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21265:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21275:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21265:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21243:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13163,"nodeType":"IfStatement","src":"21239:93:42","trueBody":{"id":13162,"nodeType":"Block","src":"21301:31:42","statements":[{"functionReturnParameters":13135,"id":13161,"nodeType":"Return","src":"21315:7:42"}]}},"id":13164,"nodeType":"IfStatement","src":"21111:221:42","trueBody":{"id":13156,"nodeType":"Block","src":"21173:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13153,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"21194:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13155,"nodeType":"RevertStatement","src":"21187:35:42"}]}},{"assignments":[13166],"declarations":[{"constant":false,"id":13166,"mutability":"mutable","name":"start","nameLocation":"21349:5:42","nodeType":"VariableDeclaration","scope":13297,"src":"21342:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13165,"name":"uint64","nodeType":"ElementaryTypeName","src":"21342:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13169,"initialValue":{"expression":{"id":13167,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21357:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21367:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21357:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21342:49:42"},{"body":{"id":13283,"nodeType":"Block","src":"21452:934:42","statements":[{"assignments":[13179],"declarations":[{"constant":false,"id":13179,"mutability":"mutable","name":"change","nameLocation":"21488:6:42","nodeType":"VariableDeclaration","scope":13283,"src":"21466:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13178,"nodeType":"UserDefinedTypeName","pathNode":{"id":13177,"name":"StakingChange","nameLocations":["21466:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"21466:13:42"},"referencedDeclaration":16238,"src":"21466:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13184,"initialValue":{"arguments":[{"id":13182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21517:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13180,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21497:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21507:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"21497:19:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21497:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21466:53:42"},{"assignments":[13186],"declarations":[{"constant":false,"id":13186,"mutability":"mutable","name":"validator","nameLocation":"21541:9:42","nodeType":"VariableDeclaration","scope":13283,"src":"21533:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13185,"name":"address","nodeType":"ElementaryTypeName","src":"21533:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13189,"initialValue":{"expression":{"id":13187,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21553:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21560:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"21553:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21533:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13190,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21588:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21595:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21588:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13192,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21601:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21618:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"21601:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21588:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13271,"nodeType":"Block","src":"21732:546:42","statements":[{"assignments":[13209],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"amount","nameLocation":"21758:6:42","nodeType":"VariableDeclaration","scope":13271,"src":"21750:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13208,"name":"uint256","nodeType":"ElementaryTypeName","src":"21750:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13218,"initialValue":{"arguments":[{"expression":{"id":13212,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21778:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21785:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21778:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21795:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"21795:7:42","typeDescriptions":{}}}],"id":13216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21794:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21767:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21771:6:42","memberName":"decode","nodeType":"MemberAccess","src":"21767:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21767:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21750:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13219,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21827:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21834:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21827:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13221,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21840:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21857:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"21840:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21827:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13269,"nodeType":"Block","src":"22101:163:42","statements":[{"expression":{"arguments":[{"id":13256,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"22153:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13257,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22164:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13251,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22123:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22125:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"22123:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22138:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"22123:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22123:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13259,"nodeType":"ExpressionStatement","src":"22123:48:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":13261,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22202:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22204:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22202:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13260,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22193:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22220:8:42","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":8767,"src":"22193:35:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13265,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22236:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"22193:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13268,"nodeType":"ExpressionStatement","src":"22193:52:42"}]},"id":13270,"nodeType":"IfStatement","src":"21823:441:42","trueBody":{"id":13250,"nodeType":"Block","src":"21867:228:42","statements":[{"expression":{"arguments":[{"id":13229,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21920:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13230,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"21931:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21889:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21891:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21889:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"21889:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13232,"nodeType":"ExpressionStatement","src":"21889:49:42"},{"expression":{"arguments":[{"id":13238,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21989:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13239,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22000:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21960:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21962:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"21960:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21975:13:42","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":11692,"src":"21960:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":13240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21960:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13241,"nodeType":"ExpressionStatement","src":"21960:47:42"},{"expression":{"arguments":[{"id":13247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22069:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13243,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22038:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22040:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22038:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22029:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22056:12:42","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":8773,"src":"22029:39:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13249,"nodeType":"ExpressionStatement","src":"22029:47:42"}]}}]},"id":13272,"nodeType":"IfStatement","src":"21584:694:42","trueBody":{"id":13207,"nodeType":"Block","src":"21631:95:42","statements":[{"expression":{"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13195,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21649:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21651:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21649:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21664:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"21649:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13201,"indexExpression":{"id":13198,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21675:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21649:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21686:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"21649:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13203,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21697:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21704:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21697:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"21649:62:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13206,"nodeType":"ExpressionStatement","src":"21649:62:42"}]}},{"expression":{"arguments":[{"id":13276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22314:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22292:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22302:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"22292:21:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22292:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13278,"nodeType":"ExpressionStatement","src":"22292:24:42"},{"id":13282,"nodeType":"UncheckedBlock","src":"22330:46:42","statements":[{"expression":{"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"22358:3:42","subExpression":{"id":13279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22360:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13281,"nodeType":"ExpressionStatement","src":"22358:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21424:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13175,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21429:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21424:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13284,"initializationExpression":{"assignments":[13171],"declarations":[{"constant":false,"id":13171,"mutability":"mutable","name":"i","nameLocation":"21413:1:42","nodeType":"VariableDeclaration","scope":13284,"src":"21406:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13170,"name":"uint64","nodeType":"ElementaryTypeName","src":"21406:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13173,"initialValue":{"id":13172,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13166,"src":"21417:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21406:16:42"},"nodeType":"ForStatement","src":"21401:985:42"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13285,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22396:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22406:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"22396:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13288,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22433:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22433:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22396:60:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13292,"nodeType":"ExpressionStatement","src":"22396:60:42"},{"eventCall":{"arguments":[{"id":13294,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22501:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13293,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"22472:28:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22472:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13296,"nodeType":"EmitStatement","src":"22467:54:42"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"20785:117:42","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"20916:13:42","parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"configurationNumber","nameLocation":"20937:19:42","nodeType":"VariableDeclaration","scope":13298,"src":"20930:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13132,"name":"uint64","nodeType":"ElementaryTypeName","src":"20930:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20929:28:42"},"returnParameters":{"id":13135,"nodeType":"ParameterList","parameters":[],"src":"20967:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13299],"name":"LibStaking","nameLocation":"13941:10:42","scope":13522,"usedErrors":[1248,1256,6123]},{"id":13521,"nodeType":"ContractDefinition","src":"22687:2370:42","nodes":[{"id":13304,"nodeType":"UsingForDirective","src":"22722:39:42","nodes":[],"global":false,"libraryName":{"id":13301,"name":"LibValidatorSet","nameLocations":["22728:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"22728:15:42"},"typeName":{"id":13303,"nodeType":"UserDefinedTypeName","pathNode":{"id":13302,"name":"ValidatorSet","nameLocations":["22748:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"22748:12:42"},"referencedDeclaration":16313,"src":"22748:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":13308,"nodeType":"UsingForDirective","src":"22766:47:42","nodes":[],"global":false,"libraryName":{"id":13305,"name":"LibStakingChangeLog","nameLocations":["22772:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"22772:19:42"},"typeName":{"id":13307,"nodeType":"UserDefinedTypeName","pathNode":{"id":13306,"name":"StakingChangeLog","nameLocations":["22796:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"22796:16:42"},"referencedDeclaration":16257,"src":"22796:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":13343,"nodeType":"FunctionDefinition","src":"22819:475:42","nodes":[],"body":{"id":13342,"nodeType":"Block","src":"22932:362:42","nodes":[],"statements":[{"assignments":[13318],"declarations":[{"constant":false,"id":13318,"mutability":"mutable","name":"configurationNumber","nameLocation":"22949:19:42","nodeType":"VariableDeclaration","scope":13342,"src":"22942:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13317,"name":"uint64","nodeType":"ElementaryTypeName","src":"22942:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13332,"initialValue":{"arguments":[{"expression":{"expression":{"id":13322,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23022:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23036:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23022:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23043:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"23022:30:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":13325,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23070:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23084:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23070:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23091:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"23070:23:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":13328,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23116:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23130:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23116:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23137:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"23116:28:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":13319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13311,"src":"22971:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22976:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"22971:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22984:12:42","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":13685,"src":"22971:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["23011:9:42","23066:2:42","23107:7:42"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"22971:184:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"22942:213:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13333,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"23170:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13334,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23193:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23207:19:42","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16243,"src":"23193:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23170:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13341,"nodeType":"IfStatement","src":"23166:122:42","trueBody":{"id":13340,"nodeType":"Block","src":"23228:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13337,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"23249:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23249:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13339,"nodeType":"RevertStatement","src":"23242:35:42"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"22828:11:42","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13311,"mutability":"mutable","name":"self","nameLocation":"22872:4:42","nodeType":"VariableDeclaration","scope":13343,"src":"22840:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13310,"nodeType":"UserDefinedTypeName","pathNode":{"id":13309,"name":"ParentValidatorsTracker","nameLocations":["22840:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"22840:23:42"},"referencedDeclaration":16320,"src":"22840:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"changeRequest","nameLocation":"22908:13:42","nodeType":"VariableDeclaration","scope":13343,"src":"22878:43:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":13313,"nodeType":"UserDefinedTypeName","pathNode":{"id":13312,"name":"StakingChangeRequest","nameLocations":["22878:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"22878:20:42"},"referencedDeclaration":16244,"src":"22878:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"22839:83:42"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"22932:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13384,"nodeType":"FunctionDefinition","src":"23300:415:42","nodes":[],"body":{"id":13383,"nodeType":"Block","src":"23443:272:42","nodes":[],"statements":[{"assignments":[13354],"declarations":[{"constant":false,"id":13354,"mutability":"mutable","name":"length","nameLocation":"23461:6:42","nodeType":"VariableDeclaration","scope":13383,"src":"23453:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13353,"name":"uint256","nodeType":"ElementaryTypeName","src":"23453:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13357,"initialValue":{"expression":{"id":13355,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23470:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23485:6:42","memberName":"length","nodeType":"MemberAccess","src":"23470:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23453:38:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13358,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23505:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23505:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13363,"nodeType":"IfStatement","src":"23501:48:42","trueBody":{"id":13362,"nodeType":"Block","src":"23518:31:42","statements":[{"functionReturnParameters":13352,"id":13361,"nodeType":"Return","src":"23532:7:42"}]}},{"body":{"id":13381,"nodeType":"Block","src":"23589:120:42","statements":[{"expression":{"arguments":[{"id":13371,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"23615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":13372,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23621:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13374,"indexExpression":{"id":13373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23636:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23621:17:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":13370,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"23603:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13376,"nodeType":"ExpressionStatement","src":"23603:36:42"},{"id":13380,"nodeType":"UncheckedBlock","src":"23653:46:42","statements":[{"expression":{"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23681:3:42","subExpression":{"id":13377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23683:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13379,"nodeType":"ExpressionStatement","src":"23681:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23575:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13368,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23579:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23575:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13382,"initializationExpression":{"assignments":[13365],"declarations":[{"constant":false,"id":13365,"mutability":"mutable","name":"i","nameLocation":"23572:1:42","nodeType":"VariableDeclaration","scope":13382,"src":"23564:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13364,"name":"uint256","nodeType":"ElementaryTypeName","src":"23564:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13366,"nodeType":"VariableDeclarationStatement","src":"23564:9:42"},"nodeType":"ForStatement","src":"23559:150:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"23309:16:42","parameters":{"id":13351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"self","nameLocation":"23367:4:42","nodeType":"VariableDeclaration","scope":13384,"src":"23335:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13345,"nodeType":"UserDefinedTypeName","pathNode":{"id":13344,"name":"ParentValidatorsTracker","nameLocations":["23335:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23335:23:42"},"referencedDeclaration":16320,"src":"23335:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13350,"mutability":"mutable","name":"changeRequests","nameLocation":"23413:14:42","nodeType":"VariableDeclaration","scope":13384,"src":"23381:46:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":13348,"nodeType":"UserDefinedTypeName","pathNode":{"id":13347,"name":"StakingChangeRequest","nameLocations":["23381:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"23381:20:42"},"referencedDeclaration":16244,"src":"23381:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":13349,"nodeType":"ArrayTypeName","src":"23381:22:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"23325:108:42"},"returnParameters":{"id":13352,"nodeType":"ParameterList","parameters":[],"src":"23443:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13520,"nodeType":"FunctionDefinition","src":"23786:1269:42","nodes":[],"body":{"id":13519,"nodeType":"Block","src":"23884:1171:42","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13393,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"23898:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":13394,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"23921:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23926:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"23921:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23934:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"23921:36:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23898:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13402,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24029:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24051:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24056:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24051:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24064:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24051:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24029:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13409,"nodeType":"IfStatement","src":"24025:96:42","trueBody":{"id":13408,"nodeType":"Block","src":"24090:31:42","statements":[{"functionReturnParameters":13392,"id":13407,"nodeType":"Return","src":"24104:7:42"}]}},"id":13410,"nodeType":"IfStatement","src":"23894:227:42","trueBody":{"id":13401,"nodeType":"Block","src":"23959:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13398,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"23980:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23980:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13400,"nodeType":"RevertStatement","src":"23973:35:42"}]}},{"assignments":[13412],"declarations":[{"constant":false,"id":13412,"mutability":"mutable","name":"start","nameLocation":"24138:5:42","nodeType":"VariableDeclaration","scope":13519,"src":"24131:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13411,"name":"uint64","nodeType":"ElementaryTypeName","src":"24131:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13416,"initialValue":{"expression":{"expression":{"id":13413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24146:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24151:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24146:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24159:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24146:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24131:52:42"},{"body":{"id":13507,"nodeType":"Block","src":"24245:731:42","statements":[{"assignments":[13426],"declarations":[{"constant":false,"id":13426,"mutability":"mutable","name":"change","nameLocation":"24281:6:42","nodeType":"VariableDeclaration","scope":13507,"src":"24259:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13425,"nodeType":"UserDefinedTypeName","pathNode":{"id":13424,"name":"StakingChange","nameLocations":["24259:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"24259:13:42"},"referencedDeclaration":16238,"src":"24259:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13432,"initialValue":{"arguments":[{"id":13430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24313:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13427,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24290:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24295:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24290:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24303:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"24290:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24290:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24259:56:42"},{"assignments":[13434],"declarations":[{"constant":false,"id":13434,"mutability":"mutable","name":"validator","nameLocation":"24337:9:42","nodeType":"VariableDeclaration","scope":13507,"src":"24329:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13433,"name":"address","nodeType":"ElementaryTypeName","src":"24329:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13437,"initialValue":{"expression":{"id":13435,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24349:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24356:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"24349:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24329:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13438,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24384:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24391:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24384:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13440,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24397:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24414:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"24397:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24384:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13493,"nodeType":"Block","src":"24529:336:42","statements":[{"assignments":[13457],"declarations":[{"constant":false,"id":13457,"mutability":"mutable","name":"amount","nameLocation":"24555:6:42","nodeType":"VariableDeclaration","scope":13493,"src":"24547:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13466,"initialValue":{"arguments":[{"expression":{"id":13460,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24575:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24582:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24575:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24592:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24592:7:42","typeDescriptions":{}}}],"id":13464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24591:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24564:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24568:6:42","memberName":"decode","nodeType":"MemberAccess","src":"24564:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24564:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24547:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13467,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24624:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24631:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24624:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24637:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24654:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"24637:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24624:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13491,"nodeType":"Block","src":"24761:90:42","statements":[{"expression":{"arguments":[{"id":13487,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24814:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13488,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24825:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24783:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24788:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24783:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24799:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"24783:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24783:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13490,"nodeType":"ExpressionStatement","src":"24783:49:42"}]},"id":13492,"nodeType":"IfStatement","src":"24620:231:42","trueBody":{"id":13481,"nodeType":"Block","src":"24664:91:42","statements":[{"expression":{"arguments":[{"id":13477,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24718:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24729:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24686:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24691:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24686:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24702:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"24686:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24686:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13480,"nodeType":"ExpressionStatement","src":"24686:50:42"}]}}]},"id":13494,"nodeType":"IfStatement","src":"24380:485:42","trueBody":{"id":13455,"nodeType":"Block","src":"24427:96:42","statements":[{"expression":{"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24445:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24450:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24445:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24461:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"24445:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13449,"indexExpression":{"id":13446,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24472:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24445:37:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24483:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"24445:46:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13451,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24494:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24501:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24494:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24445:63:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13454,"nodeType":"ExpressionStatement","src":"24445:63:42"}]}},{"expression":{"arguments":[{"id":13500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24904:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24879:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24884:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24879:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24892:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"24879:24:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24879:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13502,"nodeType":"ExpressionStatement","src":"24879:27:42"},{"id":13506,"nodeType":"UncheckedBlock","src":"24920:46:42","statements":[{"expression":{"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24948:3:42","subExpression":{"id":13503,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24950:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13505,"nodeType":"ExpressionStatement","src":"24948:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24217:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24222:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24217:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13508,"initializationExpression":{"assignments":[13418],"declarations":[{"constant":false,"id":13418,"mutability":"mutable","name":"i","nameLocation":"24206:1:42","nodeType":"VariableDeclaration","scope":13508,"src":"24199:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13417,"name":"uint64","nodeType":"ElementaryTypeName","src":"24199:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13420,"initialValue":{"id":13419,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"24210:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24199:16:42"},"nodeType":"ForStatement","src":"24194:782:42"},{"expression":{"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":13509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24985:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24990:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24985:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24998:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24985:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13514,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"25025:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25047:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25025:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24985:63:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13518,"nodeType":"ExpressionStatement","src":"24985:63:42"}]},"documentation":{"id":13385,"nodeType":"StructuredDocumentation","src":"23721:60:42","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23795:13:42","parameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13388,"mutability":"mutable","name":"self","nameLocation":"23841:4:42","nodeType":"VariableDeclaration","scope":13520,"src":"23809:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13387,"nodeType":"UserDefinedTypeName","pathNode":{"id":13386,"name":"ParentValidatorsTracker","nameLocations":["23809:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23809:23:42"},"referencedDeclaration":16320,"src":"23809:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13390,"mutability":"mutable","name":"configurationNumber","nameLocation":"23854:19:42","nodeType":"VariableDeclaration","scope":13520,"src":"23847:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13389,"name":"uint64","nodeType":"ElementaryTypeName","src":"23847:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23808:66:42"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[],"src":"23884:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":13300,"nodeType":"StructuredDocumentation","src":"22532:155:42","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[13521],"name":"LibValidatorTracking","nameLocation":"22695:20:42","scope":13522,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":42} \ No newline at end of file diff --git a/contracts/out/LibStaking.sol/LibValidatorSet.json b/contracts/out/LibStaking.sol/LibValidatorSet.json deleted file mode 100644 index 2f84704588..0000000000 --- a/contracts/out/LibStaking.sol/LibValidatorSet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"ActiveValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newCollateral","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActiveValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ActiveValidatorReplaced","inputs":[{"name":"oldValidator","type":"address","indexed":false,"internalType":"address"},{"name":"newValidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewActiveValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"collateral","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewWaitingValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"collateral","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newCollateral","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122072afcc81647f830c6e1189b85ae11f0d12340ecce3a8eed41da19a1313cd4e2664736f6c63430008130033","sourceMap":"3979:9952:42:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122072afcc81647f830c6e1189b85ae11f0d12340ecce3a8eed41da19a1313cd4e2664736f6c63430008130033","sourceMap":"3979:9952:42:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newCollateral\",\"type\":\"uint256\"}],\"name\":\"ActiveValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldValidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newValidator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"NewActiveValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"NewWaitingValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newCollateral\",\"type\":\"uint256\"}],\"name\":\"WaitingValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"WaitingValidatorLeft\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `ValidatorSet`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newCollateral","type":"uint256","indexed":false}],"type":"event","name":"ActiveValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"oldValidator","type":"address","indexed":false},{"internalType":"address","name":"newValidator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorReplaced","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"collateral","type":"uint256","indexed":false}],"type":"event","name":"NewActiveValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"collateral","type":"uint256","indexed":false}],"type":"event","name":"NewWaitingValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newCollateral","type":"uint256","indexed":false}],"type":"event","name":"WaitingValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"WaitingValidatorLeft","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorSet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":13522,"exportedSymbols":{"Address":[1625],"AddressShouldBeValidator":[6051],"AddressStakingReleases":[16274],"CannotConfirmFutureChanges":[6055],"GatewayActorStorage":[11147],"IGateway":[8843],"InvalidConfigurationNumber":[6091],"LibAddressStakingReleases":[11618],"LibGatewayActorStorage":[11158],"LibMaxPQ":[15248],"LibMinPQ":[15867],"LibStaking":[13299],"LibStakingChangeLog":[13719],"LibStakingReleaseQueue":[11737],"LibSubnetActorStorage":[13850],"LibValidatorSet":[12589],"LibValidatorTracking":[13521],"MaxPQ":[14643],"MinPQ":[15261],"NoCollateralToWithdraw":[6121],"NoRewardToWithdraw":[6123],"NotValidator":[6163],"ParentValidatorsTracker":[16320],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingChangeRequest":[16244],"StakingOperation":[16230],"StakingRelease":[16264],"StakingReleaseQueue":[16284],"SubnetActorStorage":[13839],"Validator":[16334],"ValidatorSet":[16313],"WithdrawExceedingCollateral":[6183]},"nodeType":"SourceUnit","src":"46:25012:42","nodes":[{"id":11448,"nodeType":"PragmaDirective","src":"46:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11450,"nodeType":"ImportDirective","src":"71:52:42","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":8844,"symbolAliases":[{"foreign":{"id":11449,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"79:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11453,"nodeType":"ImportDirective","src":"124:86:42","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":11451,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"132:21:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11452,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"155:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11456,"nodeType":"ImportDirective","src":"211:94:42","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":11454,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"219:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11455,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"240:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11459,"nodeType":"ImportDirective","src":"306:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15249,"symbolAliases":[{"foreign":{"id":11457,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"314:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11458,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14643,"src":"324:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11462,"nodeType":"ImportDirective","src":"363:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15868,"symbolAliases":[{"foreign":{"id":11460,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"371:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11461,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"381:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11464,"nodeType":"ImportDirective","src":"420:62:42","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13720,"symbolAliases":[{"foreign":{"id":11463,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"428:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11475,"nodeType":"ImportDirective","src":"483:221:42","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11465,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"491:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11466,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"512:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11467,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"530:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11468,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"545:20:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"567:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11470,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"585:14:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11471,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"601:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11472,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16274,"src":"615:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11473,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"639:23:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11474,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"664:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11483,"nodeType":"ImportDirective","src":"705:208:42","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11476,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"713:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11477,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"733:27:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11478,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"762:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11479,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"776:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11480,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"804:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11481,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"828:24:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11482,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"854:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11485,"nodeType":"ImportDirective","src":"914:65:42","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":11484,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"922:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11618,"nodeType":"ContractDefinition","src":"981:1635:42","nodes":[{"id":11524,"nodeType":"FunctionDefinition","src":"1197:261:42","nodes":[],"body":{"id":11523,"nodeType":"Block","src":"1288:170:42","nodes":[],"statements":[{"assignments":[11496],"declarations":[{"constant":false,"id":11496,"mutability":"mutable","name":"length","nameLocation":"1305:6:42","nodeType":"VariableDeclaration","scope":11523,"src":"1298:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1298:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11499,"initialValue":{"expression":{"id":11497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1314:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1319:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1314:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1298:27:42"},{"assignments":[11501],"declarations":[{"constant":false,"id":11501,"mutability":"mutable","name":"nextIdx","nameLocation":"1342:7:42","nodeType":"VariableDeclaration","scope":11523,"src":"1335:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11500,"name":"uint16","nodeType":"ElementaryTypeName","src":"1335:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11506,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1352:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1357:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1352:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11504,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1368:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1352:22:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1335:39:42"},{"expression":{"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1385:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1390:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"1385:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11511,"indexExpression":{"id":11509,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"1399:7:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1385:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11512,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11492,"src":"1410:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1385:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"id":11514,"nodeType":"ExpressionStatement","src":"1385:32:42"},{"expression":{"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11515,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1427:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1432:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1427:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11518,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1441:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1441:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1427:24:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11522,"nodeType":"ExpressionStatement","src":"1427:24:42"}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"1021:171:42","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1206:4:42","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11489,"mutability":"mutable","name":"self","nameLocation":"1242:4:42","nodeType":"VariableDeclaration","scope":11524,"src":"1211:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11488,"nodeType":"UserDefinedTypeName","pathNode":{"id":11487,"name":"AddressStakingReleases","nameLocations":["1211:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1211:22:42"},"referencedDeclaration":16274,"src":"1211:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"release","nameLocation":"1270:7:42","nodeType":"VariableDeclaration","scope":11524,"src":"1248:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11491,"nodeType":"UserDefinedTypeName","pathNode":{"id":11490,"name":"StakingRelease","nameLocations":["1248:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"1248:14:42"},"referencedDeclaration":16264,"src":"1248:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1210:68:42"},"returnParameters":{"id":11494,"nodeType":"ParameterList","parameters":[],"src":"1288:0:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11617,"nodeType":"FunctionDefinition","src":"1716:898:42","nodes":[],"body":{"id":11616,"nodeType":"Block","src":"1805:809:42","nodes":[],"statements":[{"assignments":[11536],"declarations":[{"constant":false,"id":11536,"mutability":"mutable","name":"length","nameLocation":"1822:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"1815:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11535,"name":"uint16","nodeType":"ElementaryTypeName","src":"1815:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11539,"initialValue":{"expression":{"id":11537,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1831:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1831:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1815:27:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1856:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1861:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1856:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1871:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1856:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11548,"nodeType":"IfStatement","src":"1852:78:42","trueBody":{"id":11547,"nodeType":"Block","src":"1874:56:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11544,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1895:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"RevertStatement","src":"1888:31:42"}]}},{"assignments":[11550],"declarations":[{"constant":false,"id":11550,"mutability":"mutable","name":"i","nameLocation":"1947:1:42","nodeType":"VariableDeclaration","scope":11616,"src":"1940:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11549,"name":"uint16","nodeType":"ElementaryTypeName","src":"1940:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11553,"initialValue":{"expression":{"id":11551,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1951:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1956:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1951:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1940:24:42"},{"assignments":[11555],"declarations":[{"constant":false,"id":11555,"mutability":"mutable","name":"newLength","nameLocation":"1981:9:42","nodeType":"VariableDeclaration","scope":11616,"src":"1974:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1974:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11557,"initialValue":{"id":11556,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"1993:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1974:25:42"},{"assignments":[11559],"declarations":[{"constant":false,"id":11559,"mutability":"mutable","name":"amount","nameLocation":"2017:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"2009:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11560,"nodeType":"VariableDeclarationStatement","src":"2009:14:42"},{"body":{"id":11598,"nodeType":"Block","src":"2052:458:42","statements":[{"assignments":[11566],"declarations":[{"constant":false,"id":11566,"mutability":"mutable","name":"release","nameLocation":"2088:7:42","nodeType":"VariableDeclaration","scope":11598,"src":"2066:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11565,"nodeType":"UserDefinedTypeName","pathNode":{"id":11564,"name":"StakingRelease","nameLocations":["2066:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"2066:14:42"},"referencedDeclaration":16264,"src":"2066:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11571,"initialValue":{"baseExpression":{"expression":{"id":11567,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2103:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2098:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11570,"indexExpression":{"id":11569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2112:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2066:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11572,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2263:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2271:9:42","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":16260,"src":"2263:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":11574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2283:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2289:6:42","memberName":"number","nodeType":"MemberAccess","src":"2283:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2263:32:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11579,"nodeType":"IfStatement","src":"2259:76:42","trueBody":{"id":11578,"nodeType":"Block","src":"2297:38:42","statements":[{"id":11577,"nodeType":"Break","src":"2315:5:42"}]}},{"expression":{"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":11581,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2359:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2367:6:42","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":16263,"src":"2359:14:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2349:24:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11584,"nodeType":"ExpressionStatement","src":"2349:24:42"},{"expression":{"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2387:23:42","subExpression":{"baseExpression":{"expression":{"id":11585,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2394:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2394:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11588,"indexExpression":{"id":11587,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2408:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2394:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"2387:23:42"},{"id":11597,"nodeType":"UncheckedBlock","src":"2425:75:42","statements":[{"expression":{"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2453:3:42","subExpression":{"id":11591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2455:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11593,"nodeType":"ExpressionStatement","src":"2453:3:42"},{"expression":{"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2474:11:42","subExpression":{"id":11594,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2476:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11596,"nodeType":"ExpressionStatement","src":"2474:11:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2040:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11562,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"2044:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2040:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11599,"nodeType":"WhileStatement","src":"2033:477:42"},{"expression":{"id":11604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2520:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2525:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"2520:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2536:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2520:17:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11605,"nodeType":"ExpressionStatement","src":"2520:17:42"},{"expression":{"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11606,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2547:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2552:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"2547:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11609,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2561:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2547:23:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11611,"nodeType":"ExpressionStatement","src":"2547:23:42"},{"expression":{"components":[{"id":11612,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2589:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11613,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2597:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":11614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2588:19:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":11534,"id":11615,"nodeType":"Return","src":"2581:26:42"}]},"documentation":{"id":11525,"nodeType":"StructuredDocumentation","src":"1464:247:42","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1725:7:42","parameters":{"id":11529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11528,"mutability":"mutable","name":"self","nameLocation":"1764:4:42","nodeType":"VariableDeclaration","scope":11617,"src":"1733:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11527,"nodeType":"UserDefinedTypeName","pathNode":{"id":11526,"name":"AddressStakingReleases","nameLocations":["1733:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1733:22:42"},"referencedDeclaration":16274,"src":"1733:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1732:37:42"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1788:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1797:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11532,"name":"uint16","nodeType":"ElementaryTypeName","src":"1797:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1787:17:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11618],"name":"LibAddressStakingReleases","nameLocation":"989:25:42","scope":13522,"usedErrors":[]},{"id":11737,"nodeType":"ContractDefinition","src":"2665:1272:42","nodes":[{"id":11622,"nodeType":"UsingForDirective","src":"2702:34:42","nodes":[],"global":false,"libraryName":{"id":11620,"name":"Address","nameLocations":["2708:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"2708:7:42"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"2720:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11626,"nodeType":"UsingForDirective","src":"2741:59:42","nodes":[],"global":false,"libraryName":{"id":11623,"name":"LibAddressStakingReleases","nameLocations":["2747:25:42"],"nodeType":"IdentifierPath","referencedDeclaration":11618,"src":"2747:25:42"},"typeName":{"id":11625,"nodeType":"UserDefinedTypeName","pathNode":{"id":11624,"name":"AddressStakingReleases","nameLocations":["2777:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"2777:22:42"},"referencedDeclaration":16274,"src":"2777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":11634,"nodeType":"EventDefinition","src":"2806:84:42","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2812:20:42","parameters":{"id":11633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11628,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2841:9:42","nodeType":"VariableDeclaration","scope":11634,"src":"2833:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11627,"name":"address","nodeType":"ElementaryTypeName","src":"2833:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11630,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2860:6:42","nodeType":"VariableDeclaration","scope":11634,"src":"2852:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2852:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11632,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2876:12:42","nodeType":"VariableDeclaration","scope":11634,"src":"2868:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2868:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2832:57:42"}},{"id":11649,"nodeType":"FunctionDefinition","src":"2896:130:42","nodes":[],"body":{"id":11648,"nodeType":"Block","src":"2980:46:42","nodes":[],"statements":[{"expression":{"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"2990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2995:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"2990:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11645,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"3013:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11647,"nodeType":"ExpressionStatement","src":"2990:29:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2905:15:42","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11637,"mutability":"mutable","name":"self","nameLocation":"2949:4:42","nodeType":"VariableDeclaration","scope":11649,"src":"2921:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11636,"nodeType":"UserDefinedTypeName","pathNode":{"id":11635,"name":"StakingReleaseQueue","nameLocations":["2921:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2921:19:42"},"referencedDeclaration":16284,"src":"2921:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"blocks","nameLocation":"2963:6:42","nodeType":"VariableDeclaration","scope":11649,"src":"2955:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2920:50:42"},"returnParameters":{"id":11641,"nodeType":"ParameterList","parameters":[],"src":"2980:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11692,"nodeType":"FunctionDefinition","src":"3095:419:42","nodes":[],"body":{"id":11691,"nodeType":"Block","src":"3196:318:42","nodes":[],"statements":[{"assignments":[11661],"declarations":[{"constant":false,"id":11661,"mutability":"mutable","name":"releaseAt","nameLocation":"3214:9:42","nodeType":"VariableDeclaration","scope":11691,"src":"3206:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3206:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11667,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11662,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3226:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3232:6:42","memberName":"number","nodeType":"MemberAccess","src":"3226:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3241:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3246:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"3241:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3206:55:42"},{"assignments":[11670],"declarations":[{"constant":false,"id":11670,"mutability":"mutable","name":"release","nameLocation":"3293:7:42","nodeType":"VariableDeclaration","scope":11691,"src":"3271:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11669,"nodeType":"UserDefinedTypeName","pathNode":{"id":11668,"name":"StakingRelease","nameLocations":["3271:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"3271:14:42"},"referencedDeclaration":16264,"src":"3271:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11675,"initialValue":{"arguments":[{"id":11672,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3330:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11673,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11671,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"3303:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$16264_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3319:9:42","3341:6:42"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3303:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3271:86:42"},{"expression":{"arguments":[{"id":11682,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"3398:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":11676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3368:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11680,"indexExpression":{"id":11678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3382:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3368:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3393:4:42","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":11524,"src":"3368:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$_t_struct$_StakingRelease_$16264_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"3368:38:42"},{"eventCall":{"arguments":[{"id":11686,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3455:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3474:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11688,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3496:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11685,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11634,"src":"3422:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3444:9:42","3466:6:42","3482:12:42"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3422:85:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11690,"nodeType":"EmitStatement","src":"3417:90:42"}]},"documentation":{"id":11650,"nodeType":"StructuredDocumentation","src":"3032:58:42","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3104:13:42","parameters":{"id":11658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11653,"mutability":"mutable","name":"self","nameLocation":"3146:4:42","nodeType":"VariableDeclaration","scope":11692,"src":"3118:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11652,"nodeType":"UserDefinedTypeName","pathNode":{"id":11651,"name":"StakingReleaseQueue","nameLocations":["3118:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3118:19:42"},"referencedDeclaration":16284,"src":"3118:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11655,"mutability":"mutable","name":"validator","nameLocation":"3160:9:42","nodeType":"VariableDeclaration","scope":11692,"src":"3152:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11654,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11657,"mutability":"mutable","name":"amount","nameLocation":"3179:6:42","nodeType":"VariableDeclaration","scope":11692,"src":"3171:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11656,"name":"uint256","nodeType":"ElementaryTypeName","src":"3171:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3117:69:42"},"returnParameters":{"id":11659,"nodeType":"ParameterList","parameters":[],"src":"3196:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11736,"nodeType":"FunctionDefinition","src":"3595:340:42","nodes":[],"body":{"id":11735,"nodeType":"Block","src":"3690:245:42","nodes":[],"statements":[{"assignments":[11704,11706],"declarations":[{"constant":false,"id":11704,"mutability":"mutable","name":"amount","nameLocation":"3709:6:42","nodeType":"VariableDeclaration","scope":11735,"src":"3701:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11703,"name":"uint256","nodeType":"ElementaryTypeName","src":"3701:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"newLength","nameLocation":"3724:9:42","nodeType":"VariableDeclaration","scope":11735,"src":"3717:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11705,"name":"uint16","nodeType":"ElementaryTypeName","src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11713,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":11707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3737:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3737:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11710,"indexExpression":{"id":11709,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3751:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3762:7:42","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":11617,"src":"3737:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3700:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11714,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"3786:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3799:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3786:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11724,"nodeType":"IfStatement","src":"3782:76:42","trueBody":{"id":11723,"nodeType":"Block","src":"3802:56:42","statements":[{"expression":{"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3816:31:42","subExpression":{"baseExpression":{"expression":{"id":11717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3823:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3828:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3823:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11720,"indexExpression":{"id":11719,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3837:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3823:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11722,"nodeType":"ExpressionStatement","src":"3816:31:42"}]}},{"expression":{"arguments":[{"id":11730,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3897:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11727,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3876:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11725,"name":"address","nodeType":"ElementaryTypeName","src":"3868:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"3868:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11732,"nodeType":"ExpressionStatement","src":"3868:36:42"},{"expression":{"id":11733,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3922:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11702,"id":11734,"nodeType":"Return","src":"3915:13:42"}]},"documentation":{"id":11693,"nodeType":"StructuredDocumentation","src":"3520:70:42","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3604:5:42","parameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"self","nameLocation":"3638:4:42","nodeType":"VariableDeclaration","scope":11736,"src":"3610:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11695,"nodeType":"UserDefinedTypeName","pathNode":{"id":11694,"name":"StakingReleaseQueue","nameLocations":["3610:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3610:19:42"},"referencedDeclaration":16284,"src":"3610:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11698,"mutability":"mutable","name":"validator","nameLocation":"3652:9:42","nodeType":"VariableDeclaration","scope":11736,"src":"3644:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11697,"name":"address","nodeType":"ElementaryTypeName","src":"3644:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3609:53:42"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11736,"src":"3681:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3681:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3680:9:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":11619,"nodeType":"StructuredDocumentation","src":"2618:47:42","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[11737],"name":"LibStakingReleaseQueue","nameLocation":"2673:22:42","scope":13522,"usedErrors":[]},{"id":12589,"nodeType":"ContractDefinition","src":"3979:9952:42","nodes":[{"id":11742,"nodeType":"UsingForDirective","src":"4009:25:42","nodes":[],"global":false,"libraryName":{"id":11739,"name":"LibMinPQ","nameLocations":["4015:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"4015:8:42"},"typeName":{"id":11741,"nodeType":"UserDefinedTypeName","pathNode":{"id":11740,"name":"MinPQ","nameLocations":["4028:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4028:5:42"},"referencedDeclaration":15261,"src":"4028:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":11746,"nodeType":"UsingForDirective","src":"4039:25:42","nodes":[],"global":false,"libraryName":{"id":11743,"name":"LibMaxPQ","nameLocations":["4045:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"4045:8:42"},"typeName":{"id":11745,"nodeType":"UserDefinedTypeName","pathNode":{"id":11744,"name":"MaxPQ","nameLocations":["4058:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4058:5:42"},"referencedDeclaration":14643,"src":"4058:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":11752,"nodeType":"EventDefinition","src":"4070:81:42","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"4076:32:42","parameters":{"id":11751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11748,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4117:9:42","nodeType":"VariableDeclaration","scope":11752,"src":"4109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11747,"name":"address","nodeType":"ElementaryTypeName","src":"4109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11750,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4136:13:42","nodeType":"VariableDeclaration","scope":11752,"src":"4128:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4108:42:42"}},{"id":11758,"nodeType":"EventDefinition","src":"4156:82:42","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4162:33:42","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11754,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4204:9:42","nodeType":"VariableDeclaration","scope":11758,"src":"4196:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11753,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11756,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4223:13:42","nodeType":"VariableDeclaration","scope":11758,"src":"4215:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4195:42:42"}},{"id":11764,"nodeType":"EventDefinition","src":"4243:64:42","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4249:18:42","parameters":{"id":11763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11760,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4276:9:42","nodeType":"VariableDeclaration","scope":11764,"src":"4268:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11759,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11762,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4295:10:42","nodeType":"VariableDeclaration","scope":11764,"src":"4287:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4267:39:42"}},{"id":11770,"nodeType":"EventDefinition","src":"4312:65:42","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4318:19:42","parameters":{"id":11769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11766,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4346:9:42","nodeType":"VariableDeclaration","scope":11770,"src":"4338:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11765,"name":"address","nodeType":"ElementaryTypeName","src":"4338:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11768,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4365:10:42","nodeType":"VariableDeclaration","scope":11770,"src":"4357:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11767,"name":"uint256","nodeType":"ElementaryTypeName","src":"4357:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4337:39:42"}},{"id":11776,"nodeType":"EventDefinition","src":"4382:74:42","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4388:23:42","parameters":{"id":11775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11772,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4420:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4412:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11771,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11774,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4442:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4434:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11773,"name":"address","nodeType":"ElementaryTypeName","src":"4434:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4411:44:42"}},{"id":11780,"nodeType":"EventDefinition","src":"4461:45:42","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4467:19:42","parameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4495:9:42","nodeType":"VariableDeclaration","scope":11780,"src":"4487:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11777,"name":"address","nodeType":"ElementaryTypeName","src":"4487:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4486:19:42"}},{"id":11784,"nodeType":"EventDefinition","src":"4511:46:42","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4517:20:42","parameters":{"id":11783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4546:9:42","nodeType":"VariableDeclaration","scope":11784,"src":"4538:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11781,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4537:19:42"}},{"id":11799,"nodeType":"FunctionDefinition","src":"4633:178:42","nodes":[],"body":{"id":11798,"nodeType":"Block","src":"4746:65:42","nodes":[],"statements":[{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11793,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11791,"src":"4756:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11794,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"4769:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4780:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"4769:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4756:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"4756:48:42"}]},"documentation":{"id":11785,"nodeType":"StructuredDocumentation","src":"4563:65:42","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4642:27:42","parameters":{"id":11789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11788,"mutability":"mutable","name":"validators","nameLocation":"4691:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4670:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11787,"nodeType":"UserDefinedTypeName","pathNode":{"id":11786,"name":"ValidatorSet","nameLocations":["4670:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4670:12:42"},"referencedDeclaration":16313,"src":"4670:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4669:33:42"},"returnParameters":{"id":11792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11791,"mutability":"mutable","name":"collateral","nameLocation":"4734:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4726:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11790,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4725:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11816,"nodeType":"FunctionDefinition","src":"4866:163:42","nodes":[],"body":{"id":11815,"nodeType":"Block","src":"4967:62:42","nodes":[],"statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11808,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11806,"src":"4977:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11809,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"4985:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4996:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"4985:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5013:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"4985:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4985:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4977:45:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11814,"nodeType":"ExpressionStatement","src":"4977:45:42"}]},"documentation":{"id":11800,"nodeType":"StructuredDocumentation","src":"4817:44:42","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"4875:21:42","parameters":{"id":11804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"validators","nameLocation":"4918:10:42","nodeType":"VariableDeclaration","scope":11816,"src":"4897:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11802,"nodeType":"UserDefinedTypeName","pathNode":{"id":11801,"name":"ValidatorSet","nameLocations":["4897:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4897:12:42"},"referencedDeclaration":16313,"src":"4897:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4896:33:42"},"returnParameters":{"id":11807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11806,"mutability":"mutable","name":"total","nameLocation":"4960:5:42","nodeType":"VariableDeclaration","scope":11816,"src":"4953:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11805,"name":"uint16","nodeType":"ElementaryTypeName","src":"4953:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4952:14:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11836,"nodeType":"FunctionDefinition","src":"5098:231:42","nodes":[],"body":{"id":11835,"nodeType":"Block","src":"5247:82:42","nodes":[],"statements":[{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11825,"src":"5257:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"5270:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5281:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"5270:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11831,"indexExpression":{"id":11830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5292:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5270:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"5270:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5257:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11834,"nodeType":"ExpressionStatement","src":"5257:65:42"}]},"documentation":{"id":11817,"nodeType":"StructuredDocumentation","src":"5035:58:42","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5107:22:42","parameters":{"id":11823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11820,"mutability":"mutable","name":"validators","nameLocation":"5160:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5139:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11819,"nodeType":"UserDefinedTypeName","pathNode":{"id":11818,"name":"ValidatorSet","nameLocations":["5139:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5139:12:42"},"referencedDeclaration":16313,"src":"5139:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"validator","nameLocation":"5188:9:42","nodeType":"VariableDeclaration","scope":11836,"src":"5180:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5129:74:42"},"returnParameters":{"id":11826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11825,"mutability":"mutable","name":"collateral","nameLocation":"5235:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5227:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5227:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5226:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11888,"nodeType":"FunctionDefinition","src":"5335:434:42","nodes":[],"body":{"id":11887,"nodeType":"Block","src":"5449:320:42","nodes":[],"statements":[{"assignments":[11846],"declarations":[{"constant":false,"id":11846,"mutability":"mutable","name":"size","nameLocation":"5466:4:42","nodeType":"VariableDeclaration","scope":11887,"src":"5459:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11845,"name":"uint16","nodeType":"ElementaryTypeName","src":"5459:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11847,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5473:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5484:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5473:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5501:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5473:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5473:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5459:51:42"},{"expression":{"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11852,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5520:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5546:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":11855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5532:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":11853,"name":"address","nodeType":"ElementaryTypeName","src":"5536:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11854,"nodeType":"ArrayTypeName","src":"5536:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5520:31:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11859,"nodeType":"ExpressionStatement","src":"5520:31:42"},{"body":{"id":11883,"nodeType":"Block","src":"5593:144:42","statements":[{"expression":{"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11867,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5607:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11871,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5617:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5621:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5617:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5607:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5665:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5626:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5637:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5626:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5654:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"5626:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5607:60:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11878,"nodeType":"ExpressionStatement","src":"5607:60:42"},{"id":11882,"nodeType":"UncheckedBlock","src":"5681:46:42","statements":[{"expression":{"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5709:3:42","subExpression":{"id":11879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5711:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11881,"nodeType":"ExpressionStatement","src":"5709:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5580:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11865,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5585:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5580:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11884,"initializationExpression":{"assignments":[11861],"declarations":[{"constant":false,"id":11861,"mutability":"mutable","name":"i","nameLocation":"5573:1:42","nodeType":"VariableDeclaration","scope":11884,"src":"5566:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5566:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11863,"initialValue":{"hexValue":"31","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5577:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5566:12:42"},"nodeType":"ForStatement","src":"5561:176:42"},{"expression":{"id":11885,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5753:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11844,"id":11886,"nodeType":"Return","src":"5746:16:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5344:20:42","parameters":{"id":11840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11839,"mutability":"mutable","name":"validators","nameLocation":"5386:10:42","nodeType":"VariableDeclaration","scope":11888,"src":"5365:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11838,"nodeType":"UserDefinedTypeName","pathNode":{"id":11837,"name":"ValidatorSet","nameLocations":["5365:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5365:12:42"},"referencedDeclaration":16313,"src":"5365:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5364:33:42"},"returnParameters":{"id":11844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11843,"mutability":"mutable","name":"addresses","nameLocation":"5438:9:42","nodeType":"VariableDeclaration","scope":11888,"src":"5421:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11841,"name":"address","nodeType":"ElementaryTypeName","src":"5421:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11842,"nodeType":"ArrayTypeName","src":"5421:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5420:28:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11933,"nodeType":"FunctionDefinition","src":"5840:432:42","nodes":[],"body":{"id":11932,"nodeType":"Block","src":"5945:327:42","nodes":[],"statements":[{"assignments":[11898],"declarations":[{"constant":false,"id":11898,"mutability":"mutable","name":"size","nameLocation":"5962:4:42","nodeType":"VariableDeclaration","scope":11932,"src":"5955:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11897,"name":"uint16","nodeType":"ElementaryTypeName","src":"5955:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11899,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"5969:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5969:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5969:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5955:51:42"},{"body":{"id":11930,"nodeType":"Block","src":"6048:218:42","statements":[{"assignments":[11912],"declarations":[{"constant":false,"id":11912,"mutability":"mutable","name":"validator","nameLocation":"6070:9:42","nodeType":"VariableDeclaration","scope":11930,"src":"6062:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11911,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11918,"initialValue":{"arguments":[{"id":11916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6121:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6082:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6093:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"6082:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6110:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"6082:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6062:61:42"},{"expression":{"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11919,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"6137:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":11921,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6174:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":11922,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"6186:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11920,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"6151:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6151:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:59:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11925,"nodeType":"ExpressionStatement","src":"6137:59:42"},{"id":11929,"nodeType":"UncheckedBlock","src":"6210:46:42","statements":[{"expression":{"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6238:3:42","subExpression":{"id":11926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6240:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11928,"nodeType":"ExpressionStatement","src":"6238:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6035:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11909,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"6040:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6035:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11931,"initializationExpression":{"assignments":[11905],"declarations":[{"constant":false,"id":11905,"mutability":"mutable","name":"i","nameLocation":"6028:1:42","nodeType":"VariableDeclaration","scope":11931,"src":"6021:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11904,"name":"uint16","nodeType":"ElementaryTypeName","src":"6021:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11907,"initialValue":{"hexValue":"31","id":11906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6032:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6021:12:42"},"nodeType":"ForStatement","src":"6016:250:42"}]},"documentation":{"id":11889,"nodeType":"StructuredDocumentation","src":"5775:60:42","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getActiveCollateral","nameLocation":"5849:19:42","parameters":{"id":11893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11892,"mutability":"mutable","name":"validators","nameLocation":"5890:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5869:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11891,"nodeType":"UserDefinedTypeName","pathNode":{"id":11890,"name":"ValidatorSet","nameLocations":["5869:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5869:12:42"},"referencedDeclaration":16313,"src":"5869:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5868:33:42"},"returnParameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"collateral","nameLocation":"5933:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5925:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5924:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12004,"nodeType":"FunctionDefinition","src":"6434:634:42","nodes":[],"body":{"id":12003,"nodeType":"Block","src":"6591:477:42","nodes":[],"statements":[{"assignments":[11947],"declarations":[{"constant":false,"id":11947,"mutability":"mutable","name":"size","nameLocation":"6609:4:42","nodeType":"VariableDeclaration","scope":12003,"src":"6601:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11950,"initialValue":{"expression":{"id":11948,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6616:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6626:6:42","memberName":"length","nodeType":"MemberAccess","src":"6616:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6601:31:42"},{"assignments":[11955],"declarations":[{"constant":false,"id":11955,"mutability":"mutable","name":"activeCollaterals","nameLocation":"6659:17:42","nodeType":"VariableDeclaration","scope":12003,"src":"6642:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11954,"nodeType":"ArrayTypeName","src":"6642:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11961,"initialValue":{"arguments":[{"id":11959,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6693:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6679:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6683:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11957,"nodeType":"ArrayTypeName","src":"6683:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6642:56:42"},{"body":{"id":11999,"nodeType":"Block","src":"6737:291:42","statements":[{"condition":{"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6755:44:42","subExpression":{"arguments":[{"id":11969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6774:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":11970,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6786:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11972,"indexExpression":{"id":11971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6796:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6786:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11968,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"6756:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6756:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11982,"nodeType":"IfStatement","src":"6751:116:42","trueBody":{"id":11981,"nodeType":"Block","src":"6801:66:42","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":11976,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6839:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11978,"indexExpression":{"id":11977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6849:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6839:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11975,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"6826:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11980,"nodeType":"RevertStatement","src":"6819:33:42"}]}},{"expression":{"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11983,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"6880:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11985,"indexExpression":{"id":11984,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6898:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6880:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11986,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6903:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6914:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"6903:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11991,"indexExpression":{"baseExpression":{"id":11988,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6925:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11990,"indexExpression":{"id":11989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6935:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6925:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6903:35:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6939:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"6903:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:78:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11994,"nodeType":"ExpressionStatement","src":"6880:78:42"},{"id":11998,"nodeType":"UncheckedBlock","src":"6972:46:42","statements":[{"expression":{"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7000:3:42","subExpression":{"id":11995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"7002:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11997,"nodeType":"ExpressionStatement","src":"7000:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6725:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11966,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6729:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6725:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12000,"initializationExpression":{"assignments":[11963],"declarations":[{"constant":false,"id":11963,"mutability":"mutable","name":"i","nameLocation":"6722:1:42","nodeType":"VariableDeclaration","scope":12000,"src":"6714:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11964,"nodeType":"VariableDeclarationStatement","src":"6714:9:42"},"nodeType":"ForStatement","src":"6709:319:42"},{"expression":{"id":12001,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"7044:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11945,"id":12002,"nodeType":"Return","src":"7037:24:42"}]},"documentation":{"id":11934,"nodeType":"StructuredDocumentation","src":"6278:151:42","text":"@notice Get the confirmed collaterals of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollaterals","nameLocation":"6443:23:42","parameters":{"id":11941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11937,"mutability":"mutable","name":"validators","nameLocation":"6497:10:42","nodeType":"VariableDeclaration","scope":12004,"src":"6476:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11936,"nodeType":"UserDefinedTypeName","pathNode":{"id":11935,"name":"ValidatorSet","nameLocations":["6476:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6476:12:42"},"referencedDeclaration":16313,"src":"6476:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11940,"mutability":"mutable","name":"addresses","nameLocation":"6534:9:42","nodeType":"VariableDeclaration","scope":12004,"src":"6517:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"6517:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11939,"nodeType":"ArrayTypeName","src":"6517:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6466:83:42"},"returnParameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12004,"src":"6573:16:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6573:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11943,"nodeType":"ArrayTypeName","src":"6573:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6572:18:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12021,"nodeType":"FunctionDefinition","src":"7074:167:42","nodes":[],"body":{"id":12020,"nodeType":"Block","src":"7176:65:42","nodes":[],"statements":[{"expression":{"arguments":[{"id":12017,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"7224:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"7193:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7198:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"7193:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"7193:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7193:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12013,"id":12019,"nodeType":"Return","src":"7186:48:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7083:17:42","parameters":{"id":12010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12007,"mutability":"mutable","name":"self","nameLocation":"7122:4:42","nodeType":"VariableDeclaration","scope":12021,"src":"7101:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12006,"nodeType":"UserDefinedTypeName","pathNode":{"id":12005,"name":"ValidatorSet","nameLocations":["7101:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7101:12:42"},"referencedDeclaration":16313,"src":"7101:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12009,"mutability":"mutable","name":"validator","nameLocation":"7136:9:42","nodeType":"VariableDeclaration","scope":12021,"src":"7128:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12008,"name":"address","nodeType":"ElementaryTypeName","src":"7128:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7100:46:42"},"returnParameters":{"id":12013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12021,"src":"7170:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12011,"name":"bool","nodeType":"ElementaryTypeName","src":"7170:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7169:6:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12042,"nodeType":"FunctionDefinition","src":"7282:176:42","nodes":[],"body":{"id":12041,"nodeType":"Block","src":"7389:69:42","nodes":[],"statements":[{"expression":{"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12032,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"7399:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7410:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7399:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12036,"indexExpression":{"id":12034,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12027,"src":"7421:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7399:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7432:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"7399:41:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"7443:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7399:52:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":12040,"nodeType":"ExpressionStatement","src":"7399:52:42"}]},"documentation":{"id":12022,"nodeType":"StructuredDocumentation","src":"7247:30:42","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"7291:11:42","parameters":{"id":12030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12025,"mutability":"mutable","name":"validators","nameLocation":"7324:10:42","nodeType":"VariableDeclaration","scope":12042,"src":"7303:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12024,"nodeType":"UserDefinedTypeName","pathNode":{"id":12023,"name":"ValidatorSet","nameLocations":["7303:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7303:12:42"},"referencedDeclaration":16313,"src":"7303:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12027,"mutability":"mutable","name":"validator","nameLocation":"7344:9:42","nodeType":"VariableDeclaration","scope":12042,"src":"7336:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12026,"name":"address","nodeType":"ElementaryTypeName","src":"7336:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12029,"mutability":"mutable","name":"metadata","nameLocation":"7370:8:42","nodeType":"VariableDeclaration","scope":12042,"src":"7355:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12028,"name":"bytes","nodeType":"ElementaryTypeName","src":"7355:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7302:77:42"},"returnParameters":{"id":12031,"nodeType":"ParameterList","parameters":[],"src":"7389:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12063,"nodeType":"FunctionDefinition","src":"7765:175:42","nodes":[],"body":{"id":12062,"nodeType":"Block","src":"7865:75:42","nodes":[],"statements":[{"expression":{"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12053,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"7875:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7886:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7875:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12057,"indexExpression":{"id":12055,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12048,"src":"7897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7875:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7908:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"7875:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"7927:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7875:58:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12061,"nodeType":"ExpressionStatement","src":"7875:58:42"}]},"documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"7697:63:42","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"7774:13:42","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12046,"mutability":"mutable","name":"validators","nameLocation":"7809:10:42","nodeType":"VariableDeclaration","scope":12063,"src":"7788:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"ValidatorSet","nameLocations":["7788:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7788:12:42"},"referencedDeclaration":16313,"src":"7788:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12048,"mutability":"mutable","name":"validator","nameLocation":"7829:9:42","nodeType":"VariableDeclaration","scope":12063,"src":"7821:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"7821:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12050,"mutability":"mutable","name":"amount","nameLocation":"7848:6:42","nodeType":"VariableDeclaration","scope":12063,"src":"7840:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12049,"name":"uint256","nodeType":"ElementaryTypeName","src":"7840:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7787:68:42"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"7865:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12104,"nodeType":"FunctionDefinition","src":"8012:364:42","nodes":[],"body":{"id":12103,"nodeType":"Block","src":"8113:263:42","nodes":[],"statements":[{"assignments":[12075],"declarations":[{"constant":false,"id":12075,"mutability":"mutable","name":"total","nameLocation":"8131:5:42","nodeType":"VariableDeclaration","scope":12103,"src":"8123:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12074,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12081,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12076,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8139:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8150:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8139:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12079,"indexExpression":{"id":12078,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8139:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8172:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8139:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8123:64:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12082,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8201:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12083,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8209:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12089,"nodeType":"IfStatement","src":"8197:81:42","trueBody":{"id":12088,"nodeType":"Block","src":"8217:61:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12085,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"8238:27:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8238:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12087,"nodeType":"RevertStatement","src":"8231:36:42"}]}},{"expression":{"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12090,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8288:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12091,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8297:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8288:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12093,"nodeType":"ExpressionStatement","src":"8288:15:42"},{"expression":{"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12094,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8313:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8313:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12098,"indexExpression":{"id":12096,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8335:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8346:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8313:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12100,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8364:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8313:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"8313:56:42"}]},"documentation":{"id":12064,"nodeType":"StructuredDocumentation","src":"7946:61:42","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8021:14:42","parameters":{"id":12072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12067,"mutability":"mutable","name":"validators","nameLocation":"8057:10:42","nodeType":"VariableDeclaration","scope":12104,"src":"8036:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12066,"nodeType":"UserDefinedTypeName","pathNode":{"id":12065,"name":"ValidatorSet","nameLocations":["8036:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8036:12:42"},"referencedDeclaration":16313,"src":"8036:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12069,"mutability":"mutable","name":"validator","nameLocation":"8077:9:42","nodeType":"VariableDeclaration","scope":12104,"src":"8069:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"8069:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12071,"mutability":"mutable","name":"amount","nameLocation":"8096:6:42","nodeType":"VariableDeclaration","scope":12104,"src":"8088:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12070,"name":"uint256","nodeType":"ElementaryTypeName","src":"8088:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8035:68:42"},"returnParameters":{"id":12073,"nodeType":"ParameterList","parameters":[],"src":"8113:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12146,"nodeType":"FunctionDefinition","src":"8382:408:42","nodes":[],"body":{"id":12145,"nodeType":"Block","src":"8477:313:42","nodes":[],"statements":[{"assignments":[12115],"declarations":[{"constant":false,"id":12115,"mutability":"mutable","name":"newCollateral","nameLocation":"8495:13:42","nodeType":"VariableDeclaration","scope":12145,"src":"8487:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8511:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8516:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8511:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12119,"indexExpression":{"id":12118,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8527:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8538:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8511:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8560:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8487:79:42"},{"expression":{"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8576:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8581:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8576:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12128,"indexExpression":{"id":12126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8592:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8576:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8603:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8576:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12130,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8625:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8576:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12132,"nodeType":"ExpressionStatement","src":"8576:62:42"},{"expression":{"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8649:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8654:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"8649:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8682:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8649:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12138,"nodeType":"ExpressionStatement","src":"8649:39:42"},{"expression":{"arguments":[{"id":12140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8723:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12141,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8742:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12142,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8768:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12139,"name":"depositReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"8699:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8717:4:42","8729:11:42","8753:13:42"],"names":["self","maybeActive","newCollateral"],"nodeType":"FunctionCall","src":"8699:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"8699:84:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"8391:14:42","parameters":{"id":12112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12107,"mutability":"mutable","name":"self","nameLocation":"8427:4:42","nodeType":"VariableDeclaration","scope":12146,"src":"8406:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12106,"nodeType":"UserDefinedTypeName","pathNode":{"id":12105,"name":"ValidatorSet","nameLocations":["8406:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8406:12:42"},"referencedDeclaration":16313,"src":"8406:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12109,"mutability":"mutable","name":"validator","nameLocation":"8441:9:42","nodeType":"VariableDeclaration","scope":12146,"src":"8433:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12108,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12111,"mutability":"mutable","name":"amount","nameLocation":"8460:6:42","nodeType":"VariableDeclaration","scope":12146,"src":"8452:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12110,"name":"uint256","nodeType":"ElementaryTypeName","src":"8452:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8405:62:42"},"returnParameters":{"id":12113,"nodeType":"ParameterList","parameters":[],"src":"8477:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12212,"nodeType":"FunctionDefinition","src":"8796:623:42","nodes":[],"body":{"id":12211,"nodeType":"Block","src":"8892:527:42","nodes":[],"statements":[{"assignments":[12157],"declarations":[{"constant":false,"id":12157,"mutability":"mutable","name":"newCollateral","nameLocation":"8910:13:42","nodeType":"VariableDeclaration","scope":12211,"src":"8902:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12156,"name":"uint256","nodeType":"ElementaryTypeName","src":"8902:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"8926:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8931:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8926:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12161,"indexExpression":{"id":12160,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"8942:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8926:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8953:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8926:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12163,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"8975:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8926:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8902:79:42"},{"assignments":[12167],"declarations":[{"constant":false,"id":12167,"mutability":"mutable","name":"totalCollateral","nameLocation":"8999:15:42","nodeType":"VariableDeclaration","scope":12211,"src":"8991:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12166,"name":"uint256","nodeType":"ElementaryTypeName","src":"8991:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12173,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9017:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9022:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9017:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12171,"indexExpression":{"id":12170,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9033:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9017:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9044:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"9017:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8991:68:42"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12174,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9074:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12177,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"9096:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9096:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9074:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12197,"nodeType":"Block","src":"9182:87:42","statements":[{"expression":{"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9196:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9201:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9196:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12192,"indexExpression":{"id":12190,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9212:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9223:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"9196:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12194,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9245:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12196,"nodeType":"ExpressionStatement","src":"9196:62:42"}]},"id":12198,"nodeType":"IfStatement","src":"9070:199:42","trueBody":{"id":12187,"nodeType":"Block","src":"9118:58:42","statements":[{"expression":{"id":12185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9132:33:42","subExpression":{"baseExpression":{"expression":{"id":12181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9139:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9144:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9139:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12184,"indexExpression":{"id":12183,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9155:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9139:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12186,"nodeType":"ExpressionStatement","src":"9132:33:42"}]}},{"expression":{"arguments":[{"id":12200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9304:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12201,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9321:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12202,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9347:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12199,"name":"withdrawReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12588,"src":"9279:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9298:4:42","9310:9:42","9332:13:42"],"names":["self","validator","newCollateral"],"nodeType":"FunctionCall","src":"9279:83:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12204,"nodeType":"ExpressionStatement","src":"9279:83:42"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9373:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9378:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"9373:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"9406:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9373:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12210,"nodeType":"ExpressionStatement","src":"9373:39:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"8805:15:42","parameters":{"id":12154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"mutability":"mutable","name":"self","nameLocation":"8842:4:42","nodeType":"VariableDeclaration","scope":12212,"src":"8821:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12148,"nodeType":"UserDefinedTypeName","pathNode":{"id":12147,"name":"ValidatorSet","nameLocations":["8821:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8821:12:42"},"referencedDeclaration":16313,"src":"8821:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12151,"mutability":"mutable","name":"validator","nameLocation":"8856:9:42","nodeType":"VariableDeclaration","scope":12212,"src":"8848:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12150,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12153,"mutability":"mutable","name":"amount","nameLocation":"8875:6:42","nodeType":"VariableDeclaration","scope":12212,"src":"8867:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:62:42"},"returnParameters":{"id":12155,"nodeType":"ParameterList","parameters":[],"src":"8892:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12377,"nodeType":"FunctionDefinition","src":"9514:2248:42","nodes":[],"body":{"id":12376,"nodeType":"Block","src":"9620:2142:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12226,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9665:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12223,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"9634:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12244,"nodeType":"IfStatement","src":"9630:231:42","trueBody":{"id":12243,"nodeType":"Block","src":"9679:182:42","statements":[{"expression":{"arguments":[{"id":12233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9733:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12234,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9739:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9693:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9693:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9715:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15574,"src":"9693:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"9693:58:42"},{"eventCall":{"arguments":[{"id":12238,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9803:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12239,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"9816:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12237,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"9770:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9770:60:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12241,"nodeType":"EmitStatement","src":"9765:65:42"},{"functionReturnParameters":12222,"id":12242,"nodeType":"Return","src":"9844:7:42"}]}},{"assignments":[12246],"declarations":[{"constant":false,"id":12246,"mutability":"mutable","name":"activeLimit","nameLocation":"9930:11:42","nodeType":"VariableDeclaration","scope":12376,"src":"9923:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12245,"name":"uint16","nodeType":"ElementaryTypeName","src":"9923:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12249,"initialValue":{"expression":{"id":12247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9944:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:11:42","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"9944:16:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9923:37:42"},{"assignments":[12251],"declarations":[{"constant":false,"id":12251,"mutability":"mutable","name":"activeSize","nameLocation":"9977:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"9970:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12250,"name":"uint16","nodeType":"ElementaryTypeName","src":"9970:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9995:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9990:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10012:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"9990:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9970:51:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12257,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"10035:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12258,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12251,"src":"10049:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10035:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12276,"nodeType":"IfStatement","src":"10031:267:42","trueBody":{"id":12275,"nodeType":"Block","src":"10061:237:42","statements":[{"expression":{"arguments":[{"id":12265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12266,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10190:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10155:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10160:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10155:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10177:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"10155:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10155:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12268,"nodeType":"ExpressionStatement","src":"10155:47:42"},{"eventCall":{"arguments":[{"id":12270,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10240:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12271,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10253:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12269,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"10221:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12273,"nodeType":"EmitStatement","src":"10216:51:42"},{"functionReturnParameters":12222,"id":12274,"nodeType":"Return","src":"10281:7:42"}]}},{"assignments":[12278,12280],"declarations":[{"constant":false,"id":12278,"mutability":"mutable","name":"minAddress","nameLocation":"10845:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"10837:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12277,"name":"address","nodeType":"ElementaryTypeName","src":"10837:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12280,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"10865:19:42","nodeType":"VariableDeclaration","scope":12376,"src":"10857:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12279,"name":"uint256","nodeType":"ElementaryTypeName","src":"10857:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12286,"initialValue":{"arguments":[{"id":12284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10914:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10888:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10888:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10910:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"10888:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10888:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10836:83:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12287,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"10933:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12288,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10955:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10933:35:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12339,"nodeType":"IfStatement","src":"10929:462:42","trueBody":{"id":12338,"nodeType":"Block","src":"10970:421:42","statements":[{"expression":{"arguments":[{"id":12295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11010:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10984:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10989:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10984:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11006:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"10984:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10984:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12297,"nodeType":"ExpressionStatement","src":"10984:31:42"},{"condition":{"arguments":[{"id":12301,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11066:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12298,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11034:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11039:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11034:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11057:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11034:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11034:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12313,"nodeType":"IfStatement","src":"11030:140:42","trueBody":{"id":12312,"nodeType":"Block","src":"11080:90:42","statements":[{"expression":{"arguments":[{"id":12308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12309,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11143:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11103:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11098:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11121:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"11098:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11098:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12311,"nodeType":"ExpressionStatement","src":"11098:57:42"}]}},{"expression":{"arguments":[{"id":12319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11213:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12320,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11219:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12314,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11189:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"11184:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"11184:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12322,"nodeType":"ExpressionStatement","src":"11184:47:42"},{"expression":{"arguments":[{"id":12328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11275:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12329,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11281:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11245:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11250:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11245:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11268:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11245:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11245:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12331,"nodeType":"ExpressionStatement","src":"11245:47:42"},{"eventCall":{"arguments":[{"id":12333,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11336:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12334,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11348:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12332,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"11312:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11312:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12336,"nodeType":"EmitStatement","src":"11307:53:42"},{"functionReturnParameters":12222,"id":12337,"nodeType":"Return","src":"11374:7:42"}]}},{"condition":{"arguments":[{"id":12343,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11437:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12340,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11405:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11410:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11405:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11428:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11405:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11405:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12361,"nodeType":"IfStatement","src":"11401:234:42","trueBody":{"id":12360,"nodeType":"Block","src":"11451:184:42","statements":[{"expression":{"arguments":[{"id":12350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11506:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12351,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11512:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11465:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11470:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11465:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11488:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"11465:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11465:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12353,"nodeType":"ExpressionStatement","src":"11465:59:42"},{"eventCall":{"arguments":[{"id":12355,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11577:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12356,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11590:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12354,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"11543:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:61:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12358,"nodeType":"EmitStatement","src":"11538:66:42"},{"functionReturnParameters":12222,"id":12359,"nodeType":"Return","src":"11618:7:42"}]}},{"expression":{"arguments":[{"id":12367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11675:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12368,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11681:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12362,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11645:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11650:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11645:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11668:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11645:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11645:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12370,"nodeType":"ExpressionStatement","src":"11645:48:42"},{"eventCall":{"arguments":[{"id":12372,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11728:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12373,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11741:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12371,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"11708:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11708:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12375,"nodeType":"EmitStatement","src":"11703:52:42"}]},"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"9425:84:42","text":"@notice Reshuffles the active and waiting validators when a deposit is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"depositReshuffle","nameLocation":"9523:16:42","parameters":{"id":12221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12216,"mutability":"mutable","name":"self","nameLocation":"9561:4:42","nodeType":"VariableDeclaration","scope":12377,"src":"9540:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12215,"nodeType":"UserDefinedTypeName","pathNode":{"id":12214,"name":"ValidatorSet","nameLocations":["9540:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"9540:12:42"},"referencedDeclaration":16313,"src":"9540:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12218,"mutability":"mutable","name":"maybeActive","nameLocation":"9575:11:42","nodeType":"VariableDeclaration","scope":12377,"src":"9567:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"9567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12220,"mutability":"mutable","name":"newCollateral","nameLocation":"9596:13:42","nodeType":"VariableDeclaration","scope":12377,"src":"9588:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12219,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:71:42"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[],"src":"9620:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12588,"nodeType":"FunctionDefinition","src":"11858:2071:42","nodes":[],"body":{"id":12587,"nodeType":"Block","src":"11963:1966:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12391,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12388,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"11977:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11977:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11977:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12428,"nodeType":"IfStatement","src":"11973:431:42","trueBody":{"id":12427,"nodeType":"Block","src":"12021:383:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12393,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12039:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12056:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12039:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12411,"nodeType":"IfStatement","src":"12035:190:42","trueBody":{"id":12410,"nodeType":"Block","src":"12059:166:42","statements":[{"expression":{"arguments":[{"id":12401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12116:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12122:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12396,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12077:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12077:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12100:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"12077:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12077:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"12077:55:42"},{"eventCall":{"arguments":[{"id":12406,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12176:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12405,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"12155:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12155:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12408,"nodeType":"EmitStatement","src":"12150:36:42"},{"functionReturnParameters":12387,"id":12409,"nodeType":"Return","src":"12204:7:42"}]}},{"expression":{"arguments":[{"id":12417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12279:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12418,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12285:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12412,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12238:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12243:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12238:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12261:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14991,"src":"12238:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12238:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"12238:57:42"},{"eventCall":{"arguments":[{"id":12422,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12348:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12423,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12359:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12421,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"12314:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12425,"nodeType":"EmitStatement","src":"12309:64:42"},{"functionReturnParameters":12387,"id":12426,"nodeType":"Return","src":"12387:7:42"}]}},{"condition":{"id":12434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12442:42:42","subExpression":{"arguments":[{"id":12432,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12474:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12429,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12443:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12448:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12443:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12465:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"12443:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12443:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12439,"nodeType":"IfStatement","src":"12438:106:42","trueBody":{"id":12438,"nodeType":"Block","src":"12486:58:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12435,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"12507:24:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12507:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12437,"nodeType":"RevertStatement","src":"12500:33:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12440,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12608:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12625:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12608:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12498,"nodeType":"IfStatement","src":"12604:523:42","trueBody":{"id":12497,"nodeType":"Block","src":"12628:499:42","statements":[{"expression":{"arguments":[{"id":12448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12680:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12449,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12686:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12642:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12647:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12642:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12664:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":15539,"src":"12642:37:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12642:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12451,"nodeType":"ExpressionStatement","src":"12642:54:42"},{"eventCall":{"arguments":[{"id":12453,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12735:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12452,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"12715:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12715:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12455,"nodeType":"EmitStatement","src":"12710:35:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12764:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12769:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12764:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12787:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"12764:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12764:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12800:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12764:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12495,"nodeType":"IfStatement","src":"12760:336:42","trueBody":{"id":12494,"nodeType":"Block","src":"12803:293:42","statements":[{"assignments":[12463,12465],"declarations":[{"constant":false,"id":12463,"mutability":"mutable","name":"toBePromoted","nameLocation":"12830:12:42","nodeType":"VariableDeclaration","scope":12494,"src":"12822:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12462,"name":"address","nodeType":"ElementaryTypeName","src":"12822:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12465,"mutability":"mutable","name":"collateral","nameLocation":"12852:10:42","nodeType":"VariableDeclaration","scope":12494,"src":"12844:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12464,"name":"uint256","nodeType":"ElementaryTypeName","src":"12844:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12471,"initialValue":{"arguments":[{"id":12469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12893:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12866:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12871:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12866:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12889:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"12866:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12866:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12821:77:42"},{"expression":{"arguments":[{"id":12477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12943:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12916:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12921:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12916:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12939:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"12916:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12916:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12479,"nodeType":"ExpressionStatement","src":"12916:32:42"},{"expression":{"arguments":[{"id":12485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12995:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12486,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13001:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12966:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12971:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12966:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12988:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"12966:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12966:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12488,"nodeType":"ExpressionStatement","src":"12966:48:42"},{"eventCall":{"arguments":[{"id":12490,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13056:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12491,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12465,"src":"13070:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12489,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"13037:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13037:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12493,"nodeType":"EmitStatement","src":"13032:49:42"}]}},{"functionReturnParameters":12387,"id":12496,"nodeType":"Return","src":"13110:7:42"}]}},{"expression":{"arguments":[{"id":12504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13177:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12505,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13183:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12499,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13142:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13137:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13159:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15609,"src":"13137:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13137:56:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12507,"nodeType":"ExpressionStatement","src":"13137:56:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13208:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13213:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13208:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13231:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"13208:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13244:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13208:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12516,"nodeType":"IfStatement","src":"13204:74:42","trueBody":{"id":12515,"nodeType":"Block","src":"13247:31:42","statements":[{"functionReturnParameters":12387,"id":12514,"nodeType":"Return","src":"13261:7:42"}]}},{"assignments":[12518,12520],"declarations":[{"constant":false,"id":12518,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"13297:12:42","nodeType":"VariableDeclaration","scope":12587,"src":"13289:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"13289:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"13319:19:42","nodeType":"VariableDeclaration","scope":12587,"src":"13311:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"13311:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12526,"initialValue":{"arguments":[{"id":12524,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12521,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13342:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13347:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13342:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13364:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"13342:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13342:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13288:85:42"},{"assignments":[12528,12530],"declarations":[{"constant":false,"id":12528,"mutability":"mutable","name":"mayBePromoted","nameLocation":"13392:13:42","nodeType":"VariableDeclaration","scope":12587,"src":"13384:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12527,"name":"address","nodeType":"ElementaryTypeName","src":"13384:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12530,"mutability":"mutable","name":"maxWaitingCollateral","nameLocation":"13415:20:42","nodeType":"VariableDeclaration","scope":12587,"src":"13407:28:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"13407:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12536,"initialValue":{"arguments":[{"id":12534,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13466:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13439:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13444:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13439:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13462:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"13439:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13383:88:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12537,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"13485:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12538,"name":"maxWaitingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"13507:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13485:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12581,"nodeType":"IfStatement","src":"13481:368:42","trueBody":{"id":12580,"nodeType":"Block","src":"13529:320:42","statements":[{"expression":{"arguments":[{"id":12545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13569:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13543:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13548:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13543:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13565:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"13543:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12547,"nodeType":"ExpressionStatement","src":"13543:31:42"},{"expression":{"arguments":[{"id":12553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12548,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13588:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13593:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13588:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13611:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"13588:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13588:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12555,"nodeType":"ExpressionStatement","src":"13588:32:42"},{"expression":{"arguments":[{"id":12561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13663:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12562,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13669:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13656:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"13634:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13634:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12564,"nodeType":"ExpressionStatement","src":"13634:49:42"},{"expression":{"arguments":[{"id":12570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13727:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12571,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13733:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13697:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13702:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13697:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13720:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"13697:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13697:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12573,"nodeType":"ExpressionStatement","src":"13697:49:42"},{"eventCall":{"arguments":[{"id":12575,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13790:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13804:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12574,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"13766:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12578,"nodeType":"EmitStatement","src":"13761:57:42"},{"functionReturnParameters":12387,"id":12579,"nodeType":"Return","src":"13832:7:42"}]}},{"eventCall":{"arguments":[{"id":12583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12584,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"13908:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12582,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"13864:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13864:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"EmitStatement","src":"13859:63:42"}]},"documentation":{"id":12378,"nodeType":"StructuredDocumentation","src":"11768:85:42","text":"@notice Reshuffles the active and waiting validators when a withdraw is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawReshuffle","nameLocation":"11867:17:42","parameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12381,"mutability":"mutable","name":"self","nameLocation":"11906:4:42","nodeType":"VariableDeclaration","scope":12588,"src":"11885:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12380,"nodeType":"UserDefinedTypeName","pathNode":{"id":12379,"name":"ValidatorSet","nameLocations":["11885:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"11885:12:42"},"referencedDeclaration":16313,"src":"11885:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12383,"mutability":"mutable","name":"validator","nameLocation":"11920:9:42","nodeType":"VariableDeclaration","scope":12588,"src":"11912:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12382,"name":"address","nodeType":"ElementaryTypeName","src":"11912:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12385,"mutability":"mutable","name":"newCollateral","nameLocation":"11939:13:42","nodeType":"VariableDeclaration","scope":12588,"src":"11931:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12384,"name":"uint256","nodeType":"ElementaryTypeName","src":"11931:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11884:69:42"},"returnParameters":{"id":12387,"nodeType":"ParameterList","parameters":[],"src":"11963:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":11738,"nodeType":"StructuredDocumentation","src":"3939:40:42","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[12589],"name":"LibValidatorSet","nameLocation":"3987:15:42","scope":13522,"usedErrors":[]},{"id":13299,"nodeType":"ContractDefinition","src":"13933:8597:42","nodes":[{"id":12593,"nodeType":"UsingForDirective","src":"13958:53:42","nodes":[],"global":false,"libraryName":{"id":12590,"name":"LibStakingReleaseQueue","nameLocations":["13964:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":11737,"src":"13964:22:42"},"typeName":{"id":12592,"nodeType":"UserDefinedTypeName","pathNode":{"id":12591,"name":"StakingReleaseQueue","nameLocations":["13991:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"13991:19:42"},"referencedDeclaration":16284,"src":"13991:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":12597,"nodeType":"UsingForDirective","src":"14016:47:42","nodes":[],"global":false,"libraryName":{"id":12594,"name":"LibStakingChangeLog","nameLocations":["14022:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"14022:19:42"},"typeName":{"id":12596,"nodeType":"UserDefinedTypeName","pathNode":{"id":12595,"name":"StakingChangeLog","nameLocations":["14046:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"14046:16:42"},"referencedDeclaration":16257,"src":"14046:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":12601,"nodeType":"UsingForDirective","src":"14068:39:42","nodes":[],"global":false,"libraryName":{"id":12598,"name":"LibValidatorSet","nameLocations":["14074:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"14074:15:42"},"typeName":{"id":12600,"nodeType":"UserDefinedTypeName","pathNode":{"id":12599,"name":"ValidatorSet","nameLocations":["14094:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"14094:12:42"},"referencedDeclaration":16313,"src":"14094:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":12605,"nodeType":"UsingForDirective","src":"14112:25:42","nodes":[],"global":false,"libraryName":{"id":12602,"name":"LibMaxPQ","nameLocations":["14118:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"14118:8:42"},"typeName":{"id":12604,"nodeType":"UserDefinedTypeName","pathNode":{"id":12603,"name":"MaxPQ","nameLocations":["14131:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"14131:5:42"},"referencedDeclaration":14643,"src":"14131:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":12609,"nodeType":"UsingForDirective","src":"14142:25:42","nodes":[],"global":false,"libraryName":{"id":12606,"name":"LibMinPQ","nameLocations":["14148:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"14148:8:42"},"typeName":{"id":12608,"nodeType":"UserDefinedTypeName","pathNode":{"id":12607,"name":"MinPQ","nameLocations":["14161:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"14161:5:42"},"referencedDeclaration":15261,"src":"14161:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":12612,"nodeType":"UsingForDirective","src":"14172:34:42","nodes":[],"global":false,"libraryName":{"id":12610,"name":"Address","nameLocations":["14178:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"14178:7:42"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"14190:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":12615,"nodeType":"VariableDeclaration","src":"14212:57:42","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"14237:28:42","scope":13299,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12613,"name":"uint64","nodeType":"ElementaryTypeName","src":"14212:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":12614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14268:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":12619,"nodeType":"EventDefinition","src":"14276:50:42","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"14282:28:42","parameters":{"id":12618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12617,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"14318:6:42","nodeType":"VariableDeclaration","scope":12619,"src":"14311:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12616,"name":"uint64","nodeType":"ElementaryTypeName","src":"14311:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"14310:15:42"}},{"id":12625,"nodeType":"EventDefinition","src":"14331:59:42","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"14337:17:42","parameters":{"id":12624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12621,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"14363:9:42","nodeType":"VariableDeclaration","scope":12625,"src":"14355:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12620,"name":"address","nodeType":"ElementaryTypeName","src":"14355:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12623,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"14382:6:42","nodeType":"VariableDeclaration","scope":12625,"src":"14374:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12622,"name":"uint256","nodeType":"ElementaryTypeName","src":"14374:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14354:35:42"}},{"id":12648,"nodeType":"FunctionDefinition","src":"14505:225:42","nodes":[],"body":{"id":12647,"nodeType":"Block","src":"14580:150:42","nodes":[],"statements":[{"assignments":[12635],"declarations":[{"constant":false,"id":12635,"mutability":"mutable","name":"s","nameLocation":"14617:1:42","nodeType":"VariableDeclaration","scope":12647,"src":"14590:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12634,"nodeType":"UserDefinedTypeName","pathNode":{"id":12633,"name":"SubnetActorStorage","nameLocations":["14590:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14590:18:42"},"referencedDeclaration":13839,"src":"14590:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12636,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14621:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14643:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14621:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14621:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14590:65:42"},{"expression":{"arguments":[{"id":12644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12628,"src":"14713:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12640,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"14672:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14674:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14672:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14687:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"14672:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14704:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"14672:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14672:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12632,"id":12646,"nodeType":"Return","src":"14665:58:42"}]},"documentation":{"id":12626,"nodeType":"StructuredDocumentation","src":"14442:58:42","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"14514:17:42","parameters":{"id":12629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12628,"mutability":"mutable","name":"validator","nameLocation":"14540:9:42","nodeType":"VariableDeclaration","scope":12648,"src":"14532:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12627,"name":"address","nodeType":"ElementaryTypeName","src":"14532:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14531:19:42"},"returnParameters":{"id":12632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"14574:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12630,"name":"bool","nodeType":"ElementaryTypeName","src":"14574:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14573:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12671,"nodeType":"FunctionDefinition","src":"14799:227:42","nodes":[],"body":{"id":12670,"nodeType":"Block","src":"14875:151:42","nodes":[],"statements":[{"assignments":[12658],"declarations":[{"constant":false,"id":12658,"mutability":"mutable","name":"s","nameLocation":"14912:1:42","nodeType":"VariableDeclaration","scope":12670,"src":"14885:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12657,"nodeType":"UserDefinedTypeName","pathNode":{"id":12656,"name":"SubnetActorStorage","nameLocations":["14885:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14885:18:42"},"referencedDeclaration":13839,"src":"14885:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12662,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12659,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14916:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14938:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14916:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14885:65:42"},{"expression":{"arguments":[{"id":12667,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"15009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12663,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"14967:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14969:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14967:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"14967:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"14967:41:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14967:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12655,"id":12669,"nodeType":"Return","src":"14960:59:42"}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"14736:58:42","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"14808:18:42","parameters":{"id":12652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"validator","nameLocation":"14835:9:42","nodeType":"VariableDeclaration","scope":12671,"src":"14827:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12650,"name":"address","nodeType":"ElementaryTypeName","src":"14827:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14826:19:42"},"returnParameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12671,"src":"14869:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12653,"name":"bool","nodeType":"ElementaryTypeName","src":"14869:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14868:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12696,"nodeType":"FunctionDefinition","src":"15090:280:42","nodes":[],"body":{"id":12695,"nodeType":"Block","src":"15157:213:42","nodes":[],"statements":[{"assignments":[12681],"declarations":[{"constant":false,"id":12681,"mutability":"mutable","name":"s","nameLocation":"15194:1:42","nodeType":"VariableDeclaration","scope":12695,"src":"15167:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12680,"nodeType":"UserDefinedTypeName","pathNode":{"id":12679,"name":"SubnetActorStorage","nameLocations":["15167:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15167:18:42"},"referencedDeclaration":13839,"src":"15167:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12682,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15198:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15198:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15167:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12686,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"15306:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15308:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15306:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"15306:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12690,"indexExpression":{"id":12689,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"15332:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15306:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15343:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"15306:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15362:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15306:57:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12678,"id":12694,"nodeType":"Return","src":"15299:64:42"}]},"documentation":{"id":12672,"nodeType":"StructuredDocumentation","src":"15032:53:42","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"15099:9:42","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12674,"mutability":"mutable","name":"validator","nameLocation":"15117:9:42","nodeType":"VariableDeclaration","scope":12696,"src":"15109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12673,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15108:19:42"},"returnParameters":{"id":12678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12696,"src":"15151:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12676,"name":"bool","nodeType":"ElementaryTypeName","src":"15151:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15150:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12714,"nodeType":"FunctionDefinition","src":"15376:201:42","nodes":[],"body":{"id":12713,"nodeType":"Block","src":"15440:137:42","nodes":[],"statements":[{"assignments":[12703],"declarations":[{"constant":false,"id":12703,"mutability":"mutable","name":"s","nameLocation":"15477:1:42","nodeType":"VariableDeclaration","scope":12713,"src":"15450:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12702,"nodeType":"UserDefinedTypeName","pathNode":{"id":12701,"name":"SubnetActorStorage","nameLocations":["15450:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15450:18:42"},"referencedDeclaration":13839,"src":"15450:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15481:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15503:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15481:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15481:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15450:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"15532:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15534:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15532:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:21:42","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":11816,"src":"15532:36:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15532:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12700,"id":12712,"nodeType":"Return","src":"15525:45:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"15385:21:42","parameters":{"id":12697,"nodeType":"ParameterList","parameters":[],"src":"15406:2:42"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12714,"src":"15432:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12698,"name":"uint16","nodeType":"ElementaryTypeName","src":"15432:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15431:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12740,"nodeType":"FunctionDefinition","src":"15665:243:42","nodes":[],"body":{"id":12739,"nodeType":"Block","src":"15723:185:42","nodes":[],"statements":[{"assignments":[12722],"declarations":[{"constant":false,"id":12722,"mutability":"mutable","name":"s","nameLocation":"15760:1:42","nodeType":"VariableDeclaration","scope":12739,"src":"15733:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12721,"nodeType":"UserDefinedTypeName","pathNode":{"id":12720,"name":"SubnetActorStorage","nameLocations":["15733:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15733:18:42"},"referencedDeclaration":13839,"src":"15733:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12723,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15764:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15786:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15764:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15764:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15733:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12727,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15815:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15817:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15815:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15830:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"15815:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15848:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"15815:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15815:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12732,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15860:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15860:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15875:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"15860:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"15860:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15815:86:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12719,"id":12738,"nodeType":"Return","src":"15808:93:42"}]},"documentation":{"id":12715,"nodeType":"StructuredDocumentation","src":"15583:77:42","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"15674:15:42","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"15689:2:42"},"returnParameters":{"id":12719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12740,"src":"15715:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12717,"name":"uint16","nodeType":"ElementaryTypeName","src":"15715:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15714:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12758,"nodeType":"FunctionDefinition","src":"15914:214:42","nodes":[],"body":{"id":12757,"nodeType":"Block","src":"15985:143:42","nodes":[],"statements":[{"assignments":[12747],"declarations":[{"constant":false,"id":12747,"mutability":"mutable","name":"s","nameLocation":"16022:1:42","nodeType":"VariableDeclaration","scope":12757,"src":"15995:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12746,"nodeType":"UserDefinedTypeName","pathNode":{"id":12745,"name":"SubnetActorStorage","nameLocations":["15995:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15995:18:42"},"referencedDeclaration":13839,"src":"15995:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12748,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16026:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16048:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16026:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15995:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"16077:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16079:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16077:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16092:27:42","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11799,"src":"16077:42:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12744,"id":12756,"nodeType":"Return","src":"16070:51:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"15923:27:42","parameters":{"id":12741,"nodeType":"ParameterList","parameters":[],"src":"15950:2:42"},"returnParameters":{"id":12744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12758,"src":"15976:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12742,"name":"uint256","nodeType":"ElementaryTypeName","src":"15976:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15975:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12781,"nodeType":"FunctionDefinition","src":"16203:236:42","nodes":[],"body":{"id":12780,"nodeType":"Block","src":"16288:151:42","nodes":[],"statements":[{"assignments":[12768],"declarations":[{"constant":false,"id":12768,"mutability":"mutable","name":"s","nameLocation":"16325:1:42","nodeType":"VariableDeclaration","scope":12780,"src":"16298:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12767,"nodeType":"UserDefinedTypeName","pathNode":{"id":12766,"name":"SubnetActorStorage","nameLocations":["16298:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16298:18:42"},"referencedDeclaration":13839,"src":"16298:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12769,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16329:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16329:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16329:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16298:65:42"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"16380:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16382:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16380:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16395:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"16380:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12777,"indexExpression":{"id":12776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"16406:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16380:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16417:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"16380:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12765,"id":12779,"nodeType":"Return","src":"16373:59:42"}]},"documentation":{"id":12759,"nodeType":"StructuredDocumentation","src":"16134:64:42","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"16212:24:42","parameters":{"id":12762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12761,"mutability":"mutable","name":"validator","nameLocation":"16245:9:42","nodeType":"VariableDeclaration","scope":12781,"src":"16237:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12760,"name":"address","nodeType":"ElementaryTypeName","src":"16237:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16236:19:42"},"returnParameters":{"id":12765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12781,"src":"16279:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16278:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12806,"nodeType":"FunctionDefinition","src":"16592:224:42","nodes":[],"body":{"id":12805,"nodeType":"Block","src":"16677:139:42","nodes":[],"statements":[{"assignments":[12791],"declarations":[{"constant":false,"id":12791,"mutability":"mutable","name":"s","nameLocation":"16714:1:42","nodeType":"VariableDeclaration","scope":12805,"src":"16687:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12790,"nodeType":"UserDefinedTypeName","pathNode":{"id":12789,"name":"SubnetActorStorage","nameLocations":["16687:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16687:18:42"},"referencedDeclaration":13839,"src":"16687:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16718:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16740:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16718:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16718:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16687:65:42"},{"expression":{"arguments":[{"id":12801,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12784,"src":"16789:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12802,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"16800:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"16762:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16764:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16762:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16777:11:42","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":12042,"src":"16762:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16762:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12804,"nodeType":"ExpressionStatement","src":"16762:47:42"}]},"documentation":{"id":12782,"nodeType":"StructuredDocumentation","src":"16511:76:42","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"16601:22:42","parameters":{"id":12787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12784,"mutability":"mutable","name":"validator","nameLocation":"16632:9:42","nodeType":"VariableDeclaration","scope":12806,"src":"16624:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12783,"name":"address","nodeType":"ElementaryTypeName","src":"16624:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12786,"mutability":"mutable","name":"metadata","nameLocation":"16658:8:42","nodeType":"VariableDeclaration","scope":12806,"src":"16643:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12785,"name":"bytes","nodeType":"ElementaryTypeName","src":"16643:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16623:44:42"},"returnParameters":{"id":12788,"nodeType":"ParameterList","parameters":[],"src":"16677:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12915,"nodeType":"FunctionDefinition","src":"16914:1335:42","nodes":[],"body":{"id":12914,"nodeType":"Block","src":"16986:1263:42","nodes":[],"statements":[{"assignments":[12816],"declarations":[{"constant":false,"id":12816,"mutability":"mutable","name":"s","nameLocation":"17023:1:42","nodeType":"VariableDeclaration","scope":12914,"src":"16996:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12815,"nodeType":"UserDefinedTypeName","pathNode":{"id":12814,"name":"SubnetActorStorage","nameLocations":["16996:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16996:18:42"},"referencedDeclaration":13839,"src":"16996:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12820,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12817,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"17027:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17049:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"17027:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17027:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16996:65:42"},{"expression":{"arguments":[{"id":12826,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17172:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17132:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17134:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17132:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17147:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"17132:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"17132:47:42"},{"expression":{"arguments":[{"id":12835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17284:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12836,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17295:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12830,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17254:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17256:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17254:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17269:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"17254:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17254:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"ExpressionStatement","src":"17254:48:42"},{"condition":{"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17317:15:42","subExpression":{"expression":{"id":12839,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17318:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17320:12:42","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"17318:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12913,"nodeType":"IfStatement","src":"17313:930:42","trueBody":{"id":12912,"nodeType":"Block","src":"17334:909:42","statements":[{"assignments":[12843],"declarations":[{"constant":false,"id":12843,"mutability":"mutable","name":"alreadyValidator","nameLocation":"17459:16:42","nodeType":"VariableDeclaration","scope":12912,"src":"17454:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12842,"name":"bool","nodeType":"ElementaryTypeName","src":"17454:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12844,"nodeType":"VariableDeclarationStatement","src":"17454:21:42"},{"assignments":[12846],"declarations":[{"constant":false,"id":12846,"mutability":"mutable","name":"length","nameLocation":"17497:6:42","nodeType":"VariableDeclaration","scope":12912,"src":"17489:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12845,"name":"uint256","nodeType":"ElementaryTypeName","src":"17489:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12850,"initialValue":{"expression":{"expression":{"id":12847,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17506:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17508:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17506:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17526:6:42","memberName":"length","nodeType":"MemberAccess","src":"17506:26:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17489:43:42"},{"body":{"id":12875,"nodeType":"Block","src":"17576:240:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12857,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17598:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17600:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17598:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12860,"indexExpression":{"id":12859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17618:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17598:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"id":12861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17621:4:42","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":16331,"src":"17598:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12862,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17629:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17598:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12870,"nodeType":"IfStatement","src":"17594:137:42","trueBody":{"id":12869,"nodeType":"Block","src":"17640:91:42","statements":[{"expression":{"id":12866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12864,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17662:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17681:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17662:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12867,"nodeType":"ExpressionStatement","src":"17662:23:42"},{"id":12868,"nodeType":"Break","src":"17707:5:42"}]}},{"id":12874,"nodeType":"UncheckedBlock","src":"17748:54:42","statements":[{"expression":{"id":12872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17780:3:42","subExpression":{"id":12871,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17782:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12873,"nodeType":"ExpressionStatement","src":"17780:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17562:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12855,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12846,"src":"17566:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17562:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12876,"initializationExpression":{"assignments":[12852],"declarations":[{"constant":false,"id":12852,"mutability":"mutable","name":"i","nameLocation":"17559:1:42","nodeType":"VariableDeclaration","scope":12876,"src":"17551:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12851,"name":"uint256","nodeType":"ElementaryTypeName","src":"17551:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12853,"nodeType":"VariableDeclarationStatement","src":"17551:9:42"},"nodeType":"ForStatement","src":"17546:270:42"},{"condition":{"id":12878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17833:17:42","subExpression":{"id":12877,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17834:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12911,"nodeType":"IfStatement","src":"17829:404:42","trueBody":{"id":12910,"nodeType":"Block","src":"17852:381:42","statements":[{"assignments":[12880],"declarations":[{"constant":false,"id":12880,"mutability":"mutable","name":"collateral","nameLocation":"17878:10:42","nodeType":"VariableDeclaration","scope":12910,"src":"17870:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12879,"name":"uint256","nodeType":"ElementaryTypeName","src":"17870:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12887,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":12881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17891:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17893:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17891:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17906:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"17891:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12885,"indexExpression":{"id":12884,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17917:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17891:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17928:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"17891:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17870:77:42"},{"assignments":[12890],"declarations":[{"constant":false,"id":12890,"mutability":"mutable","name":"val","nameLocation":"17982:3:42","nodeType":"VariableDeclaration","scope":12910,"src":"17965:20:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator"},"typeName":{"id":12889,"nodeType":"UserDefinedTypeName","pathNode":{"id":12888,"name":"Validator","nameLocations":["17965:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"17965:9:42"},"referencedDeclaration":16334,"src":"17965:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":12901,"initialValue":{"arguments":[{"id":12892,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18026:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12893,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"18065:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":12894,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18107:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18109:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18107:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18122:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"18107:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12898,"indexExpression":{"id":12897,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18133:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18107:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18144:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"18107:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":12891,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"17988:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$16334_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18020:4:42","18057:6:42","18097:8:42"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"17988:183:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"17965:206:42"},{"expression":{"arguments":[{"id":12907,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"18214:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":12902,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18189:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18191:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"18189:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18209:4:42","memberName":"push","nodeType":"MemberAccess","src":"18189:24:42","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$_t_struct$_Validator_$16334_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":12908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12909,"nodeType":"ExpressionStatement","src":"18189:29:42"}]}}]}}]},"documentation":{"id":12807,"nodeType":"StructuredDocumentation","src":"16822:87:42","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"16923:18:42","parameters":{"id":12812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12809,"mutability":"mutable","name":"validator","nameLocation":"16950:9:42","nodeType":"VariableDeclaration","scope":12915,"src":"16942:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12808,"name":"address","nodeType":"ElementaryTypeName","src":"16942:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12811,"mutability":"mutable","name":"amount","nameLocation":"16969:6:42","nodeType":"VariableDeclaration","scope":12915,"src":"16961:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12810,"name":"uint256","nodeType":"ElementaryTypeName","src":"16961:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16941:35:42"},"returnParameters":{"id":12813,"nodeType":"ParameterList","parameters":[],"src":"16986:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12957,"nodeType":"FunctionDefinition","src":"18439:504:42","nodes":[],"body":{"id":12956,"nodeType":"Block","src":"18512:431:42","nodes":[],"statements":[{"assignments":[12925],"declarations":[{"constant":false,"id":12925,"mutability":"mutable","name":"s","nameLocation":"18549:1:42","nodeType":"VariableDeclaration","scope":12956,"src":"18522:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12924,"nodeType":"UserDefinedTypeName","pathNode":{"id":12923,"name":"SubnetActorStorage","nameLocations":["18522:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"18522:18:42"},"referencedDeclaration":13839,"src":"18522:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12926,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"18553:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"18553:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18522:65:42"},{"expression":{"arguments":[{"id":12935,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18688:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12936,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18699:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18658:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18660:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18658:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18673:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"18658:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12938,"nodeType":"ExpressionStatement","src":"18658:48:42"},{"expression":{"arguments":[{"id":12944,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18812:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18823:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12939,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18781:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18783:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18781:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18796:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"18781:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18781:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12947,"nodeType":"ExpressionStatement","src":"18781:49:42"},{"expression":{"arguments":[{"id":12953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18929:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":12950,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18908:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18900:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":12948,"name":"address","nodeType":"ElementaryTypeName","src":"18900:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":12951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18919:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"18900:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12955,"nodeType":"ExpressionStatement","src":"18900:36:42"}]},"documentation":{"id":12916,"nodeType":"StructuredDocumentation","src":"18255:179:42","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"18448:19:42","parameters":{"id":12921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12918,"mutability":"mutable","name":"validator","nameLocation":"18476:9:42","nodeType":"VariableDeclaration","scope":12957,"src":"18468:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12917,"name":"address","nodeType":"ElementaryTypeName","src":"18468:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12920,"mutability":"mutable","name":"amount","nameLocation":"18495:6:42","nodeType":"VariableDeclaration","scope":12957,"src":"18487:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18467:35:42"},"returnParameters":{"id":12922,"nodeType":"ParameterList","parameters":[],"src":"18512:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12982,"nodeType":"FunctionDefinition","src":"19060:223:42","nodes":[],"body":{"id":12981,"nodeType":"Block","src":"19143:140:42","nodes":[],"statements":[{"assignments":[12967],"declarations":[{"constant":false,"id":12967,"mutability":"mutable","name":"s","nameLocation":"19180:1:42","nodeType":"VariableDeclaration","scope":12981,"src":"19153:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12966,"nodeType":"UserDefinedTypeName","pathNode":{"id":12965,"name":"SubnetActorStorage","nameLocations":["19153:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19153:18:42"},"referencedDeclaration":13839,"src":"19153:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12971,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12968,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19184:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19206:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19184:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19184:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19153:65:42"},{"expression":{"arguments":[{"id":12977,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12960,"src":"19256:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12978,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12962,"src":"19267:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12972,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12967,"src":"19228:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19230:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19228:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":12976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19240:15:42","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":13569,"src":"19228:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12980,"nodeType":"ExpressionStatement","src":"19228:48:42"}]},"documentation":{"id":12958,"nodeType":"StructuredDocumentation","src":"19017:38:42","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"19069:20:42","parameters":{"id":12963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12960,"mutability":"mutable","name":"validator","nameLocation":"19098:9:42","nodeType":"VariableDeclaration","scope":12982,"src":"19090:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12959,"name":"address","nodeType":"ElementaryTypeName","src":"19090:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12962,"mutability":"mutable","name":"metadata","nameLocation":"19124:8:42","nodeType":"VariableDeclaration","scope":12982,"src":"19109:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12961,"name":"bytes","nodeType":"ElementaryTypeName","src":"19109:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19089:44:42"},"returnParameters":{"id":12964,"nodeType":"ParameterList","parameters":[],"src":"19143:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13016,"nodeType":"FunctionDefinition","src":"19328:256:42","nodes":[],"body":{"id":13015,"nodeType":"Block","src":"19389:195:42","nodes":[],"statements":[{"assignments":[12992],"declarations":[{"constant":false,"id":12992,"mutability":"mutable","name":"s","nameLocation":"19426:1:42","nodeType":"VariableDeclaration","scope":13015,"src":"19399:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12991,"nodeType":"UserDefinedTypeName","pathNode":{"id":12990,"name":"SubnetActorStorage","nameLocations":["19399:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19399:18:42"},"referencedDeclaration":13839,"src":"19399:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12996,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12993,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19430:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19452:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19430:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19430:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19399:65:42"},{"expression":{"arguments":[{"id":13002,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19502:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13003,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19513:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19475:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19477:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19475:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19487:14:42","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":13643,"src":"19475:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19475:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13005,"nodeType":"ExpressionStatement","src":"19475:45:42"},{"expression":{"arguments":[{"id":13011,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19559:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13012,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19570:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13006,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19530:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19532:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19530:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19545:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"19530:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19530:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13014,"nodeType":"ExpressionStatement","src":"19530:47:42"}]},"documentation":{"id":12983,"nodeType":"StructuredDocumentation","src":"19289:34:42","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"19337:7:42","parameters":{"id":12988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12985,"mutability":"mutable","name":"validator","nameLocation":"19353:9:42","nodeType":"VariableDeclaration","scope":13016,"src":"19345:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12984,"name":"address","nodeType":"ElementaryTypeName","src":"19345:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12987,"mutability":"mutable","name":"amount","nameLocation":"19372:6:42","nodeType":"VariableDeclaration","scope":13016,"src":"19364:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12986,"name":"uint256","nodeType":"ElementaryTypeName","src":"19364:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19344:35:42"},"returnParameters":{"id":12989,"nodeType":"ParameterList","parameters":[],"src":"19389:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13050,"nodeType":"FunctionDefinition","src":"19630:259:42","nodes":[],"body":{"id":13049,"nodeType":"Block","src":"19692:197:42","nodes":[],"statements":[{"assignments":[13026],"declarations":[{"constant":false,"id":13026,"mutability":"mutable","name":"s","nameLocation":"19729:1:42","nodeType":"VariableDeclaration","scope":13049,"src":"19702:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13025,"nodeType":"UserDefinedTypeName","pathNode":{"id":13024,"name":"SubnetActorStorage","nameLocations":["19702:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19702:18:42"},"referencedDeclaration":13839,"src":"19702:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13027,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19733:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19755:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19733:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19733:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19702:65:42"},{"expression":{"arguments":[{"id":13036,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19806:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19817:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19778:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19780:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19778:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19790:15:42","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":13606,"src":"19778:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19778:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13039,"nodeType":"ExpressionStatement","src":"19778:46:42"},{"expression":{"arguments":[{"id":13045,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19864:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13046,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19875:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19834:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19836:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19834:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19849:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"19834:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13048,"nodeType":"ExpressionStatement","src":"19834:48:42"}]},"documentation":{"id":13017,"nodeType":"StructuredDocumentation","src":"19590:35:42","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"19639:8:42","parameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13019,"mutability":"mutable","name":"validator","nameLocation":"19656:9:42","nodeType":"VariableDeclaration","scope":13050,"src":"19648:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13018,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13021,"mutability":"mutable","name":"amount","nameLocation":"19675:6:42","nodeType":"VariableDeclaration","scope":13050,"src":"19667:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13020,"name":"uint256","nodeType":"ElementaryTypeName","src":"19667:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19647:35:42"},"returnParameters":{"id":13023,"nodeType":"ParameterList","parameters":[],"src":"19692:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13077,"nodeType":"FunctionDefinition","src":"19998:244:42","nodes":[],"body":{"id":13076,"nodeType":"Block","src":"20051:191:42","nodes":[],"statements":[{"assignments":[13058],"declarations":[{"constant":false,"id":13058,"mutability":"mutable","name":"s","nameLocation":"20088:1:42","nodeType":"VariableDeclaration","scope":13076,"src":"20061:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13057,"nodeType":"UserDefinedTypeName","pathNode":{"id":13056,"name":"SubnetActorStorage","nameLocations":["20061:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20061:18:42"},"referencedDeclaration":13839,"src":"20061:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13062,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13059,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20092:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20114:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20092:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20092:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20061:65:42"},{"assignments":[13064],"declarations":[{"constant":false,"id":13064,"mutability":"mutable","name":"amount","nameLocation":"20144:6:42","nodeType":"VariableDeclaration","scope":13076,"src":"20136:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13063,"name":"uint256","nodeType":"ElementaryTypeName","src":"20136:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"id":13068,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20174:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"20153:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20155:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"20153:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20168:5:42","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"20153:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20153:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20136:48:42"},{"eventCall":{"arguments":[{"id":13072,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20217:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13064,"src":"20228:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13071,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"20199:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20199:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13075,"nodeType":"EmitStatement","src":"20194:41:42"}]},"documentation":{"id":13051,"nodeType":"StructuredDocumentation","src":"19952:41:42","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"20007:15:42","parameters":{"id":13054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13053,"mutability":"mutable","name":"validator","nameLocation":"20031:9:42","nodeType":"VariableDeclaration","scope":13077,"src":"20023:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13052,"name":"address","nodeType":"ElementaryTypeName","src":"20023:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20022:19:42"},"returnParameters":{"id":13055,"nodeType":"ParameterList","parameters":[],"src":"20051:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13130,"nodeType":"FunctionDefinition","src":"20356:423:42","nodes":[],"body":{"id":13129,"nodeType":"Block","src":"20413:366:42","nodes":[],"statements":[{"assignments":[13085],"declarations":[{"constant":false,"id":13085,"mutability":"mutable","name":"s","nameLocation":"20450:1:42","nodeType":"VariableDeclaration","scope":13129,"src":"20423:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13084,"nodeType":"UserDefinedTypeName","pathNode":{"id":13083,"name":"SubnetActorStorage","nameLocations":["20423:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20423:18:42"},"referencedDeclaration":13839,"src":"20423:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13086,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20454:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20476:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20454:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20423:65:42"},{"assignments":[13091],"declarations":[{"constant":false,"id":13091,"mutability":"mutable","name":"amount","nameLocation":"20506:6:42","nodeType":"VariableDeclaration","scope":13129,"src":"20498:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13090,"name":"uint256","nodeType":"ElementaryTypeName","src":"20498:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13096,"initialValue":{"baseExpression":{"expression":{"id":13092,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20515:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20517:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20515:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13095,"indexExpression":{"id":13094,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20532:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20515:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20498:42:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20555:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20565:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20555:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13104,"nodeType":"IfStatement","src":"20551:69:42","trueBody":{"id":13103,"nodeType":"Block","src":"20568:52:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13100,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"20589:18:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20589:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13102,"nodeType":"RevertStatement","src":"20582:27:42"}]}},{"expression":{"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20630:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20632:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20630:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13109,"indexExpression":{"id":13107,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20647:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20630:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20658:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20630:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13112,"nodeType":"ExpressionStatement","src":"20630:29:42"},{"expression":{"arguments":[{"id":13118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20720:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20678:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20680:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"20678:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13113,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"20669:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20696:23:42","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":8779,"src":"20669:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13120,"nodeType":"ExpressionStatement","src":"20669:58:42"},{"expression":{"arguments":[{"id":13126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20765:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13123,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20746:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20738:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":13121,"name":"address","nodeType":"ElementaryTypeName","src":"20738:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20755:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"20738:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13128,"nodeType":"ExpressionStatement","src":"20738:34:42"}]},"documentation":{"id":13078,"nodeType":"StructuredDocumentation","src":"20248:103:42","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"20365:21:42","parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"relayer","nameLocation":"20395:7:42","nodeType":"VariableDeclaration","scope":13130,"src":"20387:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13079,"name":"address","nodeType":"ElementaryTypeName","src":"20387:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20386:17:42"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[],"src":"20413:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13298,"nodeType":"FunctionDefinition","src":"20907:1621:42","nodes":[],"body":{"id":13297,"nodeType":"Block","src":"20967:1561:42","nodes":[],"statements":[{"assignments":[13138],"declarations":[{"constant":false,"id":13138,"mutability":"mutable","name":"s","nameLocation":"21004:1:42","nodeType":"VariableDeclaration","scope":13297,"src":"20977:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13137,"nodeType":"UserDefinedTypeName","pathNode":{"id":13136,"name":"SubnetActorStorage","nameLocations":["20977:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20977:18:42"},"referencedDeclaration":13839,"src":"20977:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13142,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13139,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"21008:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"21008:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21008:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20977:65:42"},{"assignments":[13145],"declarations":[{"constant":false,"id":13145,"mutability":"mutable","name":"changeSet","nameLocation":"21077:9:42","nodeType":"VariableDeclaration","scope":13297,"src":"21052:34:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13144,"nodeType":"UserDefinedTypeName","pathNode":{"id":13143,"name":"StakingChangeLog","nameLocations":["21052:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"21052:16:42"},"referencedDeclaration":16257,"src":"21052:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":13148,"initialValue":{"expression":{"id":13146,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21089:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21091:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"21089:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21052:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13149,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21115:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":13150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21138:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21148:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"21138:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21115:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13157,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21243:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13158,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21265:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21275:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21265:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21243:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13163,"nodeType":"IfStatement","src":"21239:93:42","trueBody":{"id":13162,"nodeType":"Block","src":"21301:31:42","statements":[{"functionReturnParameters":13135,"id":13161,"nodeType":"Return","src":"21315:7:42"}]}},"id":13164,"nodeType":"IfStatement","src":"21111:221:42","trueBody":{"id":13156,"nodeType":"Block","src":"21173:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13153,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"21194:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13155,"nodeType":"RevertStatement","src":"21187:35:42"}]}},{"assignments":[13166],"declarations":[{"constant":false,"id":13166,"mutability":"mutable","name":"start","nameLocation":"21349:5:42","nodeType":"VariableDeclaration","scope":13297,"src":"21342:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13165,"name":"uint64","nodeType":"ElementaryTypeName","src":"21342:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13169,"initialValue":{"expression":{"id":13167,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21357:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21367:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21357:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21342:49:42"},{"body":{"id":13283,"nodeType":"Block","src":"21452:934:42","statements":[{"assignments":[13179],"declarations":[{"constant":false,"id":13179,"mutability":"mutable","name":"change","nameLocation":"21488:6:42","nodeType":"VariableDeclaration","scope":13283,"src":"21466:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13178,"nodeType":"UserDefinedTypeName","pathNode":{"id":13177,"name":"StakingChange","nameLocations":["21466:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"21466:13:42"},"referencedDeclaration":16238,"src":"21466:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13184,"initialValue":{"arguments":[{"id":13182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21517:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13180,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21497:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21507:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"21497:19:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21497:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21466:53:42"},{"assignments":[13186],"declarations":[{"constant":false,"id":13186,"mutability":"mutable","name":"validator","nameLocation":"21541:9:42","nodeType":"VariableDeclaration","scope":13283,"src":"21533:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13185,"name":"address","nodeType":"ElementaryTypeName","src":"21533:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13189,"initialValue":{"expression":{"id":13187,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21553:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21560:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"21553:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21533:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13190,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21588:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21595:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21588:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13192,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21601:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21618:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"21601:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21588:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13271,"nodeType":"Block","src":"21732:546:42","statements":[{"assignments":[13209],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"amount","nameLocation":"21758:6:42","nodeType":"VariableDeclaration","scope":13271,"src":"21750:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13208,"name":"uint256","nodeType":"ElementaryTypeName","src":"21750:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13218,"initialValue":{"arguments":[{"expression":{"id":13212,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21778:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21785:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21778:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21795:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"21795:7:42","typeDescriptions":{}}}],"id":13216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21794:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21767:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21771:6:42","memberName":"decode","nodeType":"MemberAccess","src":"21767:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21767:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21750:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13219,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21827:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21834:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21827:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13221,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21840:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21857:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"21840:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21827:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13269,"nodeType":"Block","src":"22101:163:42","statements":[{"expression":{"arguments":[{"id":13256,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"22153:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13257,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22164:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13251,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22123:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22125:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"22123:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22138:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"22123:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22123:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13259,"nodeType":"ExpressionStatement","src":"22123:48:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":13261,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22202:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22204:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22202:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13260,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22193:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22220:8:42","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":8767,"src":"22193:35:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13265,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22236:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"22193:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13268,"nodeType":"ExpressionStatement","src":"22193:52:42"}]},"id":13270,"nodeType":"IfStatement","src":"21823:441:42","trueBody":{"id":13250,"nodeType":"Block","src":"21867:228:42","statements":[{"expression":{"arguments":[{"id":13229,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21920:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13230,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"21931:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21889:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21891:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21889:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"21889:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13232,"nodeType":"ExpressionStatement","src":"21889:49:42"},{"expression":{"arguments":[{"id":13238,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21989:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13239,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22000:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21960:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21962:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"21960:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21975:13:42","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":11692,"src":"21960:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":13240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21960:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13241,"nodeType":"ExpressionStatement","src":"21960:47:42"},{"expression":{"arguments":[{"id":13247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22069:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13243,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22038:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22040:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22038:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22029:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22056:12:42","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":8773,"src":"22029:39:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13249,"nodeType":"ExpressionStatement","src":"22029:47:42"}]}}]},"id":13272,"nodeType":"IfStatement","src":"21584:694:42","trueBody":{"id":13207,"nodeType":"Block","src":"21631:95:42","statements":[{"expression":{"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13195,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21649:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21651:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21649:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21664:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"21649:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13201,"indexExpression":{"id":13198,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21675:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21649:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21686:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"21649:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13203,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21697:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21704:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21697:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"21649:62:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13206,"nodeType":"ExpressionStatement","src":"21649:62:42"}]}},{"expression":{"arguments":[{"id":13276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22314:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22292:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22302:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"22292:21:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22292:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13278,"nodeType":"ExpressionStatement","src":"22292:24:42"},{"id":13282,"nodeType":"UncheckedBlock","src":"22330:46:42","statements":[{"expression":{"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"22358:3:42","subExpression":{"id":13279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22360:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13281,"nodeType":"ExpressionStatement","src":"22358:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21424:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13175,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21429:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21424:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13284,"initializationExpression":{"assignments":[13171],"declarations":[{"constant":false,"id":13171,"mutability":"mutable","name":"i","nameLocation":"21413:1:42","nodeType":"VariableDeclaration","scope":13284,"src":"21406:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13170,"name":"uint64","nodeType":"ElementaryTypeName","src":"21406:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13173,"initialValue":{"id":13172,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13166,"src":"21417:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21406:16:42"},"nodeType":"ForStatement","src":"21401:985:42"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13285,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22396:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22406:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"22396:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13288,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22433:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22433:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22396:60:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13292,"nodeType":"ExpressionStatement","src":"22396:60:42"},{"eventCall":{"arguments":[{"id":13294,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22501:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13293,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"22472:28:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22472:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13296,"nodeType":"EmitStatement","src":"22467:54:42"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"20785:117:42","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"20916:13:42","parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"configurationNumber","nameLocation":"20937:19:42","nodeType":"VariableDeclaration","scope":13298,"src":"20930:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13132,"name":"uint64","nodeType":"ElementaryTypeName","src":"20930:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20929:28:42"},"returnParameters":{"id":13135,"nodeType":"ParameterList","parameters":[],"src":"20967:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13299],"name":"LibStaking","nameLocation":"13941:10:42","scope":13522,"usedErrors":[1248,1256,6123]},{"id":13521,"nodeType":"ContractDefinition","src":"22687:2370:42","nodes":[{"id":13304,"nodeType":"UsingForDirective","src":"22722:39:42","nodes":[],"global":false,"libraryName":{"id":13301,"name":"LibValidatorSet","nameLocations":["22728:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"22728:15:42"},"typeName":{"id":13303,"nodeType":"UserDefinedTypeName","pathNode":{"id":13302,"name":"ValidatorSet","nameLocations":["22748:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"22748:12:42"},"referencedDeclaration":16313,"src":"22748:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":13308,"nodeType":"UsingForDirective","src":"22766:47:42","nodes":[],"global":false,"libraryName":{"id":13305,"name":"LibStakingChangeLog","nameLocations":["22772:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"22772:19:42"},"typeName":{"id":13307,"nodeType":"UserDefinedTypeName","pathNode":{"id":13306,"name":"StakingChangeLog","nameLocations":["22796:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"22796:16:42"},"referencedDeclaration":16257,"src":"22796:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":13343,"nodeType":"FunctionDefinition","src":"22819:475:42","nodes":[],"body":{"id":13342,"nodeType":"Block","src":"22932:362:42","nodes":[],"statements":[{"assignments":[13318],"declarations":[{"constant":false,"id":13318,"mutability":"mutable","name":"configurationNumber","nameLocation":"22949:19:42","nodeType":"VariableDeclaration","scope":13342,"src":"22942:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13317,"name":"uint64","nodeType":"ElementaryTypeName","src":"22942:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13332,"initialValue":{"arguments":[{"expression":{"expression":{"id":13322,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23022:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23036:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23022:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23043:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"23022:30:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":13325,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23070:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23084:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23070:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23091:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"23070:23:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":13328,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23116:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23130:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23116:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23137:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"23116:28:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":13319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13311,"src":"22971:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22976:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"22971:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22984:12:42","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":13685,"src":"22971:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["23011:9:42","23066:2:42","23107:7:42"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"22971:184:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"22942:213:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13333,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"23170:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13334,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23193:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23207:19:42","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16243,"src":"23193:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23170:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13341,"nodeType":"IfStatement","src":"23166:122:42","trueBody":{"id":13340,"nodeType":"Block","src":"23228:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13337,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"23249:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23249:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13339,"nodeType":"RevertStatement","src":"23242:35:42"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"22828:11:42","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13311,"mutability":"mutable","name":"self","nameLocation":"22872:4:42","nodeType":"VariableDeclaration","scope":13343,"src":"22840:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13310,"nodeType":"UserDefinedTypeName","pathNode":{"id":13309,"name":"ParentValidatorsTracker","nameLocations":["22840:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"22840:23:42"},"referencedDeclaration":16320,"src":"22840:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"changeRequest","nameLocation":"22908:13:42","nodeType":"VariableDeclaration","scope":13343,"src":"22878:43:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":13313,"nodeType":"UserDefinedTypeName","pathNode":{"id":13312,"name":"StakingChangeRequest","nameLocations":["22878:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"22878:20:42"},"referencedDeclaration":16244,"src":"22878:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"22839:83:42"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"22932:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13384,"nodeType":"FunctionDefinition","src":"23300:415:42","nodes":[],"body":{"id":13383,"nodeType":"Block","src":"23443:272:42","nodes":[],"statements":[{"assignments":[13354],"declarations":[{"constant":false,"id":13354,"mutability":"mutable","name":"length","nameLocation":"23461:6:42","nodeType":"VariableDeclaration","scope":13383,"src":"23453:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13353,"name":"uint256","nodeType":"ElementaryTypeName","src":"23453:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13357,"initialValue":{"expression":{"id":13355,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23470:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23485:6:42","memberName":"length","nodeType":"MemberAccess","src":"23470:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23453:38:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13358,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23505:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23505:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13363,"nodeType":"IfStatement","src":"23501:48:42","trueBody":{"id":13362,"nodeType":"Block","src":"23518:31:42","statements":[{"functionReturnParameters":13352,"id":13361,"nodeType":"Return","src":"23532:7:42"}]}},{"body":{"id":13381,"nodeType":"Block","src":"23589:120:42","statements":[{"expression":{"arguments":[{"id":13371,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"23615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":13372,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23621:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13374,"indexExpression":{"id":13373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23636:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23621:17:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":13370,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"23603:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13376,"nodeType":"ExpressionStatement","src":"23603:36:42"},{"id":13380,"nodeType":"UncheckedBlock","src":"23653:46:42","statements":[{"expression":{"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23681:3:42","subExpression":{"id":13377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23683:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13379,"nodeType":"ExpressionStatement","src":"23681:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23575:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13368,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23579:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23575:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13382,"initializationExpression":{"assignments":[13365],"declarations":[{"constant":false,"id":13365,"mutability":"mutable","name":"i","nameLocation":"23572:1:42","nodeType":"VariableDeclaration","scope":13382,"src":"23564:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13364,"name":"uint256","nodeType":"ElementaryTypeName","src":"23564:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13366,"nodeType":"VariableDeclarationStatement","src":"23564:9:42"},"nodeType":"ForStatement","src":"23559:150:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"23309:16:42","parameters":{"id":13351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"self","nameLocation":"23367:4:42","nodeType":"VariableDeclaration","scope":13384,"src":"23335:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13345,"nodeType":"UserDefinedTypeName","pathNode":{"id":13344,"name":"ParentValidatorsTracker","nameLocations":["23335:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23335:23:42"},"referencedDeclaration":16320,"src":"23335:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13350,"mutability":"mutable","name":"changeRequests","nameLocation":"23413:14:42","nodeType":"VariableDeclaration","scope":13384,"src":"23381:46:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":13348,"nodeType":"UserDefinedTypeName","pathNode":{"id":13347,"name":"StakingChangeRequest","nameLocations":["23381:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"23381:20:42"},"referencedDeclaration":16244,"src":"23381:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":13349,"nodeType":"ArrayTypeName","src":"23381:22:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"23325:108:42"},"returnParameters":{"id":13352,"nodeType":"ParameterList","parameters":[],"src":"23443:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13520,"nodeType":"FunctionDefinition","src":"23786:1269:42","nodes":[],"body":{"id":13519,"nodeType":"Block","src":"23884:1171:42","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13393,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"23898:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":13394,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"23921:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23926:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"23921:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23934:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"23921:36:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23898:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13402,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24029:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24051:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24056:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24051:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24064:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24051:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24029:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13409,"nodeType":"IfStatement","src":"24025:96:42","trueBody":{"id":13408,"nodeType":"Block","src":"24090:31:42","statements":[{"functionReturnParameters":13392,"id":13407,"nodeType":"Return","src":"24104:7:42"}]}},"id":13410,"nodeType":"IfStatement","src":"23894:227:42","trueBody":{"id":13401,"nodeType":"Block","src":"23959:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13398,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"23980:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23980:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13400,"nodeType":"RevertStatement","src":"23973:35:42"}]}},{"assignments":[13412],"declarations":[{"constant":false,"id":13412,"mutability":"mutable","name":"start","nameLocation":"24138:5:42","nodeType":"VariableDeclaration","scope":13519,"src":"24131:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13411,"name":"uint64","nodeType":"ElementaryTypeName","src":"24131:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13416,"initialValue":{"expression":{"expression":{"id":13413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24146:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24151:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24146:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24159:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24146:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24131:52:42"},{"body":{"id":13507,"nodeType":"Block","src":"24245:731:42","statements":[{"assignments":[13426],"declarations":[{"constant":false,"id":13426,"mutability":"mutable","name":"change","nameLocation":"24281:6:42","nodeType":"VariableDeclaration","scope":13507,"src":"24259:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13425,"nodeType":"UserDefinedTypeName","pathNode":{"id":13424,"name":"StakingChange","nameLocations":["24259:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"24259:13:42"},"referencedDeclaration":16238,"src":"24259:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13432,"initialValue":{"arguments":[{"id":13430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24313:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13427,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24290:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24295:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24290:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24303:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"24290:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24290:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24259:56:42"},{"assignments":[13434],"declarations":[{"constant":false,"id":13434,"mutability":"mutable","name":"validator","nameLocation":"24337:9:42","nodeType":"VariableDeclaration","scope":13507,"src":"24329:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13433,"name":"address","nodeType":"ElementaryTypeName","src":"24329:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13437,"initialValue":{"expression":{"id":13435,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24349:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24356:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"24349:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24329:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13438,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24384:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24391:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24384:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13440,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24397:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24414:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"24397:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24384:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13493,"nodeType":"Block","src":"24529:336:42","statements":[{"assignments":[13457],"declarations":[{"constant":false,"id":13457,"mutability":"mutable","name":"amount","nameLocation":"24555:6:42","nodeType":"VariableDeclaration","scope":13493,"src":"24547:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13466,"initialValue":{"arguments":[{"expression":{"id":13460,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24575:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24582:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24575:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24592:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24592:7:42","typeDescriptions":{}}}],"id":13464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24591:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24564:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24568:6:42","memberName":"decode","nodeType":"MemberAccess","src":"24564:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24564:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24547:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13467,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24624:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24631:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24624:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24637:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24654:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"24637:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24624:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13491,"nodeType":"Block","src":"24761:90:42","statements":[{"expression":{"arguments":[{"id":13487,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24814:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13488,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24825:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24783:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24788:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24783:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24799:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"24783:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24783:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13490,"nodeType":"ExpressionStatement","src":"24783:49:42"}]},"id":13492,"nodeType":"IfStatement","src":"24620:231:42","trueBody":{"id":13481,"nodeType":"Block","src":"24664:91:42","statements":[{"expression":{"arguments":[{"id":13477,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24718:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24729:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24686:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24691:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24686:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24702:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"24686:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24686:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13480,"nodeType":"ExpressionStatement","src":"24686:50:42"}]}}]},"id":13494,"nodeType":"IfStatement","src":"24380:485:42","trueBody":{"id":13455,"nodeType":"Block","src":"24427:96:42","statements":[{"expression":{"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24445:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24450:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24445:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24461:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"24445:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13449,"indexExpression":{"id":13446,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24472:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24445:37:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24483:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"24445:46:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13451,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24494:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24501:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24494:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24445:63:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13454,"nodeType":"ExpressionStatement","src":"24445:63:42"}]}},{"expression":{"arguments":[{"id":13500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24904:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24879:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24884:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24879:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24892:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"24879:24:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24879:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13502,"nodeType":"ExpressionStatement","src":"24879:27:42"},{"id":13506,"nodeType":"UncheckedBlock","src":"24920:46:42","statements":[{"expression":{"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24948:3:42","subExpression":{"id":13503,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24950:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13505,"nodeType":"ExpressionStatement","src":"24948:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24217:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24222:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24217:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13508,"initializationExpression":{"assignments":[13418],"declarations":[{"constant":false,"id":13418,"mutability":"mutable","name":"i","nameLocation":"24206:1:42","nodeType":"VariableDeclaration","scope":13508,"src":"24199:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13417,"name":"uint64","nodeType":"ElementaryTypeName","src":"24199:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13420,"initialValue":{"id":13419,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"24210:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24199:16:42"},"nodeType":"ForStatement","src":"24194:782:42"},{"expression":{"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":13509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24985:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24990:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24985:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24998:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24985:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13514,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"25025:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25047:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25025:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24985:63:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13518,"nodeType":"ExpressionStatement","src":"24985:63:42"}]},"documentation":{"id":13385,"nodeType":"StructuredDocumentation","src":"23721:60:42","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23795:13:42","parameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13388,"mutability":"mutable","name":"self","nameLocation":"23841:4:42","nodeType":"VariableDeclaration","scope":13520,"src":"23809:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13387,"nodeType":"UserDefinedTypeName","pathNode":{"id":13386,"name":"ParentValidatorsTracker","nameLocations":["23809:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23809:23:42"},"referencedDeclaration":16320,"src":"23809:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13390,"mutability":"mutable","name":"configurationNumber","nameLocation":"23854:19:42","nodeType":"VariableDeclaration","scope":13520,"src":"23847:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13389,"name":"uint64","nodeType":"ElementaryTypeName","src":"23847:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23808:66:42"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[],"src":"23884:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":13300,"nodeType":"StructuredDocumentation","src":"22532:155:42","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[13521],"name":"LibValidatorTracking","nameLocation":"22695:20:42","scope":13522,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":42} \ No newline at end of file diff --git a/contracts/out/LibStaking.sol/LibValidatorTracking.json b/contracts/out/LibStaking.sol/LibValidatorTracking.json deleted file mode 100644 index dfacbb3c42..0000000000 --- a/contracts/out/LibStaking.sol/LibValidatorTracking.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220898b4612ac8102bacf5165106eaf7afed279d62c5ae50427ae432941b930773564736f6c63430008130033","sourceMap":"22687:2370:42:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220898b4612ac8102bacf5165106eaf7afed279d62c5ae50427ae432941b930773564736f6c63430008130033","sourceMap":"22687:2370:42:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The library for tracking validator changes coming from the parent. Should be used in the child gateway to store changes until they can be applied.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorTracking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorTracking"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":13522,"exportedSymbols":{"Address":[1625],"AddressShouldBeValidator":[6051],"AddressStakingReleases":[16274],"CannotConfirmFutureChanges":[6055],"GatewayActorStorage":[11147],"IGateway":[8843],"InvalidConfigurationNumber":[6091],"LibAddressStakingReleases":[11618],"LibGatewayActorStorage":[11158],"LibMaxPQ":[15248],"LibMinPQ":[15867],"LibStaking":[13299],"LibStakingChangeLog":[13719],"LibStakingReleaseQueue":[11737],"LibSubnetActorStorage":[13850],"LibValidatorSet":[12589],"LibValidatorTracking":[13521],"MaxPQ":[14643],"MinPQ":[15261],"NoCollateralToWithdraw":[6121],"NoRewardToWithdraw":[6123],"NotValidator":[6163],"ParentValidatorsTracker":[16320],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingChangeRequest":[16244],"StakingOperation":[16230],"StakingRelease":[16264],"StakingReleaseQueue":[16284],"SubnetActorStorage":[13839],"Validator":[16334],"ValidatorSet":[16313],"WithdrawExceedingCollateral":[6183]},"nodeType":"SourceUnit","src":"46:25012:42","nodes":[{"id":11448,"nodeType":"PragmaDirective","src":"46:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":11450,"nodeType":"ImportDirective","src":"71:52:42","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":8844,"symbolAliases":[{"foreign":{"id":11449,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"79:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11453,"nodeType":"ImportDirective","src":"124:86:42","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":11451,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"132:21:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11452,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"155:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11456,"nodeType":"ImportDirective","src":"211:94:42","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":11227,"symbolAliases":[{"foreign":{"id":11454,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11147,"src":"219:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11455,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"240:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11459,"nodeType":"ImportDirective","src":"306:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15249,"symbolAliases":[{"foreign":{"id":11457,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"314:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11458,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14643,"src":"324:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11462,"nodeType":"ImportDirective","src":"363:56:42","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":15868,"symbolAliases":[{"foreign":{"id":11460,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"371:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11461,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"381:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11464,"nodeType":"ImportDirective","src":"420:62:42","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":13720,"symbolAliases":[{"foreign":{"id":11463,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"428:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11475,"nodeType":"ImportDirective","src":"483:221:42","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":11465,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"491:19:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11466,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"512:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11467,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"530:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11468,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"545:20:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"567:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11470,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"585:14:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11471,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"601:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11472,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16274,"src":"615:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11473,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"639:23:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11474,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"664:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11483,"nodeType":"ImportDirective","src":"705:208:42","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":11476,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"713:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11477,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"733:27:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11478,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"762:12:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11479,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"776:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11480,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"804:22:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11481,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"828:24:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11482,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"854:26:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11485,"nodeType":"ImportDirective","src":"914:65:42","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13522,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":11484,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"922:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11618,"nodeType":"ContractDefinition","src":"981:1635:42","nodes":[{"id":11524,"nodeType":"FunctionDefinition","src":"1197:261:42","nodes":[],"body":{"id":11523,"nodeType":"Block","src":"1288:170:42","nodes":[],"statements":[{"assignments":[11496],"declarations":[{"constant":false,"id":11496,"mutability":"mutable","name":"length","nameLocation":"1305:6:42","nodeType":"VariableDeclaration","scope":11523,"src":"1298:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1298:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11499,"initialValue":{"expression":{"id":11497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1314:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1319:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1314:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1298:27:42"},{"assignments":[11501],"declarations":[{"constant":false,"id":11501,"mutability":"mutable","name":"nextIdx","nameLocation":"1342:7:42","nodeType":"VariableDeclaration","scope":11523,"src":"1335:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11500,"name":"uint16","nodeType":"ElementaryTypeName","src":"1335:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11506,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1352:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1357:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1352:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11504,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1368:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1352:22:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1335:39:42"},{"expression":{"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1385:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1390:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"1385:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11511,"indexExpression":{"id":11509,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"1399:7:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1385:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11512,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11492,"src":"1410:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1385:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"id":11514,"nodeType":"ExpressionStatement","src":"1385:32:42"},{"expression":{"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11515,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"1427:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1432:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1427:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11518,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11496,"src":"1441:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1441:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1427:24:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11522,"nodeType":"ExpressionStatement","src":"1427:24:42"}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"1021:171:42","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1206:4:42","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11489,"mutability":"mutable","name":"self","nameLocation":"1242:4:42","nodeType":"VariableDeclaration","scope":11524,"src":"1211:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11488,"nodeType":"UserDefinedTypeName","pathNode":{"id":11487,"name":"AddressStakingReleases","nameLocations":["1211:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1211:22:42"},"referencedDeclaration":16274,"src":"1211:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"release","nameLocation":"1270:7:42","nodeType":"VariableDeclaration","scope":11524,"src":"1248:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11491,"nodeType":"UserDefinedTypeName","pathNode":{"id":11490,"name":"StakingRelease","nameLocations":["1248:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"1248:14:42"},"referencedDeclaration":16264,"src":"1248:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1210:68:42"},"returnParameters":{"id":11494,"nodeType":"ParameterList","parameters":[],"src":"1288:0:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11617,"nodeType":"FunctionDefinition","src":"1716:898:42","nodes":[],"body":{"id":11616,"nodeType":"Block","src":"1805:809:42","nodes":[],"statements":[{"assignments":[11536],"declarations":[{"constant":false,"id":11536,"mutability":"mutable","name":"length","nameLocation":"1822:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"1815:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11535,"name":"uint16","nodeType":"ElementaryTypeName","src":"1815:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11539,"initialValue":{"expression":{"id":11537,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1831:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1831:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1815:27:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1856:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1861:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"1856:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1871:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1856:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11548,"nodeType":"IfStatement","src":"1852:78:42","trueBody":{"id":11547,"nodeType":"Block","src":"1874:56:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11544,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1895:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"RevertStatement","src":"1888:31:42"}]}},{"assignments":[11550],"declarations":[{"constant":false,"id":11550,"mutability":"mutable","name":"i","nameLocation":"1947:1:42","nodeType":"VariableDeclaration","scope":11616,"src":"1940:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11549,"name":"uint16","nodeType":"ElementaryTypeName","src":"1940:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11553,"initialValue":{"expression":{"id":11551,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"1951:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1956:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"1951:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1940:24:42"},{"assignments":[11555],"declarations":[{"constant":false,"id":11555,"mutability":"mutable","name":"newLength","nameLocation":"1981:9:42","nodeType":"VariableDeclaration","scope":11616,"src":"1974:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1974:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11557,"initialValue":{"id":11556,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"1993:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1974:25:42"},{"assignments":[11559],"declarations":[{"constant":false,"id":11559,"mutability":"mutable","name":"amount","nameLocation":"2017:6:42","nodeType":"VariableDeclaration","scope":11616,"src":"2009:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11560,"nodeType":"VariableDeclarationStatement","src":"2009:14:42"},{"body":{"id":11598,"nodeType":"Block","src":"2052:458:42","statements":[{"assignments":[11566],"declarations":[{"constant":false,"id":11566,"mutability":"mutable","name":"release","nameLocation":"2088:7:42","nodeType":"VariableDeclaration","scope":11598,"src":"2066:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11565,"nodeType":"UserDefinedTypeName","pathNode":{"id":11564,"name":"StakingRelease","nameLocations":["2066:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"2066:14:42"},"referencedDeclaration":16264,"src":"2066:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11571,"initialValue":{"baseExpression":{"expression":{"id":11567,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2103:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2098:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11570,"indexExpression":{"id":11569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2112:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2066:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11572,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2263:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2271:9:42","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":16260,"src":"2263:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":11574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2283:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2289:6:42","memberName":"number","nodeType":"MemberAccess","src":"2283:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2263:32:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11579,"nodeType":"IfStatement","src":"2259:76:42","trueBody":{"id":11578,"nodeType":"Block","src":"2297:38:42","statements":[{"id":11577,"nodeType":"Break","src":"2315:5:42"}]}},{"expression":{"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":11581,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"2359:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"id":11582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2367:6:42","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":16263,"src":"2359:14:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2349:24:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11584,"nodeType":"ExpressionStatement","src":"2349:24:42"},{"expression":{"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2387:23:42","subExpression":{"baseExpression":{"expression":{"id":11585,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2394:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16273,"src":"2394:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":11588,"indexExpression":{"id":11587,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2408:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2394:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"2387:23:42"},{"id":11597,"nodeType":"UncheckedBlock","src":"2425:75:42","statements":[{"expression":{"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2453:3:42","subExpression":{"id":11591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2455:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11593,"nodeType":"ExpressionStatement","src":"2453:3:42"},{"expression":{"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2474:11:42","subExpression":{"id":11594,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2476:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11596,"nodeType":"ExpressionStatement","src":"2474:11:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2040:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11562,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"2044:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2040:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11599,"nodeType":"WhileStatement","src":"2033:477:42"},{"expression":{"id":11604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2520:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2525:8:42","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":16268,"src":"2520:13:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"2536:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2520:17:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11605,"nodeType":"ExpressionStatement","src":"2520:17:42"},{"expression":{"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11606,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2547:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":11608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2552:6:42","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":16266,"src":"2547:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11609,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2561:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2547:23:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11611,"nodeType":"ExpressionStatement","src":"2547:23:42"},{"expression":{"components":[{"id":11612,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"2589:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11613,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11555,"src":"2597:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":11614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2588:19:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":11534,"id":11615,"nodeType":"Return","src":"2581:26:42"}]},"documentation":{"id":11525,"nodeType":"StructuredDocumentation","src":"1464:247:42","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1725:7:42","parameters":{"id":11529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11528,"mutability":"mutable","name":"self","nameLocation":"1764:4:42","nodeType":"VariableDeclaration","scope":11617,"src":"1733:35:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":11527,"nodeType":"UserDefinedTypeName","pathNode":{"id":11526,"name":"AddressStakingReleases","nameLocations":["1733:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"1733:22:42"},"referencedDeclaration":16274,"src":"1733:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1732:37:42"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1788:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11617,"src":"1797:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11532,"name":"uint16","nodeType":"ElementaryTypeName","src":"1797:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1787:17:42"},"scope":11618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11618],"name":"LibAddressStakingReleases","nameLocation":"989:25:42","scope":13522,"usedErrors":[]},{"id":11737,"nodeType":"ContractDefinition","src":"2665:1272:42","nodes":[{"id":11622,"nodeType":"UsingForDirective","src":"2702:34:42","nodes":[],"global":false,"libraryName":{"id":11620,"name":"Address","nameLocations":["2708:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"2708:7:42"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"2720:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":11626,"nodeType":"UsingForDirective","src":"2741:59:42","nodes":[],"global":false,"libraryName":{"id":11623,"name":"LibAddressStakingReleases","nameLocations":["2747:25:42"],"nodeType":"IdentifierPath","referencedDeclaration":11618,"src":"2747:25:42"},"typeName":{"id":11625,"nodeType":"UserDefinedTypeName","pathNode":{"id":11624,"name":"AddressStakingReleases","nameLocations":["2777:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"2777:22:42"},"referencedDeclaration":16274,"src":"2777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":11634,"nodeType":"EventDefinition","src":"2806:84:42","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2812:20:42","parameters":{"id":11633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11628,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2841:9:42","nodeType":"VariableDeclaration","scope":11634,"src":"2833:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11627,"name":"address","nodeType":"ElementaryTypeName","src":"2833:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11630,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2860:6:42","nodeType":"VariableDeclaration","scope":11634,"src":"2852:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2852:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11632,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2876:12:42","nodeType":"VariableDeclaration","scope":11634,"src":"2868:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2868:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2832:57:42"}},{"id":11649,"nodeType":"FunctionDefinition","src":"2896:130:42","nodes":[],"body":{"id":11648,"nodeType":"Block","src":"2980:46:42","nodes":[],"statements":[{"expression":{"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"2990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2995:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"2990:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11645,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"3013:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11647,"nodeType":"ExpressionStatement","src":"2990:29:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2905:15:42","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11637,"mutability":"mutable","name":"self","nameLocation":"2949:4:42","nodeType":"VariableDeclaration","scope":11649,"src":"2921:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11636,"nodeType":"UserDefinedTypeName","pathNode":{"id":11635,"name":"StakingReleaseQueue","nameLocations":["2921:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2921:19:42"},"referencedDeclaration":16284,"src":"2921:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"blocks","nameLocation":"2963:6:42","nodeType":"VariableDeclaration","scope":11649,"src":"2955:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2920:50:42"},"returnParameters":{"id":11641,"nodeType":"ParameterList","parameters":[],"src":"2980:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11692,"nodeType":"FunctionDefinition","src":"3095:419:42","nodes":[],"body":{"id":11691,"nodeType":"Block","src":"3196:318:42","nodes":[],"statements":[{"assignments":[11661],"declarations":[{"constant":false,"id":11661,"mutability":"mutable","name":"releaseAt","nameLocation":"3214:9:42","nodeType":"VariableDeclaration","scope":11691,"src":"3206:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3206:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11667,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11662,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3226:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3232:6:42","memberName":"number","nodeType":"MemberAccess","src":"3226:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3241:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3246:15:42","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":16277,"src":"3241:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3206:55:42"},{"assignments":[11670],"declarations":[{"constant":false,"id":11670,"mutability":"mutable","name":"release","nameLocation":"3293:7:42","nodeType":"VariableDeclaration","scope":11691,"src":"3271:29:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":11669,"nodeType":"UserDefinedTypeName","pathNode":{"id":11668,"name":"StakingRelease","nameLocations":["3271:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"3271:14:42"},"referencedDeclaration":16264,"src":"3271:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":11675,"initialValue":{"arguments":[{"id":11672,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3330:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11673,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3349:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11671,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"3303:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$16264_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3319:9:42","3341:6:42"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3303:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3271:86:42"},{"expression":{"arguments":[{"id":11682,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"3398:7:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$16264_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":11676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11653,"src":"3368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3368:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11680,"indexExpression":{"id":11678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3382:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3368:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3393:4:42","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":11524,"src":"3368:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$_t_struct$_StakingRelease_$16264_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"3368:38:42"},{"eventCall":{"arguments":[{"id":11686,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11655,"src":"3455:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"3474:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11688,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"3496:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11685,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11634,"src":"3422:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3444:9:42","3466:6:42","3482:12:42"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3422:85:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11690,"nodeType":"EmitStatement","src":"3417:90:42"}]},"documentation":{"id":11650,"nodeType":"StructuredDocumentation","src":"3032:58:42","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3104:13:42","parameters":{"id":11658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11653,"mutability":"mutable","name":"self","nameLocation":"3146:4:42","nodeType":"VariableDeclaration","scope":11692,"src":"3118:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11652,"nodeType":"UserDefinedTypeName","pathNode":{"id":11651,"name":"StakingReleaseQueue","nameLocations":["3118:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3118:19:42"},"referencedDeclaration":16284,"src":"3118:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11655,"mutability":"mutable","name":"validator","nameLocation":"3160:9:42","nodeType":"VariableDeclaration","scope":11692,"src":"3152:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11654,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11657,"mutability":"mutable","name":"amount","nameLocation":"3179:6:42","nodeType":"VariableDeclaration","scope":11692,"src":"3171:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11656,"name":"uint256","nodeType":"ElementaryTypeName","src":"3171:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3117:69:42"},"returnParameters":{"id":11659,"nodeType":"ParameterList","parameters":[],"src":"3196:0:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11736,"nodeType":"FunctionDefinition","src":"3595:340:42","nodes":[],"body":{"id":11735,"nodeType":"Block","src":"3690:245:42","nodes":[],"statements":[{"assignments":[11704,11706],"declarations":[{"constant":false,"id":11704,"mutability":"mutable","name":"amount","nameLocation":"3709:6:42","nodeType":"VariableDeclaration","scope":11735,"src":"3701:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11703,"name":"uint256","nodeType":"ElementaryTypeName","src":"3701:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"newLength","nameLocation":"3724:9:42","nodeType":"VariableDeclaration","scope":11735,"src":"3717:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11705,"name":"uint16","nodeType":"ElementaryTypeName","src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11713,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":11707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3737:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3737:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11710,"indexExpression":{"id":11709,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3751:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":11711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3762:7:42","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":11617,"src":"3737:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$16274_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3700:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11714,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"3786:9:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3799:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3786:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11724,"nodeType":"IfStatement","src":"3782:76:42","trueBody":{"id":11723,"nodeType":"Block","src":"3802:56:42","statements":[{"expression":{"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3816:31:42","subExpression":{"baseExpression":{"expression":{"id":11717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"3823:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":11718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3828:8:42","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":16283,"src":"3823:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":11720,"indexExpression":{"id":11719,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3837:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3823:24:42","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11722,"nodeType":"ExpressionStatement","src":"3816:31:42"}]}},{"expression":{"arguments":[{"id":11730,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3897:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11727,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"3876:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11725,"name":"address","nodeType":"ElementaryTypeName","src":"3868:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"3868:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11732,"nodeType":"ExpressionStatement","src":"3868:36:42"},{"expression":{"id":11733,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"3922:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11702,"id":11734,"nodeType":"Return","src":"3915:13:42"}]},"documentation":{"id":11693,"nodeType":"StructuredDocumentation","src":"3520:70:42","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3604:5:42","parameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"self","nameLocation":"3638:4:42","nodeType":"VariableDeclaration","scope":11736,"src":"3610:32:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":11695,"nodeType":"UserDefinedTypeName","pathNode":{"id":11694,"name":"StakingReleaseQueue","nameLocations":["3610:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"3610:19:42"},"referencedDeclaration":16284,"src":"3610:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":11698,"mutability":"mutable","name":"validator","nameLocation":"3652:9:42","nodeType":"VariableDeclaration","scope":11736,"src":"3644:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11697,"name":"address","nodeType":"ElementaryTypeName","src":"3644:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3609:53:42"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11736,"src":"3681:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3681:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3680:9:42"},"scope":11737,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":11619,"nodeType":"StructuredDocumentation","src":"2618:47:42","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[11737],"name":"LibStakingReleaseQueue","nameLocation":"2673:22:42","scope":13522,"usedErrors":[]},{"id":12589,"nodeType":"ContractDefinition","src":"3979:9952:42","nodes":[{"id":11742,"nodeType":"UsingForDirective","src":"4009:25:42","nodes":[],"global":false,"libraryName":{"id":11739,"name":"LibMinPQ","nameLocations":["4015:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"4015:8:42"},"typeName":{"id":11741,"nodeType":"UserDefinedTypeName","pathNode":{"id":11740,"name":"MinPQ","nameLocations":["4028:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"4028:5:42"},"referencedDeclaration":15261,"src":"4028:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":11746,"nodeType":"UsingForDirective","src":"4039:25:42","nodes":[],"global":false,"libraryName":{"id":11743,"name":"LibMaxPQ","nameLocations":["4045:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"4045:8:42"},"typeName":{"id":11745,"nodeType":"UserDefinedTypeName","pathNode":{"id":11744,"name":"MaxPQ","nameLocations":["4058:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"4058:5:42"},"referencedDeclaration":14643,"src":"4058:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":11752,"nodeType":"EventDefinition","src":"4070:81:42","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"4076:32:42","parameters":{"id":11751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11748,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4117:9:42","nodeType":"VariableDeclaration","scope":11752,"src":"4109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11747,"name":"address","nodeType":"ElementaryTypeName","src":"4109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11750,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4136:13:42","nodeType":"VariableDeclaration","scope":11752,"src":"4128:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4108:42:42"}},{"id":11758,"nodeType":"EventDefinition","src":"4156:82:42","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4162:33:42","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11754,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4204:9:42","nodeType":"VariableDeclaration","scope":11758,"src":"4196:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11753,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11756,"indexed":false,"mutability":"mutable","name":"newCollateral","nameLocation":"4223:13:42","nodeType":"VariableDeclaration","scope":11758,"src":"4215:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4195:42:42"}},{"id":11764,"nodeType":"EventDefinition","src":"4243:64:42","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4249:18:42","parameters":{"id":11763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11760,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4276:9:42","nodeType":"VariableDeclaration","scope":11764,"src":"4268:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11759,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11762,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4295:10:42","nodeType":"VariableDeclaration","scope":11764,"src":"4287:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4267:39:42"}},{"id":11770,"nodeType":"EventDefinition","src":"4312:65:42","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4318:19:42","parameters":{"id":11769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11766,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4346:9:42","nodeType":"VariableDeclaration","scope":11770,"src":"4338:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11765,"name":"address","nodeType":"ElementaryTypeName","src":"4338:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11768,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"4365:10:42","nodeType":"VariableDeclaration","scope":11770,"src":"4357:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11767,"name":"uint256","nodeType":"ElementaryTypeName","src":"4357:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4337:39:42"}},{"id":11776,"nodeType":"EventDefinition","src":"4382:74:42","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4388:23:42","parameters":{"id":11775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11772,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4420:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4412:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11771,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11774,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4442:12:42","nodeType":"VariableDeclaration","scope":11776,"src":"4434:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11773,"name":"address","nodeType":"ElementaryTypeName","src":"4434:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4411:44:42"}},{"id":11780,"nodeType":"EventDefinition","src":"4461:45:42","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4467:19:42","parameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4495:9:42","nodeType":"VariableDeclaration","scope":11780,"src":"4487:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11777,"name":"address","nodeType":"ElementaryTypeName","src":"4487:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4486:19:42"}},{"id":11784,"nodeType":"EventDefinition","src":"4511:46:42","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4517:20:42","parameters":{"id":11783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4546:9:42","nodeType":"VariableDeclaration","scope":11784,"src":"4538:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11781,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4537:19:42"}},{"id":11799,"nodeType":"FunctionDefinition","src":"4633:178:42","nodes":[],"body":{"id":11798,"nodeType":"Block","src":"4746:65:42","nodes":[],"statements":[{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11793,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11791,"src":"4756:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11794,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"4769:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4780:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"4769:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4756:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"4756:48:42"}]},"documentation":{"id":11785,"nodeType":"StructuredDocumentation","src":"4563:65:42","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4642:27:42","parameters":{"id":11789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11788,"mutability":"mutable","name":"validators","nameLocation":"4691:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4670:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11787,"nodeType":"UserDefinedTypeName","pathNode":{"id":11786,"name":"ValidatorSet","nameLocations":["4670:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4670:12:42"},"referencedDeclaration":16313,"src":"4670:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4669:33:42"},"returnParameters":{"id":11792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11791,"mutability":"mutable","name":"collateral","nameLocation":"4734:10:42","nodeType":"VariableDeclaration","scope":11799,"src":"4726:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11790,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4725:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11816,"nodeType":"FunctionDefinition","src":"4866:163:42","nodes":[],"body":{"id":11815,"nodeType":"Block","src":"4967:62:42","nodes":[],"statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11808,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11806,"src":"4977:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11809,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"4985:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4996:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"4985:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5013:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"4985:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4985:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4977:45:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11814,"nodeType":"ExpressionStatement","src":"4977:45:42"}]},"documentation":{"id":11800,"nodeType":"StructuredDocumentation","src":"4817:44:42","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"4875:21:42","parameters":{"id":11804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"validators","nameLocation":"4918:10:42","nodeType":"VariableDeclaration","scope":11816,"src":"4897:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11802,"nodeType":"UserDefinedTypeName","pathNode":{"id":11801,"name":"ValidatorSet","nameLocations":["4897:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4897:12:42"},"referencedDeclaration":16313,"src":"4897:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"4896:33:42"},"returnParameters":{"id":11807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11806,"mutability":"mutable","name":"total","nameLocation":"4960:5:42","nodeType":"VariableDeclaration","scope":11816,"src":"4953:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11805,"name":"uint16","nodeType":"ElementaryTypeName","src":"4953:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4952:14:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11836,"nodeType":"FunctionDefinition","src":"5098:231:42","nodes":[],"body":{"id":11835,"nodeType":"Block","src":"5247:82:42","nodes":[],"statements":[{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11825,"src":"5257:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"5270:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5281:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"5270:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11831,"indexExpression":{"id":11830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5292:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5270:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"5270:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5257:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11834,"nodeType":"ExpressionStatement","src":"5257:65:42"}]},"documentation":{"id":11817,"nodeType":"StructuredDocumentation","src":"5035:58:42","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5107:22:42","parameters":{"id":11823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11820,"mutability":"mutable","name":"validators","nameLocation":"5160:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5139:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11819,"nodeType":"UserDefinedTypeName","pathNode":{"id":11818,"name":"ValidatorSet","nameLocations":["5139:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5139:12:42"},"referencedDeclaration":16313,"src":"5139:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"validator","nameLocation":"5188:9:42","nodeType":"VariableDeclaration","scope":11836,"src":"5180:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5129:74:42"},"returnParameters":{"id":11826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11825,"mutability":"mutable","name":"collateral","nameLocation":"5235:10:42","nodeType":"VariableDeclaration","scope":11836,"src":"5227:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5227:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5226:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11888,"nodeType":"FunctionDefinition","src":"5335:434:42","nodes":[],"body":{"id":11887,"nodeType":"Block","src":"5449:320:42","nodes":[],"statements":[{"assignments":[11846],"declarations":[{"constant":false,"id":11846,"mutability":"mutable","name":"size","nameLocation":"5466:4:42","nodeType":"VariableDeclaration","scope":11887,"src":"5459:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11845,"name":"uint16","nodeType":"ElementaryTypeName","src":"5459:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11847,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5473:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5484:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5473:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5501:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5473:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5473:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5459:51:42"},{"expression":{"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11852,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5520:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5546:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":11855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5532:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":11853,"name":"address","nodeType":"ElementaryTypeName","src":"5536:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11854,"nodeType":"ArrayTypeName","src":"5536:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5520:31:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11859,"nodeType":"ExpressionStatement","src":"5520:31:42"},{"body":{"id":11883,"nodeType":"Block","src":"5593:144:42","statements":[{"expression":{"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11867,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5607:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11871,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5617:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5621:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5617:5:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5607:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5665:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"5626:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5637:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5626:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5654:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"5626:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5607:60:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11878,"nodeType":"ExpressionStatement","src":"5607:60:42"},{"id":11882,"nodeType":"UncheckedBlock","src":"5681:46:42","statements":[{"expression":{"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5709:3:42","subExpression":{"id":11879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5711:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11881,"nodeType":"ExpressionStatement","src":"5709:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"5580:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11865,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"5585:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5580:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11884,"initializationExpression":{"assignments":[11861],"declarations":[{"constant":false,"id":11861,"mutability":"mutable","name":"i","nameLocation":"5573:1:42","nodeType":"VariableDeclaration","scope":11884,"src":"5566:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5566:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11863,"initialValue":{"hexValue":"31","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5577:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5566:12:42"},"nodeType":"ForStatement","src":"5561:176:42"},{"expression":{"id":11885,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"5753:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11844,"id":11886,"nodeType":"Return","src":"5746:16:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5344:20:42","parameters":{"id":11840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11839,"mutability":"mutable","name":"validators","nameLocation":"5386:10:42","nodeType":"VariableDeclaration","scope":11888,"src":"5365:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11838,"nodeType":"UserDefinedTypeName","pathNode":{"id":11837,"name":"ValidatorSet","nameLocations":["5365:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5365:12:42"},"referencedDeclaration":16313,"src":"5365:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5364:33:42"},"returnParameters":{"id":11844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11843,"mutability":"mutable","name":"addresses","nameLocation":"5438:9:42","nodeType":"VariableDeclaration","scope":11888,"src":"5421:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11841,"name":"address","nodeType":"ElementaryTypeName","src":"5421:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11842,"nodeType":"ArrayTypeName","src":"5421:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5420:28:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11933,"nodeType":"FunctionDefinition","src":"5840:432:42","nodes":[],"body":{"id":11932,"nodeType":"Block","src":"5945:327:42","nodes":[],"statements":[{"assignments":[11898],"declarations":[{"constant":false,"id":11898,"mutability":"mutable","name":"size","nameLocation":"5962:4:42","nodeType":"VariableDeclaration","scope":11932,"src":"5955:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11897,"name":"uint16","nodeType":"ElementaryTypeName","src":"5955:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":11899,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"5969:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"5969:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"5969:35:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":11902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5955:51:42"},{"body":{"id":11930,"nodeType":"Block","src":"6048:218:42","statements":[{"assignments":[11912],"declarations":[{"constant":false,"id":11912,"mutability":"mutable","name":"validator","nameLocation":"6070:9:42","nodeType":"VariableDeclaration","scope":11930,"src":"6062:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11911,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11918,"initialValue":{"arguments":[{"id":11916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6121:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":11913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6082:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6093:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"6082:27:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":11915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6110:10:42","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"6082:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6062:61:42"},{"expression":{"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11919,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"6137:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":11921,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"6174:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":11922,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"6186:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11920,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"6151:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6151:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:59:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11925,"nodeType":"ExpressionStatement","src":"6137:59:42"},{"id":11929,"nodeType":"UncheckedBlock","src":"6210:46:42","statements":[{"expression":{"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6238:3:42","subExpression":{"id":11926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6240:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11928,"nodeType":"ExpressionStatement","src":"6238:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11905,"src":"6035:1:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11909,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"6040:4:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6035:9:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11931,"initializationExpression":{"assignments":[11905],"declarations":[{"constant":false,"id":11905,"mutability":"mutable","name":"i","nameLocation":"6028:1:42","nodeType":"VariableDeclaration","scope":11931,"src":"6021:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11904,"name":"uint16","nodeType":"ElementaryTypeName","src":"6021:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":11907,"initialValue":{"hexValue":"31","id":11906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6032:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6021:12:42"},"nodeType":"ForStatement","src":"6016:250:42"}]},"documentation":{"id":11889,"nodeType":"StructuredDocumentation","src":"5775:60:42","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getActiveCollateral","nameLocation":"5849:19:42","parameters":{"id":11893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11892,"mutability":"mutable","name":"validators","nameLocation":"5890:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5869:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11891,"nodeType":"UserDefinedTypeName","pathNode":{"id":11890,"name":"ValidatorSet","nameLocations":["5869:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"5869:12:42"},"referencedDeclaration":16313,"src":"5869:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5868:33:42"},"returnParameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"collateral","nameLocation":"5933:10:42","nodeType":"VariableDeclaration","scope":11933,"src":"5925:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5924:20:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12004,"nodeType":"FunctionDefinition","src":"6434:634:42","nodes":[],"body":{"id":12003,"nodeType":"Block","src":"6591:477:42","nodes":[],"statements":[{"assignments":[11947],"declarations":[{"constant":false,"id":11947,"mutability":"mutable","name":"size","nameLocation":"6609:4:42","nodeType":"VariableDeclaration","scope":12003,"src":"6601:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11950,"initialValue":{"expression":{"id":11948,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6616:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6626:6:42","memberName":"length","nodeType":"MemberAccess","src":"6616:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6601:31:42"},{"assignments":[11955],"declarations":[{"constant":false,"id":11955,"mutability":"mutable","name":"activeCollaterals","nameLocation":"6659:17:42","nodeType":"VariableDeclaration","scope":12003,"src":"6642:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11954,"nodeType":"ArrayTypeName","src":"6642:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11961,"initialValue":{"arguments":[{"id":11959,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6693:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6679:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6683:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11957,"nodeType":"ArrayTypeName","src":"6683:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6642:56:42"},{"body":{"id":11999,"nodeType":"Block","src":"6737:291:42","statements":[{"condition":{"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6755:44:42","subExpression":{"arguments":[{"id":11969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6774:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":11970,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6786:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11972,"indexExpression":{"id":11971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6796:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6786:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11968,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"6756:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6756:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11982,"nodeType":"IfStatement","src":"6751:116:42","trueBody":{"id":11981,"nodeType":"Block","src":"6801:66:42","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":11976,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6839:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11978,"indexExpression":{"id":11977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6849:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6839:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11975,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"6826:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11980,"nodeType":"RevertStatement","src":"6819:33:42"}]}},{"expression":{"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11983,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"6880:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11985,"indexExpression":{"id":11984,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6898:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6880:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":11986,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"6903:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6914:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"6903:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":11991,"indexExpression":{"baseExpression":{"id":11988,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"6925:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11990,"indexExpression":{"id":11989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6935:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6925:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6903:35:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":11992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6939:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"6903:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:78:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11994,"nodeType":"ExpressionStatement","src":"6880:78:42"},{"id":11998,"nodeType":"UncheckedBlock","src":"6972:46:42","statements":[{"expression":{"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7000:3:42","subExpression":{"id":11995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"7002:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11997,"nodeType":"ExpressionStatement","src":"7000:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"6725:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11966,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"6729:4:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6725:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12000,"initializationExpression":{"assignments":[11963],"declarations":[{"constant":false,"id":11963,"mutability":"mutable","name":"i","nameLocation":"6722:1:42","nodeType":"VariableDeclaration","scope":12000,"src":"6714:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11964,"nodeType":"VariableDeclarationStatement","src":"6714:9:42"},"nodeType":"ForStatement","src":"6709:319:42"},{"expression":{"id":12001,"name":"activeCollaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"7044:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11945,"id":12002,"nodeType":"Return","src":"7037:24:42"}]},"documentation":{"id":11934,"nodeType":"StructuredDocumentation","src":"6278:151:42","text":"@notice Get the confirmed collaterals of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollaterals","nameLocation":"6443:23:42","parameters":{"id":11941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11937,"mutability":"mutable","name":"validators","nameLocation":"6497:10:42","nodeType":"VariableDeclaration","scope":12004,"src":"6476:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":11936,"nodeType":"UserDefinedTypeName","pathNode":{"id":11935,"name":"ValidatorSet","nameLocations":["6476:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"6476:12:42"},"referencedDeclaration":16313,"src":"6476:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":11940,"mutability":"mutable","name":"addresses","nameLocation":"6534:9:42","nodeType":"VariableDeclaration","scope":12004,"src":"6517:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"6517:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11939,"nodeType":"ArrayTypeName","src":"6517:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6466:83:42"},"returnParameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12004,"src":"6573:16:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6573:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11943,"nodeType":"ArrayTypeName","src":"6573:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6572:18:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12021,"nodeType":"FunctionDefinition","src":"7074:167:42","nodes":[],"body":{"id":12020,"nodeType":"Block","src":"7176:65:42","nodes":[],"statements":[{"expression":{"arguments":[{"id":12017,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"7224:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"7193:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7198:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"7193:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"7193:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7193:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12013,"id":12019,"nodeType":"Return","src":"7186:48:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7083:17:42","parameters":{"id":12010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12007,"mutability":"mutable","name":"self","nameLocation":"7122:4:42","nodeType":"VariableDeclaration","scope":12021,"src":"7101:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12006,"nodeType":"UserDefinedTypeName","pathNode":{"id":12005,"name":"ValidatorSet","nameLocations":["7101:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7101:12:42"},"referencedDeclaration":16313,"src":"7101:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12009,"mutability":"mutable","name":"validator","nameLocation":"7136:9:42","nodeType":"VariableDeclaration","scope":12021,"src":"7128:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12008,"name":"address","nodeType":"ElementaryTypeName","src":"7128:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7100:46:42"},"returnParameters":{"id":12013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12021,"src":"7170:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12011,"name":"bool","nodeType":"ElementaryTypeName","src":"7170:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7169:6:42"},"scope":12589,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12042,"nodeType":"FunctionDefinition","src":"7282:176:42","nodes":[],"body":{"id":12041,"nodeType":"Block","src":"7389:69:42","nodes":[],"statements":[{"expression":{"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12032,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"7399:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7410:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7399:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12036,"indexExpression":{"id":12034,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12027,"src":"7421:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7399:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7432:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"7399:41:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"7443:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7399:52:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":12040,"nodeType":"ExpressionStatement","src":"7399:52:42"}]},"documentation":{"id":12022,"nodeType":"StructuredDocumentation","src":"7247:30:42","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"7291:11:42","parameters":{"id":12030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12025,"mutability":"mutable","name":"validators","nameLocation":"7324:10:42","nodeType":"VariableDeclaration","scope":12042,"src":"7303:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12024,"nodeType":"UserDefinedTypeName","pathNode":{"id":12023,"name":"ValidatorSet","nameLocations":["7303:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7303:12:42"},"referencedDeclaration":16313,"src":"7303:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12027,"mutability":"mutable","name":"validator","nameLocation":"7344:9:42","nodeType":"VariableDeclaration","scope":12042,"src":"7336:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12026,"name":"address","nodeType":"ElementaryTypeName","src":"7336:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12029,"mutability":"mutable","name":"metadata","nameLocation":"7370:8:42","nodeType":"VariableDeclaration","scope":12042,"src":"7355:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12028,"name":"bytes","nodeType":"ElementaryTypeName","src":"7355:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7302:77:42"},"returnParameters":{"id":12031,"nodeType":"ParameterList","parameters":[],"src":"7389:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12063,"nodeType":"FunctionDefinition","src":"7765:175:42","nodes":[],"body":{"id":12062,"nodeType":"Block","src":"7865:75:42","nodes":[],"statements":[{"expression":{"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12053,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"7875:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7886:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"7875:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12057,"indexExpression":{"id":12055,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12048,"src":"7897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7875:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7908:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"7875:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"7927:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7875:58:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12061,"nodeType":"ExpressionStatement","src":"7875:58:42"}]},"documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"7697:63:42","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"7774:13:42","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12046,"mutability":"mutable","name":"validators","nameLocation":"7809:10:42","nodeType":"VariableDeclaration","scope":12063,"src":"7788:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"ValidatorSet","nameLocations":["7788:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"7788:12:42"},"referencedDeclaration":16313,"src":"7788:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12048,"mutability":"mutable","name":"validator","nameLocation":"7829:9:42","nodeType":"VariableDeclaration","scope":12063,"src":"7821:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"7821:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12050,"mutability":"mutable","name":"amount","nameLocation":"7848:6:42","nodeType":"VariableDeclaration","scope":12063,"src":"7840:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12049,"name":"uint256","nodeType":"ElementaryTypeName","src":"7840:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7787:68:42"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"7865:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12104,"nodeType":"FunctionDefinition","src":"8012:364:42","nodes":[],"body":{"id":12103,"nodeType":"Block","src":"8113:263:42","nodes":[],"statements":[{"assignments":[12075],"declarations":[{"constant":false,"id":12075,"mutability":"mutable","name":"total","nameLocation":"8131:5:42","nodeType":"VariableDeclaration","scope":12103,"src":"8123:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12074,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12081,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12076,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8139:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8150:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8139:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12079,"indexExpression":{"id":12078,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8139:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8172:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8139:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8123:64:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12082,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8201:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12083,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8209:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12089,"nodeType":"IfStatement","src":"8197:81:42","trueBody":{"id":12088,"nodeType":"Block","src":"8217:61:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12085,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"8238:27:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8238:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12087,"nodeType":"RevertStatement","src":"8231:36:42"}]}},{"expression":{"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12090,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8288:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12091,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"8297:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8288:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12093,"nodeType":"ExpressionStatement","src":"8288:15:42"},{"expression":{"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12094,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"8313:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8313:21:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12098,"indexExpression":{"id":12096,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12069,"src":"8335:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8346:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"8313:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12100,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"8364:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8313:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"8313:56:42"}]},"documentation":{"id":12064,"nodeType":"StructuredDocumentation","src":"7946:61:42","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8021:14:42","parameters":{"id":12072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12067,"mutability":"mutable","name":"validators","nameLocation":"8057:10:42","nodeType":"VariableDeclaration","scope":12104,"src":"8036:31:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12066,"nodeType":"UserDefinedTypeName","pathNode":{"id":12065,"name":"ValidatorSet","nameLocations":["8036:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8036:12:42"},"referencedDeclaration":16313,"src":"8036:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12069,"mutability":"mutable","name":"validator","nameLocation":"8077:9:42","nodeType":"VariableDeclaration","scope":12104,"src":"8069:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"8069:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12071,"mutability":"mutable","name":"amount","nameLocation":"8096:6:42","nodeType":"VariableDeclaration","scope":12104,"src":"8088:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12070,"name":"uint256","nodeType":"ElementaryTypeName","src":"8088:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8035:68:42"},"returnParameters":{"id":12073,"nodeType":"ParameterList","parameters":[],"src":"8113:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12146,"nodeType":"FunctionDefinition","src":"8382:408:42","nodes":[],"body":{"id":12145,"nodeType":"Block","src":"8477:313:42","nodes":[],"statements":[{"assignments":[12115],"declarations":[{"constant":false,"id":12115,"mutability":"mutable","name":"newCollateral","nameLocation":"8495:13:42","nodeType":"VariableDeclaration","scope":12145,"src":"8487:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8511:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8516:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8511:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12119,"indexExpression":{"id":12118,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8527:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8538:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8511:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8560:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8487:79:42"},{"expression":{"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8576:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8581:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8576:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12128,"indexExpression":{"id":12126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8592:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8576:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8603:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8576:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12130,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8625:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8576:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12132,"nodeType":"ExpressionStatement","src":"8576:62:42"},{"expression":{"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8649:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8654:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"8649:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"8682:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8649:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12138,"nodeType":"ExpressionStatement","src":"8649:39:42"},{"expression":{"arguments":[{"id":12140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"8723:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12141,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12109,"src":"8742:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12142,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12115,"src":"8768:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12139,"name":"depositReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"8699:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8717:4:42","8729:11:42","8753:13:42"],"names":["self","maybeActive","newCollateral"],"nodeType":"FunctionCall","src":"8699:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"8699:84:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"8391:14:42","parameters":{"id":12112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12107,"mutability":"mutable","name":"self","nameLocation":"8427:4:42","nodeType":"VariableDeclaration","scope":12146,"src":"8406:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12106,"nodeType":"UserDefinedTypeName","pathNode":{"id":12105,"name":"ValidatorSet","nameLocations":["8406:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8406:12:42"},"referencedDeclaration":16313,"src":"8406:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12109,"mutability":"mutable","name":"validator","nameLocation":"8441:9:42","nodeType":"VariableDeclaration","scope":12146,"src":"8433:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12108,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12111,"mutability":"mutable","name":"amount","nameLocation":"8460:6:42","nodeType":"VariableDeclaration","scope":12146,"src":"8452:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12110,"name":"uint256","nodeType":"ElementaryTypeName","src":"8452:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8405:62:42"},"returnParameters":{"id":12113,"nodeType":"ParameterList","parameters":[],"src":"8477:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12212,"nodeType":"FunctionDefinition","src":"8796:623:42","nodes":[],"body":{"id":12211,"nodeType":"Block","src":"8892:527:42","nodes":[],"statements":[{"assignments":[12157],"declarations":[{"constant":false,"id":12157,"mutability":"mutable","name":"newCollateral","nameLocation":"8910:13:42","nodeType":"VariableDeclaration","scope":12211,"src":"8902:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12156,"name":"uint256","nodeType":"ElementaryTypeName","src":"8902:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"8926:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8931:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"8926:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12161,"indexExpression":{"id":12160,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"8942:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8926:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8953:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"8926:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12163,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"8975:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8926:55:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8902:79:42"},{"assignments":[12167],"declarations":[{"constant":false,"id":12167,"mutability":"mutable","name":"totalCollateral","nameLocation":"8999:15:42","nodeType":"VariableDeclaration","scope":12211,"src":"8991:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12166,"name":"uint256","nodeType":"ElementaryTypeName","src":"8991:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12173,"initialValue":{"expression":{"baseExpression":{"expression":{"id":12168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9017:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9022:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9017:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12171,"indexExpression":{"id":12170,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9033:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9017:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9044:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"9017:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8991:68:42"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12174,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9074:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12177,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"9096:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9096:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9074:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12197,"nodeType":"Block","src":"9182:87:42","statements":[{"expression":{"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":12188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9196:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9201:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9196:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12192,"indexExpression":{"id":12190,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9212:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9223:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"9196:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12194,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9245:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:62:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12196,"nodeType":"ExpressionStatement","src":"9196:62:42"}]},"id":12198,"nodeType":"IfStatement","src":"9070:199:42","trueBody":{"id":12187,"nodeType":"Block","src":"9118:58:42","statements":[{"expression":{"id":12185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9132:33:42","subExpression":{"baseExpression":{"expression":{"id":12181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9139:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9144:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"9139:15:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12184,"indexExpression":{"id":12183,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9155:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9139:26:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12186,"nodeType":"ExpressionStatement","src":"9132:33:42"}]}},{"expression":{"arguments":[{"id":12200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9304:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12201,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"9321:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12202,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"9347:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12199,"name":"withdrawReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12588,"src":"9279:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9298:4:42","9310:9:42","9332:13:42"],"names":["self","validator","newCollateral"],"nodeType":"FunctionCall","src":"9279:83:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12204,"nodeType":"ExpressionStatement","src":"9279:83:42"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"9373:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9378:24:42","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16298,"src":"9373:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"9406:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9373:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12210,"nodeType":"ExpressionStatement","src":"9373:39:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"8805:15:42","parameters":{"id":12154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"mutability":"mutable","name":"self","nameLocation":"8842:4:42","nodeType":"VariableDeclaration","scope":12212,"src":"8821:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12148,"nodeType":"UserDefinedTypeName","pathNode":{"id":12147,"name":"ValidatorSet","nameLocations":["8821:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"8821:12:42"},"referencedDeclaration":16313,"src":"8821:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12151,"mutability":"mutable","name":"validator","nameLocation":"8856:9:42","nodeType":"VariableDeclaration","scope":12212,"src":"8848:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12150,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12153,"mutability":"mutable","name":"amount","nameLocation":"8875:6:42","nodeType":"VariableDeclaration","scope":12212,"src":"8867:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:62:42"},"returnParameters":{"id":12155,"nodeType":"ParameterList","parameters":[],"src":"8892:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12377,"nodeType":"FunctionDefinition","src":"9514:2248:42","nodes":[],"body":{"id":12376,"nodeType":"Block","src":"9620:2142:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12226,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9665:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12223,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"9634:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12244,"nodeType":"IfStatement","src":"9630:231:42","trueBody":{"id":12243,"nodeType":"Block","src":"9679:182:42","statements":[{"expression":{"arguments":[{"id":12233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9733:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12234,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9739:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9693:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9693:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9715:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15574,"src":"9693:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"9693:58:42"},{"eventCall":{"arguments":[{"id":12238,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"9803:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12239,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"9816:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12237,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"9770:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9770:60:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12241,"nodeType":"EmitStatement","src":"9765:65:42"},{"functionReturnParameters":12222,"id":12242,"nodeType":"Return","src":"9844:7:42"}]}},{"assignments":[12246],"declarations":[{"constant":false,"id":12246,"mutability":"mutable","name":"activeLimit","nameLocation":"9930:11:42","nodeType":"VariableDeclaration","scope":12376,"src":"9923:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12245,"name":"uint16","nodeType":"ElementaryTypeName","src":"9923:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12249,"initialValue":{"expression":{"id":12247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9944:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:11:42","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"9944:16:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9923:37:42"},{"assignments":[12251],"declarations":[{"constant":false,"id":12251,"mutability":"mutable","name":"activeSize","nameLocation":"9977:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"9970:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12250,"name":"uint16","nodeType":"ElementaryTypeName","src":"9970:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":12256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"9990:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9995:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"9990:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10012:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"9990:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"9970:51:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12257,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"10035:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12258,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12251,"src":"10049:10:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10035:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12276,"nodeType":"IfStatement","src":"10031:267:42","trueBody":{"id":12275,"nodeType":"Block","src":"10061:237:42","statements":[{"expression":{"arguments":[{"id":12265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12266,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10190:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10155:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10160:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10155:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10177:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"10155:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10155:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12268,"nodeType":"ExpressionStatement","src":"10155:47:42"},{"eventCall":{"arguments":[{"id":12270,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10240:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12271,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10253:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12269,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"10221:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12273,"nodeType":"EmitStatement","src":"10216:51:42"},{"functionReturnParameters":12222,"id":12274,"nodeType":"Return","src":"10281:7:42"}]}},{"assignments":[12278,12280],"declarations":[{"constant":false,"id":12278,"mutability":"mutable","name":"minAddress","nameLocation":"10845:10:42","nodeType":"VariableDeclaration","scope":12376,"src":"10837:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12277,"name":"address","nodeType":"ElementaryTypeName","src":"10837:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12280,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"10865:19:42","nodeType":"VariableDeclaration","scope":12376,"src":"10857:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12279,"name":"uint256","nodeType":"ElementaryTypeName","src":"10857:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12286,"initialValue":{"arguments":[{"id":12284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10914:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10888:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10888:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10910:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"10888:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10888:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10836:83:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12287,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"10933:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12288,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"10955:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10933:35:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12339,"nodeType":"IfStatement","src":"10929:462:42","trueBody":{"id":12338,"nodeType":"Block","src":"10970:421:42","statements":[{"expression":{"arguments":[{"id":12295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11010:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"10984:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10989:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"10984:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11006:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"10984:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10984:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12297,"nodeType":"ExpressionStatement","src":"10984:31:42"},{"condition":{"arguments":[{"id":12301,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11066:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12298,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11034:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11039:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11034:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11057:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11034:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11034:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12313,"nodeType":"IfStatement","src":"11030:140:42","trueBody":{"id":12312,"nodeType":"Block","src":"11080:90:42","statements":[{"expression":{"arguments":[{"id":12308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12309,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11143:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11098:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11103:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11098:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11121:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"11098:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11098:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12311,"nodeType":"ExpressionStatement","src":"11098:57:42"}]}},{"expression":{"arguments":[{"id":12319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11213:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12320,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11219:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12314,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11184:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11189:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"11184:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"11184:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12322,"nodeType":"ExpressionStatement","src":"11184:47:42"},{"expression":{"arguments":[{"id":12328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11275:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12329,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11281:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11245:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11250:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11245:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11268:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11245:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11245:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12331,"nodeType":"ExpressionStatement","src":"11245:47:42"},{"eventCall":{"arguments":[{"id":12333,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"11336:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12334,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11348:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12332,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"11312:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11312:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12336,"nodeType":"EmitStatement","src":"11307:53:42"},{"functionReturnParameters":12222,"id":12337,"nodeType":"Return","src":"11374:7:42"}]}},{"condition":{"arguments":[{"id":12343,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11437:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12340,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11405:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11410:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11405:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11428:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11405:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11405:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12361,"nodeType":"IfStatement","src":"11401:234:42","trueBody":{"id":12360,"nodeType":"Block","src":"11451:184:42","statements":[{"expression":{"arguments":[{"id":12350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11506:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12351,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11512:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11465:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11470:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11465:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11488:17:42","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"11465:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11465:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12353,"nodeType":"ExpressionStatement","src":"11465:59:42"},{"eventCall":{"arguments":[{"id":12355,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11577:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12356,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11590:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12354,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"11543:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:61:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12358,"nodeType":"EmitStatement","src":"11538:66:42"},{"functionReturnParameters":12222,"id":12359,"nodeType":"Return","src":"11618:7:42"}]}},{"expression":{"arguments":[{"id":12367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11675:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12368,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11681:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12362,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"11645:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11650:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11645:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11668:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"11645:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11645:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12370,"nodeType":"ExpressionStatement","src":"11645:48:42"},{"eventCall":{"arguments":[{"id":12372,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11728:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12373,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"11741:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12371,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"11708:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11708:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12375,"nodeType":"EmitStatement","src":"11703:52:42"}]},"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"9425:84:42","text":"@notice Reshuffles the active and waiting validators when a deposit is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"depositReshuffle","nameLocation":"9523:16:42","parameters":{"id":12221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12216,"mutability":"mutable","name":"self","nameLocation":"9561:4:42","nodeType":"VariableDeclaration","scope":12377,"src":"9540:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12215,"nodeType":"UserDefinedTypeName","pathNode":{"id":12214,"name":"ValidatorSet","nameLocations":["9540:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"9540:12:42"},"referencedDeclaration":16313,"src":"9540:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12218,"mutability":"mutable","name":"maybeActive","nameLocation":"9575:11:42","nodeType":"VariableDeclaration","scope":12377,"src":"9567:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"9567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12220,"mutability":"mutable","name":"newCollateral","nameLocation":"9596:13:42","nodeType":"VariableDeclaration","scope":12377,"src":"9588:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12219,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:71:42"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[],"src":"9620:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12588,"nodeType":"FunctionDefinition","src":"11858:2071:42","nodes":[],"body":{"id":12587,"nodeType":"Block","src":"11963:1966:42","nodes":[],"statements":[{"condition":{"arguments":[{"id":12391,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12388,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"11977:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"11977:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"11977:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12428,"nodeType":"IfStatement","src":"11973:431:42","trueBody":{"id":12427,"nodeType":"Block","src":"12021:383:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12393,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12039:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12056:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12039:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12411,"nodeType":"IfStatement","src":"12035:190:42","trueBody":{"id":12410,"nodeType":"Block","src":"12059:166:42","statements":[{"expression":{"arguments":[{"id":12401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12116:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12122:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12396,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12077:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12077:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12100:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":14921,"src":"12077:38:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12077:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"12077:55:42"},{"eventCall":{"arguments":[{"id":12406,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12176:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12405,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"12155:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12155:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12408,"nodeType":"EmitStatement","src":"12150:36:42"},{"functionReturnParameters":12387,"id":12409,"nodeType":"Return","src":"12204:7:42"}]}},{"expression":{"arguments":[{"id":12417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12279:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12418,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12285:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12412,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12238:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12243:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12238:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12261:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":14991,"src":"12238:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12238:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"12238:57:42"},{"eventCall":{"arguments":[{"id":12422,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12348:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12423,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12359:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12421,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"12314:33:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12425,"nodeType":"EmitStatement","src":"12309:64:42"},{"functionReturnParameters":12387,"id":12426,"nodeType":"Return","src":"12387:7:42"}]}},{"condition":{"id":12434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12442:42:42","subExpression":{"arguments":[{"id":12432,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12474:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12429,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12443:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12448:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12443:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12465:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"12443:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12443:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12439,"nodeType":"IfStatement","src":"12438:106:42","trueBody":{"id":12438,"nodeType":"Block","src":"12486:58:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12435,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"12507:24:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12507:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12437,"nodeType":"RevertStatement","src":"12500:33:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12440,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"12608:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12625:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12608:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12498,"nodeType":"IfStatement","src":"12604:523:42","trueBody":{"id":12497,"nodeType":"Block","src":"12628:499:42","statements":[{"expression":{"arguments":[{"id":12448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12680:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12449,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12686:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12642:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12647:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12642:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12664:15:42","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":15539,"src":"12642:37:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12642:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12451,"nodeType":"ExpressionStatement","src":"12642:54:42"},{"eventCall":{"arguments":[{"id":12453,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"12735:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12452,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"12715:19:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12715:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12455,"nodeType":"EmitStatement","src":"12710:35:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12764:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12769:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12764:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12787:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"12764:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12764:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12800:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12764:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12495,"nodeType":"IfStatement","src":"12760:336:42","trueBody":{"id":12494,"nodeType":"Block","src":"12803:293:42","statements":[{"assignments":[12463,12465],"declarations":[{"constant":false,"id":12463,"mutability":"mutable","name":"toBePromoted","nameLocation":"12830:12:42","nodeType":"VariableDeclaration","scope":12494,"src":"12822:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12462,"name":"address","nodeType":"ElementaryTypeName","src":"12822:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12465,"mutability":"mutable","name":"collateral","nameLocation":"12852:10:42","nodeType":"VariableDeclaration","scope":12494,"src":"12844:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12464,"name":"uint256","nodeType":"ElementaryTypeName","src":"12844:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12471,"initialValue":{"arguments":[{"id":12469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12893:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12866:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12871:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12866:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12889:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"12866:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12866:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12821:77:42"},{"expression":{"arguments":[{"id":12477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12943:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12916:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12921:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"12916:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12939:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"12916:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12916:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12479,"nodeType":"ExpressionStatement","src":"12916:32:42"},{"expression":{"arguments":[{"id":12485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12995:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12486,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13001:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"12966:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12971:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"12966:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12988:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"12966:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12966:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12488,"nodeType":"ExpressionStatement","src":"12966:48:42"},{"eventCall":{"arguments":[{"id":12490,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12463,"src":"13056:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12491,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12465,"src":"13070:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12489,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11764,"src":"13037:18:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13037:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12493,"nodeType":"EmitStatement","src":"13032:49:42"}]}},{"functionReturnParameters":12387,"id":12496,"nodeType":"Return","src":"13110:7:42"}]}},{"expression":{"arguments":[{"id":12504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13177:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12505,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13183:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12499,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13137:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13142:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13137:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13159:17:42","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":15609,"src":"13137:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13137:56:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12507,"nodeType":"ExpressionStatement","src":"13137:56:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13208:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13213:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13208:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13231:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"13208:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13244:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13208:37:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12516,"nodeType":"IfStatement","src":"13204:74:42","trueBody":{"id":12515,"nodeType":"Block","src":"13247:31:42","statements":[{"functionReturnParameters":12387,"id":12514,"nodeType":"Return","src":"13261:7:42"}]}},{"assignments":[12518,12520],"declarations":[{"constant":false,"id":12518,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"13297:12:42","nodeType":"VariableDeclaration","scope":12587,"src":"13289:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"13289:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"minActiveCollateral","nameLocation":"13319:19:42","nodeType":"VariableDeclaration","scope":12587,"src":"13311:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"13311:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12526,"initialValue":{"arguments":[{"id":12524,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13368:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12521,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13342:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13347:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13342:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13364:3:42","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":15650,"src":"13342:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13342:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13288:85:42"},{"assignments":[12528,12530],"declarations":[{"constant":false,"id":12528,"mutability":"mutable","name":"mayBePromoted","nameLocation":"13392:13:42","nodeType":"VariableDeclaration","scope":12587,"src":"13384:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12527,"name":"address","nodeType":"ElementaryTypeName","src":"13384:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12530,"mutability":"mutable","name":"maxWaitingCollateral","nameLocation":"13415:20:42","nodeType":"VariableDeclaration","scope":12587,"src":"13407:28:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"13407:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12536,"initialValue":{"arguments":[{"id":12534,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13466:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13439:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13444:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13439:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13462:3:42","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":15032,"src":"13439:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13383:88:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12537,"name":"minActiveCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"13485:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12538,"name":"maxWaitingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"13507:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13485:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12581,"nodeType":"IfStatement","src":"13481:368:42","trueBody":{"id":12580,"nodeType":"Block","src":"13529:320:42","statements":[{"expression":{"arguments":[{"id":12545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13569:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13543:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13548:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13543:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13565:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"13543:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12547,"nodeType":"ExpressionStatement","src":"13543:31:42"},{"expression":{"arguments":[{"id":12553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":12548,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13588:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13593:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13588:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13611:3:42","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":14829,"src":"13588:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":12554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13588:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12555,"nodeType":"ExpressionStatement","src":"13588:32:42"},{"expression":{"arguments":[{"id":12561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13663:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12562,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13669:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13634:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13639:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"13634:21:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13656:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":15380,"src":"13634:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$15261_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13634:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12564,"nodeType":"ExpressionStatement","src":"13634:49:42"},{"expression":{"arguments":[{"id":12570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13727:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":12571,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13733:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":12565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"13697:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":12568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13702:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"13697:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13720:6:42","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":14762,"src":"13697:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":12572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13697:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12573,"nodeType":"ExpressionStatement","src":"13697:49:42"},{"eventCall":{"arguments":[{"id":12575,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"13790:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"13804:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12574,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11776,"src":"13766:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12578,"nodeType":"EmitStatement","src":"13761:57:42"},{"functionReturnParameters":12387,"id":12579,"nodeType":"Return","src":"13832:7:42"}]}},{"eventCall":{"arguments":[{"id":12583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"13897:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12584,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"13908:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12582,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"13864:32:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13864:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"EmitStatement","src":"13859:63:42"}]},"documentation":{"id":12378,"nodeType":"StructuredDocumentation","src":"11768:85:42","text":"@notice Reshuffles the active and waiting validators when a withdraw is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawReshuffle","nameLocation":"11867:17:42","parameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12381,"mutability":"mutable","name":"self","nameLocation":"11906:4:42","nodeType":"VariableDeclaration","scope":12588,"src":"11885:25:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":12380,"nodeType":"UserDefinedTypeName","pathNode":{"id":12379,"name":"ValidatorSet","nameLocations":["11885:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"11885:12:42"},"referencedDeclaration":16313,"src":"11885:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":12383,"mutability":"mutable","name":"validator","nameLocation":"11920:9:42","nodeType":"VariableDeclaration","scope":12588,"src":"11912:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12382,"name":"address","nodeType":"ElementaryTypeName","src":"11912:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12385,"mutability":"mutable","name":"newCollateral","nameLocation":"11939:13:42","nodeType":"VariableDeclaration","scope":12588,"src":"11931:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12384,"name":"uint256","nodeType":"ElementaryTypeName","src":"11931:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11884:69:42"},"returnParameters":{"id":12387,"nodeType":"ParameterList","parameters":[],"src":"11963:0:42"},"scope":12589,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":11738,"nodeType":"StructuredDocumentation","src":"3939:40:42","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[12589],"name":"LibValidatorSet","nameLocation":"3987:15:42","scope":13522,"usedErrors":[]},{"id":13299,"nodeType":"ContractDefinition","src":"13933:8597:42","nodes":[{"id":12593,"nodeType":"UsingForDirective","src":"13958:53:42","nodes":[],"global":false,"libraryName":{"id":12590,"name":"LibStakingReleaseQueue","nameLocations":["13964:22:42"],"nodeType":"IdentifierPath","referencedDeclaration":11737,"src":"13964:22:42"},"typeName":{"id":12592,"nodeType":"UserDefinedTypeName","pathNode":{"id":12591,"name":"StakingReleaseQueue","nameLocations":["13991:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"13991:19:42"},"referencedDeclaration":16284,"src":"13991:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":12597,"nodeType":"UsingForDirective","src":"14016:47:42","nodes":[],"global":false,"libraryName":{"id":12594,"name":"LibStakingChangeLog","nameLocations":["14022:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"14022:19:42"},"typeName":{"id":12596,"nodeType":"UserDefinedTypeName","pathNode":{"id":12595,"name":"StakingChangeLog","nameLocations":["14046:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"14046:16:42"},"referencedDeclaration":16257,"src":"14046:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":12601,"nodeType":"UsingForDirective","src":"14068:39:42","nodes":[],"global":false,"libraryName":{"id":12598,"name":"LibValidatorSet","nameLocations":["14074:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"14074:15:42"},"typeName":{"id":12600,"nodeType":"UserDefinedTypeName","pathNode":{"id":12599,"name":"ValidatorSet","nameLocations":["14094:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"14094:12:42"},"referencedDeclaration":16313,"src":"14094:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":12605,"nodeType":"UsingForDirective","src":"14112:25:42","nodes":[],"global":false,"libraryName":{"id":12602,"name":"LibMaxPQ","nameLocations":["14118:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15248,"src":"14118:8:42"},"typeName":{"id":12604,"nodeType":"UserDefinedTypeName","pathNode":{"id":12603,"name":"MaxPQ","nameLocations":["14131:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"14131:5:42"},"referencedDeclaration":14643,"src":"14131:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}}},{"id":12609,"nodeType":"UsingForDirective","src":"14142:25:42","nodes":[],"global":false,"libraryName":{"id":12606,"name":"LibMinPQ","nameLocations":["14148:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":15867,"src":"14148:8:42"},"typeName":{"id":12608,"nodeType":"UserDefinedTypeName","pathNode":{"id":12607,"name":"MinPQ","nameLocations":["14161:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"14161:5:42"},"referencedDeclaration":15261,"src":"14161:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}}},{"id":12612,"nodeType":"UsingForDirective","src":"14172:34:42","nodes":[],"global":false,"libraryName":{"id":12610,"name":"Address","nameLocations":["14178:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"14178:7:42"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"14190:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":12615,"nodeType":"VariableDeclaration","src":"14212:57:42","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"14237:28:42","scope":13299,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12613,"name":"uint64","nodeType":"ElementaryTypeName","src":"14212:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":12614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14268:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":12619,"nodeType":"EventDefinition","src":"14276:50:42","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"14282:28:42","parameters":{"id":12618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12617,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"14318:6:42","nodeType":"VariableDeclaration","scope":12619,"src":"14311:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12616,"name":"uint64","nodeType":"ElementaryTypeName","src":"14311:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"14310:15:42"}},{"id":12625,"nodeType":"EventDefinition","src":"14331:59:42","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"14337:17:42","parameters":{"id":12624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12621,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"14363:9:42","nodeType":"VariableDeclaration","scope":12625,"src":"14355:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12620,"name":"address","nodeType":"ElementaryTypeName","src":"14355:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12623,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"14382:6:42","nodeType":"VariableDeclaration","scope":12625,"src":"14374:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12622,"name":"uint256","nodeType":"ElementaryTypeName","src":"14374:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14354:35:42"}},{"id":12648,"nodeType":"FunctionDefinition","src":"14505:225:42","nodes":[],"body":{"id":12647,"nodeType":"Block","src":"14580:150:42","nodes":[],"statements":[{"assignments":[12635],"declarations":[{"constant":false,"id":12635,"mutability":"mutable","name":"s","nameLocation":"14617:1:42","nodeType":"VariableDeclaration","scope":12647,"src":"14590:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12634,"nodeType":"UserDefinedTypeName","pathNode":{"id":12633,"name":"SubnetActorStorage","nameLocations":["14590:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14590:18:42"},"referencedDeclaration":13839,"src":"14590:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12636,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14621:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14643:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14621:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14621:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14590:65:42"},{"expression":{"arguments":[{"id":12644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12628,"src":"14713:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12640,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"14672:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14674:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14672:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14687:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"14672:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14704:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15317,"src":"14672:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14672:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12632,"id":12646,"nodeType":"Return","src":"14665:58:42"}]},"documentation":{"id":12626,"nodeType":"StructuredDocumentation","src":"14442:58:42","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"14514:17:42","parameters":{"id":12629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12628,"mutability":"mutable","name":"validator","nameLocation":"14540:9:42","nodeType":"VariableDeclaration","scope":12648,"src":"14532:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12627,"name":"address","nodeType":"ElementaryTypeName","src":"14532:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14531:19:42"},"returnParameters":{"id":12632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"14574:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12630,"name":"bool","nodeType":"ElementaryTypeName","src":"14574:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14573:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12671,"nodeType":"FunctionDefinition","src":"14799:227:42","nodes":[],"body":{"id":12670,"nodeType":"Block","src":"14875:151:42","nodes":[],"statements":[{"assignments":[12658],"declarations":[{"constant":false,"id":12658,"mutability":"mutable","name":"s","nameLocation":"14912:1:42","nodeType":"VariableDeclaration","scope":12670,"src":"14885:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12657,"nodeType":"UserDefinedTypeName","pathNode":{"id":12656,"name":"SubnetActorStorage","nameLocations":["14885:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"14885:18:42"},"referencedDeclaration":13839,"src":"14885:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12662,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12659,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"14916:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14938:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"14916:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14885:65:42"},{"expression":{"arguments":[{"id":12667,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"15009:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":12663,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"14967:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14969:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"14967:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14982:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"14967:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15000:8:42","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":14699,"src":"14967:41:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":12668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14967:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12655,"id":12669,"nodeType":"Return","src":"14960:59:42"}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"14736:58:42","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"14808:18:42","parameters":{"id":12652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"validator","nameLocation":"14835:9:42","nodeType":"VariableDeclaration","scope":12671,"src":"14827:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12650,"name":"address","nodeType":"ElementaryTypeName","src":"14827:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14826:19:42"},"returnParameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12671,"src":"14869:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12653,"name":"bool","nodeType":"ElementaryTypeName","src":"14869:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14868:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12696,"nodeType":"FunctionDefinition","src":"15090:280:42","nodes":[],"body":{"id":12695,"nodeType":"Block","src":"15157:213:42","nodes":[],"statements":[{"assignments":[12681],"declarations":[{"constant":false,"id":12681,"mutability":"mutable","name":"s","nameLocation":"15194:1:42","nodeType":"VariableDeclaration","scope":12695,"src":"15167:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12680,"nodeType":"UserDefinedTypeName","pathNode":{"id":12679,"name":"SubnetActorStorage","nameLocations":["15167:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15167:18:42"},"referencedDeclaration":13839,"src":"15167:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12682,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15198:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15198:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15167:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12686,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"15306:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15308:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15306:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"15306:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12690,"indexExpression":{"id":12689,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"15332:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15306:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15343:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"15306:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15362:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15306:57:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12678,"id":12694,"nodeType":"Return","src":"15299:64:42"}]},"documentation":{"id":12672,"nodeType":"StructuredDocumentation","src":"15032:53:42","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"15099:9:42","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12674,"mutability":"mutable","name":"validator","nameLocation":"15117:9:42","nodeType":"VariableDeclaration","scope":12696,"src":"15109:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12673,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15108:19:42"},"returnParameters":{"id":12678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12696,"src":"15151:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12676,"name":"bool","nodeType":"ElementaryTypeName","src":"15151:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15150:6:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12714,"nodeType":"FunctionDefinition","src":"15376:201:42","nodes":[],"body":{"id":12713,"nodeType":"Block","src":"15440:137:42","nodes":[],"statements":[{"assignments":[12703],"declarations":[{"constant":false,"id":12703,"mutability":"mutable","name":"s","nameLocation":"15477:1:42","nodeType":"VariableDeclaration","scope":12713,"src":"15450:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12702,"nodeType":"UserDefinedTypeName","pathNode":{"id":12701,"name":"SubnetActorStorage","nameLocations":["15450:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15450:18:42"},"referencedDeclaration":13839,"src":"15450:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15481:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15503:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15481:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15481:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15450:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"15532:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15534:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15532:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:21:42","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":11816,"src":"15532:36:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15532:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12700,"id":12712,"nodeType":"Return","src":"15525:45:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"15385:21:42","parameters":{"id":12697,"nodeType":"ParameterList","parameters":[],"src":"15406:2:42"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12714,"src":"15432:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12698,"name":"uint16","nodeType":"ElementaryTypeName","src":"15432:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15431:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12740,"nodeType":"FunctionDefinition","src":"15665:243:42","nodes":[],"body":{"id":12739,"nodeType":"Block","src":"15723:185:42","nodes":[],"statements":[{"assignments":[12722],"declarations":[{"constant":false,"id":12722,"mutability":"mutable","name":"s","nameLocation":"15760:1:42","nodeType":"VariableDeclaration","scope":12739,"src":"15733:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12721,"nodeType":"UserDefinedTypeName","pathNode":{"id":12720,"name":"SubnetActorStorage","nameLocations":["15733:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15733:18:42"},"referencedDeclaration":13839,"src":"15733:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12723,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"15764:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15786:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"15764:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15764:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15733:65:42"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12727,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15815:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15817:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15815:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15830:17:42","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":16312,"src":"15815:32:42","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage","typeString":"struct MaxPQ storage ref"}},"id":12730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15848:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":14665,"src":"15815:40:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$14643_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$14643_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":12731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15815:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":12732,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12722,"src":"15860:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15860:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15875:16:42","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"15860:31:42","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage","typeString":"struct MinPQ storage ref"}},"id":12735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:7:42","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":15283,"src":"15860:39:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$15261_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$15261_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15815:86:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12719,"id":12738,"nodeType":"Return","src":"15808:93:42"}]},"documentation":{"id":12715,"nodeType":"StructuredDocumentation","src":"15583:77:42","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"15674:15:42","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"15689:2:42"},"returnParameters":{"id":12719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12740,"src":"15715:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12717,"name":"uint16","nodeType":"ElementaryTypeName","src":"15715:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"15714:8:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12758,"nodeType":"FunctionDefinition","src":"15914:214:42","nodes":[],"body":{"id":12757,"nodeType":"Block","src":"15985:143:42","nodes":[],"statements":[{"assignments":[12747],"declarations":[{"constant":false,"id":12747,"mutability":"mutable","name":"s","nameLocation":"16022:1:42","nodeType":"VariableDeclaration","scope":12757,"src":"15995:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12746,"nodeType":"UserDefinedTypeName","pathNode":{"id":12745,"name":"SubnetActorStorage","nameLocations":["15995:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"15995:18:42"},"referencedDeclaration":13839,"src":"15995:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12748,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16026:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16048:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16026:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15995:65:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"16077:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16079:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16077:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16092:27:42","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":11799,"src":"16077:42:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12744,"id":12756,"nodeType":"Return","src":"16070:51:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"15923:27:42","parameters":{"id":12741,"nodeType":"ParameterList","parameters":[],"src":"15950:2:42"},"returnParameters":{"id":12744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12758,"src":"15976:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12742,"name":"uint256","nodeType":"ElementaryTypeName","src":"15976:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15975:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12781,"nodeType":"FunctionDefinition","src":"16203:236:42","nodes":[],"body":{"id":12780,"nodeType":"Block","src":"16288:151:42","nodes":[],"statements":[{"assignments":[12768],"declarations":[{"constant":false,"id":12768,"mutability":"mutable","name":"s","nameLocation":"16325:1:42","nodeType":"VariableDeclaration","scope":12780,"src":"16298:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12767,"nodeType":"UserDefinedTypeName","pathNode":{"id":12766,"name":"SubnetActorStorage","nameLocations":["16298:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16298:18:42"},"referencedDeclaration":13839,"src":"16298:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12769,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16329:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16329:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16329:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16298:65:42"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":12773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"16380:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16382:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16380:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16395:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"16380:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12777,"indexExpression":{"id":12776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"16406:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16380:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16417:15:42","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":16288,"src":"16380:52:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12765,"id":12779,"nodeType":"Return","src":"16373:59:42"}]},"documentation":{"id":12759,"nodeType":"StructuredDocumentation","src":"16134:64:42","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"16212:24:42","parameters":{"id":12762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12761,"mutability":"mutable","name":"validator","nameLocation":"16245:9:42","nodeType":"VariableDeclaration","scope":12781,"src":"16237:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12760,"name":"address","nodeType":"ElementaryTypeName","src":"16237:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16236:19:42"},"returnParameters":{"id":12765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12781,"src":"16279:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16278:9:42"},"scope":13299,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12806,"nodeType":"FunctionDefinition","src":"16592:224:42","nodes":[],"body":{"id":12805,"nodeType":"Block","src":"16677:139:42","nodes":[],"statements":[{"assignments":[12791],"declarations":[{"constant":false,"id":12791,"mutability":"mutable","name":"s","nameLocation":"16714:1:42","nodeType":"VariableDeclaration","scope":12805,"src":"16687:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12790,"nodeType":"UserDefinedTypeName","pathNode":{"id":12789,"name":"SubnetActorStorage","nameLocations":["16687:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16687:18:42"},"referencedDeclaration":13839,"src":"16687:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"16718:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16740:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"16718:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16718:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16687:65:42"},{"expression":{"arguments":[{"id":12801,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12784,"src":"16789:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12802,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"16800:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"16762:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16764:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"16762:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16777:11:42","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":12042,"src":"16762:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16762:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12804,"nodeType":"ExpressionStatement","src":"16762:47:42"}]},"documentation":{"id":12782,"nodeType":"StructuredDocumentation","src":"16511:76:42","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"16601:22:42","parameters":{"id":12787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12784,"mutability":"mutable","name":"validator","nameLocation":"16632:9:42","nodeType":"VariableDeclaration","scope":12806,"src":"16624:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12783,"name":"address","nodeType":"ElementaryTypeName","src":"16624:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12786,"mutability":"mutable","name":"metadata","nameLocation":"16658:8:42","nodeType":"VariableDeclaration","scope":12806,"src":"16643:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12785,"name":"bytes","nodeType":"ElementaryTypeName","src":"16643:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16623:44:42"},"returnParameters":{"id":12788,"nodeType":"ParameterList","parameters":[],"src":"16677:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12915,"nodeType":"FunctionDefinition","src":"16914:1335:42","nodes":[],"body":{"id":12914,"nodeType":"Block","src":"16986:1263:42","nodes":[],"statements":[{"assignments":[12816],"declarations":[{"constant":false,"id":12816,"mutability":"mutable","name":"s","nameLocation":"17023:1:42","nodeType":"VariableDeclaration","scope":12914,"src":"16996:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12815,"nodeType":"UserDefinedTypeName","pathNode":{"id":12814,"name":"SubnetActorStorage","nameLocations":["16996:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"16996:18:42"},"referencedDeclaration":13839,"src":"16996:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12820,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12817,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"17027:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17049:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"17027:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17027:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16996:65:42"},{"expression":{"arguments":[{"id":12826,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17161:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17172:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17132:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17134:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17132:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17147:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"17132:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"17132:47:42"},{"expression":{"arguments":[{"id":12835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17284:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12836,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"17295:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12830,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17254:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17256:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17254:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17269:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"17254:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17254:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"ExpressionStatement","src":"17254:48:42"},{"condition":{"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17317:15:42","subExpression":{"expression":{"id":12839,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17318:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17320:12:42","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"17318:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12913,"nodeType":"IfStatement","src":"17313:930:42","trueBody":{"id":12912,"nodeType":"Block","src":"17334:909:42","statements":[{"assignments":[12843],"declarations":[{"constant":false,"id":12843,"mutability":"mutable","name":"alreadyValidator","nameLocation":"17459:16:42","nodeType":"VariableDeclaration","scope":12912,"src":"17454:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12842,"name":"bool","nodeType":"ElementaryTypeName","src":"17454:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12844,"nodeType":"VariableDeclarationStatement","src":"17454:21:42"},{"assignments":[12846],"declarations":[{"constant":false,"id":12846,"mutability":"mutable","name":"length","nameLocation":"17497:6:42","nodeType":"VariableDeclaration","scope":12912,"src":"17489:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12845,"name":"uint256","nodeType":"ElementaryTypeName","src":"17489:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12850,"initialValue":{"expression":{"expression":{"id":12847,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17506:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17508:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17506:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17526:6:42","memberName":"length","nodeType":"MemberAccess","src":"17506:26:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17489:43:42"},{"body":{"id":12875,"nodeType":"Block","src":"17576:240:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":12857,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17598:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17600:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"17598:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12860,"indexExpression":{"id":12859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17618:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17598:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage","typeString":"struct Validator storage ref"}},"id":12861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17621:4:42","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":16331,"src":"17598:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12862,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17629:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17598:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12870,"nodeType":"IfStatement","src":"17594:137:42","trueBody":{"id":12869,"nodeType":"Block","src":"17640:91:42","statements":[{"expression":{"id":12866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12864,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17662:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17681:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17662:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12867,"nodeType":"ExpressionStatement","src":"17662:23:42"},{"id":12868,"nodeType":"Break","src":"17707:5:42"}]}},{"id":12874,"nodeType":"UncheckedBlock","src":"17748:54:42","statements":[{"expression":{"id":12872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17780:3:42","subExpression":{"id":12871,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17782:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12873,"nodeType":"ExpressionStatement","src":"17780:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"17562:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12855,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12846,"src":"17566:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17562:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12876,"initializationExpression":{"assignments":[12852],"declarations":[{"constant":false,"id":12852,"mutability":"mutable","name":"i","nameLocation":"17559:1:42","nodeType":"VariableDeclaration","scope":12876,"src":"17551:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12851,"name":"uint256","nodeType":"ElementaryTypeName","src":"17551:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12853,"nodeType":"VariableDeclarationStatement","src":"17551:9:42"},"nodeType":"ForStatement","src":"17546:270:42"},{"condition":{"id":12878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17833:17:42","subExpression":{"id":12877,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"17834:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12911,"nodeType":"IfStatement","src":"17829:404:42","trueBody":{"id":12910,"nodeType":"Block","src":"17852:381:42","statements":[{"assignments":[12880],"declarations":[{"constant":false,"id":12880,"mutability":"mutable","name":"collateral","nameLocation":"17878:10:42","nodeType":"VariableDeclaration","scope":12910,"src":"17870:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12879,"name":"uint256","nodeType":"ElementaryTypeName","src":"17870:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12887,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":12881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"17891:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17893:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"17891:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17906:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"17891:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12885,"indexExpression":{"id":12884,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"17917:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17891:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17928:19:42","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":16286,"src":"17891:56:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17870:77:42"},{"assignments":[12890],"declarations":[{"constant":false,"id":12890,"mutability":"mutable","name":"val","nameLocation":"17982:3:42","nodeType":"VariableDeclaration","scope":12910,"src":"17965:20:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator"},"typeName":{"id":12889,"nodeType":"UserDefinedTypeName","pathNode":{"id":12888,"name":"Validator","nameLocations":["17965:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"17965:9:42"},"referencedDeclaration":16334,"src":"17965:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":12901,"initialValue":{"arguments":[{"id":12892,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18026:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12893,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"18065:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":12894,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18107:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18109:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18107:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18122:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"18107:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":12898,"indexExpression":{"id":12897,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12809,"src":"18133:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18107:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":12899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18144:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"18107:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":12891,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"17988:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$16334_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18020:4:42","18057:6:42","18097:8:42"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"17988:183:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"17965:206:42"},{"expression":{"arguments":[{"id":12907,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"18214:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$16334_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":12902,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"18189:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18191:17:42","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"18189:19:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18209:4:42","memberName":"push","nodeType":"MemberAccess","src":"18189:24:42","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$_t_struct$_Validator_$16334_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":12908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12909,"nodeType":"ExpressionStatement","src":"18189:29:42"}]}}]}}]},"documentation":{"id":12807,"nodeType":"StructuredDocumentation","src":"16822:87:42","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"16923:18:42","parameters":{"id":12812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12809,"mutability":"mutable","name":"validator","nameLocation":"16950:9:42","nodeType":"VariableDeclaration","scope":12915,"src":"16942:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12808,"name":"address","nodeType":"ElementaryTypeName","src":"16942:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12811,"mutability":"mutable","name":"amount","nameLocation":"16969:6:42","nodeType":"VariableDeclaration","scope":12915,"src":"16961:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12810,"name":"uint256","nodeType":"ElementaryTypeName","src":"16961:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16941:35:42"},"returnParameters":{"id":12813,"nodeType":"ParameterList","parameters":[],"src":"16986:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12957,"nodeType":"FunctionDefinition","src":"18439:504:42","nodes":[],"body":{"id":12956,"nodeType":"Block","src":"18512:431:42","nodes":[],"statements":[{"assignments":[12925],"declarations":[{"constant":false,"id":12925,"mutability":"mutable","name":"s","nameLocation":"18549:1:42","nodeType":"VariableDeclaration","scope":12956,"src":"18522:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12924,"nodeType":"UserDefinedTypeName","pathNode":{"id":12923,"name":"SubnetActorStorage","nameLocations":["18522:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"18522:18:42"},"referencedDeclaration":13839,"src":"18522:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12926,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"18553:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"18553:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18522:65:42"},{"expression":{"arguments":[{"id":12935,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18688:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12936,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18699:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18658:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18660:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18658:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18673:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"18658:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12938,"nodeType":"ExpressionStatement","src":"18658:48:42"},{"expression":{"arguments":[{"id":12944,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18812:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18823:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12939,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12925,"src":"18781:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18783:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"18781:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":12943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18796:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"18781:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":12946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18781:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12947,"nodeType":"ExpressionStatement","src":"18781:49:42"},{"expression":{"arguments":[{"id":12953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"18929:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":12950,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12918,"src":"18908:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18900:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":12948,"name":"address","nodeType":"ElementaryTypeName","src":"18900:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":12951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18919:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"18900:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18900:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12955,"nodeType":"ExpressionStatement","src":"18900:36:42"}]},"documentation":{"id":12916,"nodeType":"StructuredDocumentation","src":"18255:179:42","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"18448:19:42","parameters":{"id":12921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12918,"mutability":"mutable","name":"validator","nameLocation":"18476:9:42","nodeType":"VariableDeclaration","scope":12957,"src":"18468:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12917,"name":"address","nodeType":"ElementaryTypeName","src":"18468:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12920,"mutability":"mutable","name":"amount","nameLocation":"18495:6:42","nodeType":"VariableDeclaration","scope":12957,"src":"18487:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18487:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18467:35:42"},"returnParameters":{"id":12922,"nodeType":"ParameterList","parameters":[],"src":"18512:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12982,"nodeType":"FunctionDefinition","src":"19060:223:42","nodes":[],"body":{"id":12981,"nodeType":"Block","src":"19143:140:42","nodes":[],"statements":[{"assignments":[12967],"declarations":[{"constant":false,"id":12967,"mutability":"mutable","name":"s","nameLocation":"19180:1:42","nodeType":"VariableDeclaration","scope":12981,"src":"19153:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12966,"nodeType":"UserDefinedTypeName","pathNode":{"id":12965,"name":"SubnetActorStorage","nameLocations":["19153:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19153:18:42"},"referencedDeclaration":13839,"src":"19153:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12971,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12968,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19184:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19206:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19184:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19184:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19153:65:42"},{"expression":{"arguments":[{"id":12977,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12960,"src":"19256:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12978,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12962,"src":"19267:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":12972,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12967,"src":"19228:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":12975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19230:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19228:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":12976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19240:15:42","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":13569,"src":"19228:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12980,"nodeType":"ExpressionStatement","src":"19228:48:42"}]},"documentation":{"id":12958,"nodeType":"StructuredDocumentation","src":"19017:38:42","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"19069:20:42","parameters":{"id":12963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12960,"mutability":"mutable","name":"validator","nameLocation":"19098:9:42","nodeType":"VariableDeclaration","scope":12982,"src":"19090:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12959,"name":"address","nodeType":"ElementaryTypeName","src":"19090:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12962,"mutability":"mutable","name":"metadata","nameLocation":"19124:8:42","nodeType":"VariableDeclaration","scope":12982,"src":"19109:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12961,"name":"bytes","nodeType":"ElementaryTypeName","src":"19109:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19089:44:42"},"returnParameters":{"id":12964,"nodeType":"ParameterList","parameters":[],"src":"19143:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13016,"nodeType":"FunctionDefinition","src":"19328:256:42","nodes":[],"body":{"id":13015,"nodeType":"Block","src":"19389:195:42","nodes":[],"statements":[{"assignments":[12992],"declarations":[{"constant":false,"id":12992,"mutability":"mutable","name":"s","nameLocation":"19426:1:42","nodeType":"VariableDeclaration","scope":13015,"src":"19399:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":12991,"nodeType":"UserDefinedTypeName","pathNode":{"id":12990,"name":"SubnetActorStorage","nameLocations":["19399:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19399:18:42"},"referencedDeclaration":13839,"src":"19399:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":12996,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12993,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19430:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19452:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19430:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19430:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19399:65:42"},{"expression":{"arguments":[{"id":13002,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19502:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13003,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19513:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19475:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19477:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19475:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19487:14:42","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":13643,"src":"19475:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19475:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13005,"nodeType":"ExpressionStatement","src":"19475:45:42"},{"expression":{"arguments":[{"id":13011,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12985,"src":"19559:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13012,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12987,"src":"19570:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13006,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"19530:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19532:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19530:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19545:13:42","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"19530:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19530:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13014,"nodeType":"ExpressionStatement","src":"19530:47:42"}]},"documentation":{"id":12983,"nodeType":"StructuredDocumentation","src":"19289:34:42","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"19337:7:42","parameters":{"id":12988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12985,"mutability":"mutable","name":"validator","nameLocation":"19353:9:42","nodeType":"VariableDeclaration","scope":13016,"src":"19345:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12984,"name":"address","nodeType":"ElementaryTypeName","src":"19345:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12987,"mutability":"mutable","name":"amount","nameLocation":"19372:6:42","nodeType":"VariableDeclaration","scope":13016,"src":"19364:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12986,"name":"uint256","nodeType":"ElementaryTypeName","src":"19364:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19344:35:42"},"returnParameters":{"id":12989,"nodeType":"ParameterList","parameters":[],"src":"19389:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13050,"nodeType":"FunctionDefinition","src":"19630:259:42","nodes":[],"body":{"id":13049,"nodeType":"Block","src":"19692:197:42","nodes":[],"statements":[{"assignments":[13026],"declarations":[{"constant":false,"id":13026,"mutability":"mutable","name":"s","nameLocation":"19729:1:42","nodeType":"VariableDeclaration","scope":13049,"src":"19702:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13025,"nodeType":"UserDefinedTypeName","pathNode":{"id":13024,"name":"SubnetActorStorage","nameLocations":["19702:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"19702:18:42"},"referencedDeclaration":13839,"src":"19702:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13027,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19733:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19755:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"19733:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19733:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19702:65:42"},{"expression":{"arguments":[{"id":13036,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19806:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19817:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19778:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19780:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"19778:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19790:15:42","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":13606,"src":"19778:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19778:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13039,"nodeType":"ExpressionStatement","src":"19778:46:42"},{"expression":{"arguments":[{"id":13045,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"19864:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13046,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"19875:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"19834:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19836:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"19834:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19849:14:42","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":12104,"src":"19834:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13048,"nodeType":"ExpressionStatement","src":"19834:48:42"}]},"documentation":{"id":13017,"nodeType":"StructuredDocumentation","src":"19590:35:42","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"19639:8:42","parameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13019,"mutability":"mutable","name":"validator","nameLocation":"19656:9:42","nodeType":"VariableDeclaration","scope":13050,"src":"19648:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13018,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13021,"mutability":"mutable","name":"amount","nameLocation":"19675:6:42","nodeType":"VariableDeclaration","scope":13050,"src":"19667:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13020,"name":"uint256","nodeType":"ElementaryTypeName","src":"19667:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19647:35:42"},"returnParameters":{"id":13023,"nodeType":"ParameterList","parameters":[],"src":"19692:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13077,"nodeType":"FunctionDefinition","src":"19998:244:42","nodes":[],"body":{"id":13076,"nodeType":"Block","src":"20051:191:42","nodes":[],"statements":[{"assignments":[13058],"declarations":[{"constant":false,"id":13058,"mutability":"mutable","name":"s","nameLocation":"20088:1:42","nodeType":"VariableDeclaration","scope":13076,"src":"20061:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13057,"nodeType":"UserDefinedTypeName","pathNode":{"id":13056,"name":"SubnetActorStorage","nameLocations":["20061:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20061:18:42"},"referencedDeclaration":13839,"src":"20061:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13062,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13059,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20092:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20114:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20092:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20092:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20061:65:42"},{"assignments":[13064],"declarations":[{"constant":false,"id":13064,"mutability":"mutable","name":"amount","nameLocation":"20144:6:42","nodeType":"VariableDeclaration","scope":13076,"src":"20136:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13063,"name":"uint256","nodeType":"ElementaryTypeName","src":"20136:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"id":13068,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20174:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"20153:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20155:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"20153:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20168:5:42","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"20153:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20153:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20136:48:42"},{"eventCall":{"arguments":[{"id":13072,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"20217:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13064,"src":"20228:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13071,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"20199:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20199:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13075,"nodeType":"EmitStatement","src":"20194:41:42"}]},"documentation":{"id":13051,"nodeType":"StructuredDocumentation","src":"19952:41:42","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"20007:15:42","parameters":{"id":13054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13053,"mutability":"mutable","name":"validator","nameLocation":"20031:9:42","nodeType":"VariableDeclaration","scope":13077,"src":"20023:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13052,"name":"address","nodeType":"ElementaryTypeName","src":"20023:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20022:19:42"},"returnParameters":{"id":13055,"nodeType":"ParameterList","parameters":[],"src":"20051:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13130,"nodeType":"FunctionDefinition","src":"20356:423:42","nodes":[],"body":{"id":13129,"nodeType":"Block","src":"20413:366:42","nodes":[],"statements":[{"assignments":[13085],"declarations":[{"constant":false,"id":13085,"mutability":"mutable","name":"s","nameLocation":"20450:1:42","nodeType":"VariableDeclaration","scope":13129,"src":"20423:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13084,"nodeType":"UserDefinedTypeName","pathNode":{"id":13083,"name":"SubnetActorStorage","nameLocations":["20423:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20423:18:42"},"referencedDeclaration":13839,"src":"20423:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13086,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"20454:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20476:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"20454:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20423:65:42"},{"assignments":[13091],"declarations":[{"constant":false,"id":13091,"mutability":"mutable","name":"amount","nameLocation":"20506:6:42","nodeType":"VariableDeclaration","scope":13129,"src":"20498:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13090,"name":"uint256","nodeType":"ElementaryTypeName","src":"20498:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13096,"initialValue":{"baseExpression":{"expression":{"id":13092,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20515:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20517:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20515:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13095,"indexExpression":{"id":13094,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20532:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20515:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20498:42:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20555:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20565:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20555:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13104,"nodeType":"IfStatement","src":"20551:69:42","trueBody":{"id":13103,"nodeType":"Block","src":"20568:52:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13100,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"20589:18:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20589:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13102,"nodeType":"RevertStatement","src":"20582:27:42"}]}},{"expression":{"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20630:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20632:14:42","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"20630:16:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":13109,"indexExpression":{"id":13107,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20647:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20630:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20658:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20630:29:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13112,"nodeType":"ExpressionStatement","src":"20630:29:42"},{"expression":{"arguments":[{"id":13118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20720:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13085,"src":"20678:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20680:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"20678:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13113,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"20669:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20696:23:42","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":8779,"src":"20669:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20669:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13120,"nodeType":"ExpressionStatement","src":"20669:58:42"},{"expression":{"arguments":[{"id":13126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13091,"src":"20765:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13123,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"20746:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20738:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":13121,"name":"address","nodeType":"ElementaryTypeName","src":"20738:8:42","stateMutability":"payable","typeDescriptions":{}}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20755:9:42","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"20738:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13128,"nodeType":"ExpressionStatement","src":"20738:34:42"}]},"documentation":{"id":13078,"nodeType":"StructuredDocumentation","src":"20248:103:42","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"20365:21:42","parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"relayer","nameLocation":"20395:7:42","nodeType":"VariableDeclaration","scope":13130,"src":"20387:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13079,"name":"address","nodeType":"ElementaryTypeName","src":"20387:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20386:17:42"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[],"src":"20413:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13298,"nodeType":"FunctionDefinition","src":"20907:1621:42","nodes":[],"body":{"id":13297,"nodeType":"Block","src":"20967:1561:42","nodes":[],"statements":[{"assignments":[13138],"declarations":[{"constant":false,"id":13138,"mutability":"mutable","name":"s","nameLocation":"21004:1:42","nodeType":"VariableDeclaration","scope":13297,"src":"20977:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13137,"nodeType":"UserDefinedTypeName","pathNode":{"id":13136,"name":"SubnetActorStorage","nameLocations":["20977:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"20977:18:42"},"referencedDeclaration":13839,"src":"20977:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":13142,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13139,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"21008:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$13850_$","typeString":"type(library LibSubnetActorStorage)"}},"id":13140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:10:42","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"21008:32:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$13839_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21008:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20977:65:42"},{"assignments":[13145],"declarations":[{"constant":false,"id":13145,"mutability":"mutable","name":"changeSet","nameLocation":"21077:9:42","nodeType":"VariableDeclaration","scope":13297,"src":"21052:34:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13144,"nodeType":"UserDefinedTypeName","pathNode":{"id":13143,"name":"StakingChangeLog","nameLocations":["21052:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"21052:16:42"},"referencedDeclaration":16257,"src":"21052:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":13148,"initialValue":{"expression":{"id":13146,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21089:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21091:9:42","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"21089:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21052:48:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13149,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21115:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":13150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21138:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21148:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"21138:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21115:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13157,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21243:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13158,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21265:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21275:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21265:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21243:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13163,"nodeType":"IfStatement","src":"21239:93:42","trueBody":{"id":13162,"nodeType":"Block","src":"21301:31:42","statements":[{"functionReturnParameters":13135,"id":13161,"nodeType":"Return","src":"21315:7:42"}]}},"id":13164,"nodeType":"IfStatement","src":"21111:221:42","trueBody":{"id":13156,"nodeType":"Block","src":"21173:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13153,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"21194:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13155,"nodeType":"RevertStatement","src":"21187:35:42"}]}},{"assignments":[13166],"declarations":[{"constant":false,"id":13166,"mutability":"mutable","name":"start","nameLocation":"21349:5:42","nodeType":"VariableDeclaration","scope":13297,"src":"21342:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13165,"name":"uint64","nodeType":"ElementaryTypeName","src":"21342:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13169,"initialValue":{"expression":{"id":13167,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21357:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21367:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"21357:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21342:49:42"},{"body":{"id":13283,"nodeType":"Block","src":"21452:934:42","statements":[{"assignments":[13179],"declarations":[{"constant":false,"id":13179,"mutability":"mutable","name":"change","nameLocation":"21488:6:42","nodeType":"VariableDeclaration","scope":13283,"src":"21466:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13178,"nodeType":"UserDefinedTypeName","pathNode":{"id":13177,"name":"StakingChange","nameLocations":["21466:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"21466:13:42"},"referencedDeclaration":16238,"src":"21466:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13184,"initialValue":{"arguments":[{"id":13182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21517:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13180,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"21497:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21507:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"21497:19:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21497:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21466:53:42"},{"assignments":[13186],"declarations":[{"constant":false,"id":13186,"mutability":"mutable","name":"validator","nameLocation":"21541:9:42","nodeType":"VariableDeclaration","scope":13283,"src":"21533:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13185,"name":"address","nodeType":"ElementaryTypeName","src":"21533:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13189,"initialValue":{"expression":{"id":13187,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21553:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21560:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"21553:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21533:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13190,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21588:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21595:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21588:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13192,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21601:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21618:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"21601:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21588:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13271,"nodeType":"Block","src":"21732:546:42","statements":[{"assignments":[13209],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"amount","nameLocation":"21758:6:42","nodeType":"VariableDeclaration","scope":13271,"src":"21750:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13208,"name":"uint256","nodeType":"ElementaryTypeName","src":"21750:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13218,"initialValue":{"arguments":[{"expression":{"id":13212,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21778:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21785:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21778:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21795:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"21795:7:42","typeDescriptions":{}}}],"id":13216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21794:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21767:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21771:6:42","memberName":"decode","nodeType":"MemberAccess","src":"21767:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21767:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21750:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13219,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21827:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21834:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"21827:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13221,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"21840:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21857:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"21840:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"21827:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13269,"nodeType":"Block","src":"22101:163:42","statements":[{"expression":{"arguments":[{"id":13256,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"22153:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13257,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22164:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13251,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22123:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22125:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"22123:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22138:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"22123:29:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22123:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13259,"nodeType":"ExpressionStatement","src":"22123:48:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":13261,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22202:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22204:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22202:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13260,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22193:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22220:8:42","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":8767,"src":"22193:35:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13265,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22236:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"22193:50:42","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22193:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13268,"nodeType":"ExpressionStatement","src":"22193:52:42"}]},"id":13270,"nodeType":"IfStatement","src":"21823:441:42","trueBody":{"id":13250,"nodeType":"Block","src":"21867:228:42","statements":[{"expression":{"arguments":[{"id":13229,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21920:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13230,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"21931:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21889:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21891:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21889:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"21889:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13232,"nodeType":"ExpressionStatement","src":"21889:49:42"},{"expression":{"arguments":[{"id":13238,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21989:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13239,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22000:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21960:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21962:12:42","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":13815,"src":"21960:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":13237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21975:13:42","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":11692,"src":"21960:28:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$16284_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":13240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21960:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13241,"nodeType":"ExpressionStatement","src":"21960:47:42"},{"expression":{"arguments":[{"id":13247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"22069:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13243,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"22038:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22040:14:42","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"22038:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"22029:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22056:12:42","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":8773,"src":"22029:39:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22029:47:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13249,"nodeType":"ExpressionStatement","src":"22029:47:42"}]}}]},"id":13272,"nodeType":"IfStatement","src":"21584:694:42","trueBody":{"id":13207,"nodeType":"Block","src":"21631:95:42","statements":[{"expression":{"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13195,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"21649:1:42","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":13199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21651:12:42","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"21649:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21664:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"21649:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13201,"indexExpression":{"id":13198,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"21675:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21649:36:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21686:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"21649:45:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13203,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"21697:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21704:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"21697:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"21649:62:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13206,"nodeType":"ExpressionStatement","src":"21649:62:42"}]}},{"expression":{"arguments":[{"id":13276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22314:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":13273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22292:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22302:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"22292:21:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22292:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13278,"nodeType":"ExpressionStatement","src":"22292:24:42"},{"id":13282,"nodeType":"UncheckedBlock","src":"22330:46:42","statements":[{"expression":{"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"22358:3:42","subExpression":{"id":13279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"22360:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13281,"nodeType":"ExpressionStatement","src":"22358:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13171,"src":"21424:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13175,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"21429:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21424:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13284,"initializationExpression":{"assignments":[13171],"declarations":[{"constant":false,"id":13171,"mutability":"mutable","name":"i","nameLocation":"21413:1:42","nodeType":"VariableDeclaration","scope":13284,"src":"21406:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13170,"name":"uint64","nodeType":"ElementaryTypeName","src":"21406:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13173,"initialValue":{"id":13172,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13166,"src":"21417:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21406:16:42"},"nodeType":"ForStatement","src":"21401:985:42"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13285,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"22396:9:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22406:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"22396:34:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13288,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22433:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22433:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22396:60:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13292,"nodeType":"ExpressionStatement","src":"22396:60:42"},{"eventCall":{"arguments":[{"id":13294,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"22501:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13293,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"22472:28:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22472:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13296,"nodeType":"EmitStatement","src":"22467:54:42"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"20785:117:42","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"20916:13:42","parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"configurationNumber","nameLocation":"20937:19:42","nodeType":"VariableDeclaration","scope":13298,"src":"20930:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13132,"name":"uint64","nodeType":"ElementaryTypeName","src":"20930:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20929:28:42"},"returnParameters":{"id":13135,"nodeType":"ParameterList","parameters":[],"src":"20967:0:42"},"scope":13299,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13299],"name":"LibStaking","nameLocation":"13941:10:42","scope":13522,"usedErrors":[1248,1256,6123]},{"id":13521,"nodeType":"ContractDefinition","src":"22687:2370:42","nodes":[{"id":13304,"nodeType":"UsingForDirective","src":"22722:39:42","nodes":[],"global":false,"libraryName":{"id":13301,"name":"LibValidatorSet","nameLocations":["22728:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"22728:15:42"},"typeName":{"id":13303,"nodeType":"UserDefinedTypeName","pathNode":{"id":13302,"name":"ValidatorSet","nameLocations":["22748:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"22748:12:42"},"referencedDeclaration":16313,"src":"22748:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":13308,"nodeType":"UsingForDirective","src":"22766:47:42","nodes":[],"global":false,"libraryName":{"id":13305,"name":"LibStakingChangeLog","nameLocations":["22772:19:42"],"nodeType":"IdentifierPath","referencedDeclaration":13719,"src":"22772:19:42"},"typeName":{"id":13307,"nodeType":"UserDefinedTypeName","pathNode":{"id":13306,"name":"StakingChangeLog","nameLocations":["22796:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"22796:16:42"},"referencedDeclaration":16257,"src":"22796:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":13343,"nodeType":"FunctionDefinition","src":"22819:475:42","nodes":[],"body":{"id":13342,"nodeType":"Block","src":"22932:362:42","nodes":[],"statements":[{"assignments":[13318],"declarations":[{"constant":false,"id":13318,"mutability":"mutable","name":"configurationNumber","nameLocation":"22949:19:42","nodeType":"VariableDeclaration","scope":13342,"src":"22942:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13317,"name":"uint64","nodeType":"ElementaryTypeName","src":"22942:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13332,"initialValue":{"arguments":[{"expression":{"expression":{"id":13322,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23022:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23036:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23022:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23043:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"23022:30:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":13325,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23070:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23084:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23070:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23091:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"23070:23:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":13328,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23116:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23130:6:42","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":16241,"src":"23116:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23137:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"23116:28:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":13319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13311,"src":"22971:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22976:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"22971:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22984:12:42","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":13685,"src":"22971:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["23011:9:42","23066:2:42","23107:7:42"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"22971:184:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"22942:213:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13333,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"23170:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13334,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"23193:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23207:19:42","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":16243,"src":"23193:33:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23170:56:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13341,"nodeType":"IfStatement","src":"23166:122:42","trueBody":{"id":13340,"nodeType":"Block","src":"23228:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13337,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"23249:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23249:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13339,"nodeType":"RevertStatement","src":"23242:35:42"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"22828:11:42","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13311,"mutability":"mutable","name":"self","nameLocation":"22872:4:42","nodeType":"VariableDeclaration","scope":13343,"src":"22840:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13310,"nodeType":"UserDefinedTypeName","pathNode":{"id":13309,"name":"ParentValidatorsTracker","nameLocations":["22840:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"22840:23:42"},"referencedDeclaration":16320,"src":"22840:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"changeRequest","nameLocation":"22908:13:42","nodeType":"VariableDeclaration","scope":13343,"src":"22878:43:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":13313,"nodeType":"UserDefinedTypeName","pathNode":{"id":13312,"name":"StakingChangeRequest","nameLocations":["22878:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"22878:20:42"},"referencedDeclaration":16244,"src":"22878:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"22839:83:42"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"22932:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13384,"nodeType":"FunctionDefinition","src":"23300:415:42","nodes":[],"body":{"id":13383,"nodeType":"Block","src":"23443:272:42","nodes":[],"statements":[{"assignments":[13354],"declarations":[{"constant":false,"id":13354,"mutability":"mutable","name":"length","nameLocation":"23461:6:42","nodeType":"VariableDeclaration","scope":13383,"src":"23453:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13353,"name":"uint256","nodeType":"ElementaryTypeName","src":"23453:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13357,"initialValue":{"expression":{"id":13355,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23470:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23485:6:42","memberName":"length","nodeType":"MemberAccess","src":"23470:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23453:38:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13358,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23505:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23505:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13363,"nodeType":"IfStatement","src":"23501:48:42","trueBody":{"id":13362,"nodeType":"Block","src":"23518:31:42","statements":[{"functionReturnParameters":13352,"id":13361,"nodeType":"Return","src":"23532:7:42"}]}},{"body":{"id":13381,"nodeType":"Block","src":"23589:120:42","statements":[{"expression":{"arguments":[{"id":13371,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"23615:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":13372,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"23621:14:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":13374,"indexExpression":{"id":13373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23636:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23621:17:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":13370,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"23603:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$16320_storage_ptr_$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13376,"nodeType":"ExpressionStatement","src":"23603:36:42"},{"id":13380,"nodeType":"UncheckedBlock","src":"23653:46:42","statements":[{"expression":{"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23681:3:42","subExpression":{"id":13377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23683:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13379,"nodeType":"ExpressionStatement","src":"23681:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"23575:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13368,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"23579:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23575:10:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13382,"initializationExpression":{"assignments":[13365],"declarations":[{"constant":false,"id":13365,"mutability":"mutable","name":"i","nameLocation":"23572:1:42","nodeType":"VariableDeclaration","scope":13382,"src":"23564:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13364,"name":"uint256","nodeType":"ElementaryTypeName","src":"23564:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13366,"nodeType":"VariableDeclarationStatement","src":"23564:9:42"},"nodeType":"ForStatement","src":"23559:150:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"23309:16:42","parameters":{"id":13351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"self","nameLocation":"23367:4:42","nodeType":"VariableDeclaration","scope":13384,"src":"23335:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13345,"nodeType":"UserDefinedTypeName","pathNode":{"id":13344,"name":"ParentValidatorsTracker","nameLocations":["23335:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23335:23:42"},"referencedDeclaration":16320,"src":"23335:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13350,"mutability":"mutable","name":"changeRequests","nameLocation":"23413:14:42","nodeType":"VariableDeclaration","scope":13384,"src":"23381:46:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":13348,"nodeType":"UserDefinedTypeName","pathNode":{"id":13347,"name":"StakingChangeRequest","nameLocations":["23381:20:42"],"nodeType":"IdentifierPath","referencedDeclaration":16244,"src":"23381:20:42"},"referencedDeclaration":16244,"src":"23381:20:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$16244_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":13349,"nodeType":"ArrayTypeName","src":"23381:22:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$16244_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"23325:108:42"},"returnParameters":{"id":13352,"nodeType":"ParameterList","parameters":[],"src":"23443:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13520,"nodeType":"FunctionDefinition","src":"23786:1269:42","nodes":[],"body":{"id":13519,"nodeType":"Block","src":"23884:1171:42","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13393,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"23898:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":13394,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"23921:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23926:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"23921:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23934:23:42","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"23921:36:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23898:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13402,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24029:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24051:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24056:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24051:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24064:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24051:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24029:59:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13409,"nodeType":"IfStatement","src":"24025:96:42","trueBody":{"id":13408,"nodeType":"Block","src":"24090:31:42","statements":[{"functionReturnParameters":13392,"id":13407,"nodeType":"Return","src":"24104:7:42"}]}},"id":13410,"nodeType":"IfStatement","src":"23894:227:42","trueBody":{"id":13401,"nodeType":"Block","src":"23959:60:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13398,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"23980:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23980:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13400,"nodeType":"RevertStatement","src":"23973:35:42"}]}},{"assignments":[13412],"declarations":[{"constant":false,"id":13412,"mutability":"mutable","name":"start","nameLocation":"24138:5:42","nodeType":"VariableDeclaration","scope":13519,"src":"24131:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13411,"name":"uint64","nodeType":"ElementaryTypeName","src":"24131:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13416,"initialValue":{"expression":{"expression":{"id":13413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24146:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24151:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24146:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24159:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24146:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24131:52:42"},{"body":{"id":13507,"nodeType":"Block","src":"24245:731:42","statements":[{"assignments":[13426],"declarations":[{"constant":false,"id":13426,"mutability":"mutable","name":"change","nameLocation":"24281:6:42","nodeType":"VariableDeclaration","scope":13507,"src":"24259:28:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13425,"nodeType":"UserDefinedTypeName","pathNode":{"id":13424,"name":"StakingChange","nameLocations":["24259:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"24259:13:42"},"referencedDeclaration":16238,"src":"24259:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":13432,"initialValue":{"arguments":[{"id":13430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24313:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13427,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24290:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24295:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24290:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24303:9:42","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":13703,"src":"24290:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$16238_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24290:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24259:56:42"},{"assignments":[13434],"declarations":[{"constant":false,"id":13434,"mutability":"mutable","name":"validator","nameLocation":"24337:9:42","nodeType":"VariableDeclaration","scope":13507,"src":"24329:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13433,"name":"address","nodeType":"ElementaryTypeName","src":"24329:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13437,"initialValue":{"expression":{"id":13435,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24349:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24356:9:42","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":16237,"src":"24349:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24329:36:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13438,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24384:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24391:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24384:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13440,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24397:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24414:11:42","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"24397:28:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24384:41:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13493,"nodeType":"Block","src":"24529:336:42","statements":[{"assignments":[13457],"declarations":[{"constant":false,"id":13457,"mutability":"mutable","name":"amount","nameLocation":"24555:6:42","nodeType":"VariableDeclaration","scope":13493,"src":"24547:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13466,"initialValue":{"arguments":[{"expression":{"id":13460,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24575:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24582:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24575:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":13463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24592:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24592:7:42","typeDescriptions":{}}}],"id":13464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24591:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24564:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24568:6:42","memberName":"decode","nodeType":"MemberAccess","src":"24564:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24564:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24547:54:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13467,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24624:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24631:2:42","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":16233,"src":"24624:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13469,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"24637:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24654:8:42","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"24637:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"src":"24624:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13491,"nodeType":"Block","src":"24761:90:42","statements":[{"expression":{"arguments":[{"id":13487,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24814:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13488,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24825:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24783:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24788:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24783:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24799:14:42","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":12146,"src":"24783:30:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24783:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13490,"nodeType":"ExpressionStatement","src":"24783:49:42"}]},"id":13492,"nodeType":"IfStatement","src":"24620:231:42","trueBody":{"id":13481,"nodeType":"Block","src":"24664:91:42","statements":[{"expression":{"arguments":[{"id":13477,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24718:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"24729:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24686:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24691:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24686:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24702:15:42","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":12212,"src":"24686:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24686:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13480,"nodeType":"ExpressionStatement","src":"24686:50:42"}]}}]},"id":13494,"nodeType":"IfStatement","src":"24380:485:42","trueBody":{"id":13455,"nodeType":"Block","src":"24427:96:42","statements":[{"expression":{"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":13443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24445:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24450:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16316,"src":"24445:15:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":13448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24461:10:42","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"24445:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":13449,"indexExpression":{"id":13446,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"24472:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24445:37:42","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"id":13450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24483:8:42","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":16291,"src":"24445:46:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13451,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13426,"src":"24494:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":13452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24501:7:42","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":16235,"src":"24494:14:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24445:63:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13454,"nodeType":"ExpressionStatement","src":"24445:63:42"}]}},{"expression":{"arguments":[{"id":13500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24904:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":13495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24879:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24884:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24879:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24892:11:42","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":13718,"src":"24879:24:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$16257_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24879:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13502,"nodeType":"ExpressionStatement","src":"24879:27:42"},{"id":13506,"nodeType":"UncheckedBlock","src":"24920:46:42","statements":[{"expression":{"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24948:3:42","subExpression":{"id":13503,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24950:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13505,"nodeType":"ExpressionStatement","src":"24948:3:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"24217:1:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"24222:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24217:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13508,"initializationExpression":{"assignments":[13418],"declarations":[{"constant":false,"id":13418,"mutability":"mutable","name":"i","nameLocation":"24206:1:42","nodeType":"VariableDeclaration","scope":13508,"src":"24199:8:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13417,"name":"uint64","nodeType":"ElementaryTypeName","src":"24199:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13420,"initialValue":{"id":13419,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"24210:5:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24199:16:42"},"nodeType":"ForStatement","src":"24194:782:42"},{"expression":{"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":13509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13388,"src":"24985:4:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":13512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24990:7:42","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"24985:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":13513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24998:24:42","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"24985:37:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13514,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"25025:19:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25047:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25025:23:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24985:63:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13518,"nodeType":"ExpressionStatement","src":"24985:63:42"}]},"documentation":{"id":13385,"nodeType":"StructuredDocumentation","src":"23721:60:42","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23795:13:42","parameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13388,"mutability":"mutable","name":"self","nameLocation":"23841:4:42","nodeType":"VariableDeclaration","scope":13520,"src":"23809:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":13387,"nodeType":"UserDefinedTypeName","pathNode":{"id":13386,"name":"ParentValidatorsTracker","nameLocations":["23809:23:42"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"23809:23:42"},"referencedDeclaration":16320,"src":"23809:23:42","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$16320_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":13390,"mutability":"mutable","name":"configurationNumber","nameLocation":"23854:19:42","nodeType":"VariableDeclaration","scope":13520,"src":"23847:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13389,"name":"uint64","nodeType":"ElementaryTypeName","src":"23847:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23808:66:42"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[],"src":"23884:0:42"},"scope":13521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":13300,"nodeType":"StructuredDocumentation","src":"22532:155:42","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[13521],"name":"LibValidatorTracking","nameLocation":"22695:20:42","scope":13522,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":42} \ No newline at end of file diff --git a/contracts/out/LibStakingChangeLog.sol/LibStakingChangeLog.json b/contracts/out/LibStakingChangeLog.sol/LibStakingChangeLog.json deleted file mode 100644 index 6d304f6294..0000000000 --- a/contracts/out/LibStakingChangeLog.sol/LibStakingChangeLog.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"NewStakingChangeRequest","inputs":[{"name":"op","type":"uint8","indexed":false,"internalType":"enum StakingOperation"},{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"configurationNumber","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220fbf955aa4f9a43866fef2f1967647ef5c42e4609dc9c4c88dc8bea5f99fab39864736f6c63430008130033","sourceMap":"205:3137:43:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220fbf955aa4f9a43866fef2f1967647ef5c42e4609dc9c4c88dc8bea5f99fab39864736f6c63430008130033","sourceMap":"205:3137:43:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"name\":\"NewStakingChangeRequest\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingChangeLog`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStakingChangeLog.sol\":\"LibStakingChangeLog\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum StakingOperation","name":"op","type":"uint8","indexed":false},{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint64","name":"configurationNumber","type":"uint64","indexed":false}],"type":"event","name":"NewStakingChangeRequest","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStakingChangeLog.sol":"LibStakingChangeLog"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStakingChangeLog.sol","id":13720,"exportedSymbols":{"LibStakingChangeLog":[13719],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingOperation":[16230]},"nodeType":"SourceUnit","src":"46:3297:43","nodes":[{"id":13523,"nodeType":"PragmaDirective","src":"46:23:43","nodes":[],"literals":["solidity","0.8",".19"]},{"id":13527,"nodeType":"ImportDirective","src":"71:88:43","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13720,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":13524,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"79:16:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13525,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"97:13:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13526,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"112:16:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13719,"nodeType":"ContractDefinition","src":"205:3137:43","nodes":[{"id":13539,"nodeType":"EventDefinition","src":"239:113:43","nodes":[],"anonymous":false,"eventSelector":"1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f","name":"NewStakingChangeRequest","nameLocation":"245:23:43","parameters":{"id":13538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13531,"indexed":false,"mutability":"mutable","name":"op","nameLocation":"286:2:43","nodeType":"VariableDeclaration","scope":13539,"src":"269:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"typeName":{"id":13530,"nodeType":"UserDefinedTypeName","pathNode":{"id":13529,"name":"StakingOperation","nameLocations":["269:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16230,"src":"269:16:43"},"referencedDeclaration":16230,"src":"269:16:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":13533,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"298:9:43","nodeType":"VariableDeclaration","scope":13539,"src":"290:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13532,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13535,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"315:7:43","nodeType":"VariableDeclaration","scope":13539,"src":"309:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13534,"name":"bytes","nodeType":"ElementaryTypeName","src":"309:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13537,"indexed":false,"mutability":"mutable","name":"configurationNumber","nameLocation":"331:19:43","nodeType":"VariableDeclaration","scope":13539,"src":"324:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13536,"name":"uint64","nodeType":"ElementaryTypeName","src":"324:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"268:83:43"}},{"id":13569,"nodeType":"FunctionDefinition","src":"415:539:43","nodes":[],"body":{"id":13568,"nodeType":"Block","src":"527:427:43","nodes":[],"statements":[{"assignments":[13551],"declarations":[{"constant":false,"id":13551,"mutability":"mutable","name":"configurationNumber","nameLocation":"544:19:43","nodeType":"VariableDeclaration","scope":13568,"src":"537:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13550,"name":"uint64","nodeType":"ElementaryTypeName","src":"537:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13559,"initialValue":{"arguments":[{"id":13553,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13543,"src":"602:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":13554,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"634:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13555,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"661:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"678:11:43","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"661:28:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13557,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"712:8:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":13552,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13685,"src":"566:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["593:7:43","623:9:43","657:2:43","703:7:43"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"566:165:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"537:194:43"},{"eventCall":{"arguments":[{"expression":{"id":13561,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"789:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"806:11:43","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":16229,"src":"789:28:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13563,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"842:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13564,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"874:8:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":13565,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13551,"src":"917:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13560,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13539,"src":"747:23:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$16230_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":13566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["785:2:43","831:9:43","865:7:43","896:19:43"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"747:200:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13567,"nodeType":"EmitStatement","src":"742:205:43"}]},"documentation":{"id":13540,"nodeType":"StructuredDocumentation","src":"358:52:43","text":"@notice Validator request to update its metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"metadataRequest","nameLocation":"424:15:43","parameters":{"id":13548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13543,"mutability":"mutable","name":"changes","nameLocation":"465:7:43","nodeType":"VariableDeclaration","scope":13569,"src":"440:32:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13542,"nodeType":"UserDefinedTypeName","pathNode":{"id":13541,"name":"StakingChangeLog","nameLocations":["440:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"440:16:43"},"referencedDeclaration":16257,"src":"440:16:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13545,"mutability":"mutable","name":"validator","nameLocation":"482:9:43","nodeType":"VariableDeclaration","scope":13569,"src":"474:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13544,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13547,"mutability":"mutable","name":"metadata","nameLocation":"508:8:43","nodeType":"VariableDeclaration","scope":13569,"src":"493:23:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13546,"name":"bytes","nodeType":"ElementaryTypeName","src":"493:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"439:78:43"},"returnParameters":{"id":13549,"nodeType":"ParameterList","parameters":[],"src":"527:0:43"},"scope":13719,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13606,"nodeType":"FunctionDefinition","src":"1174:574:43","nodes":[],"body":{"id":13605,"nodeType":"Block","src":"1277:471:43","nodes":[],"statements":[{"assignments":[13581],"declarations":[{"constant":false,"id":13581,"mutability":"mutable","name":"payload","nameLocation":"1300:7:43","nodeType":"VariableDeclaration","scope":13605,"src":"1287:20:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13580,"name":"bytes","nodeType":"ElementaryTypeName","src":"1287:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13586,"initialValue":{"arguments":[{"id":13584,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13577,"src":"1321:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13582,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1310:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1314:6:43","memberName":"encode","nodeType":"MemberAccess","src":"1310:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1310:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1287:41:43"},{"assignments":[13588],"declarations":[{"constant":false,"id":13588,"mutability":"mutable","name":"configurationNumber","nameLocation":"1346:19:43","nodeType":"VariableDeclaration","scope":13605,"src":"1339:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13587,"name":"uint64","nodeType":"ElementaryTypeName","src":"1339:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13596,"initialValue":{"arguments":[{"id":13590,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13573,"src":"1404:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":13591,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13575,"src":"1436:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13592,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"1463:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1480:8:43","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"1463:25:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13594,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13581,"src":"1511:7:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13589,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13685,"src":"1368:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1395:7:43","1425:9:43","1459:2:43","1502:7:43"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"1368:161:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"1339:190:43"},{"eventCall":{"arguments":[{"expression":{"id":13598,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"1587:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1604:8:43","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":16228,"src":"1587:25:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13600,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13575,"src":"1637:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13601,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13581,"src":"1669:7:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13602,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13588,"src":"1711:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13597,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13539,"src":"1545:23:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$16230_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":13603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1583:2:43","1626:9:43","1660:7:43","1690:19:43"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"1545:196:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13604,"nodeType":"EmitStatement","src":"1540:201:43"}]},"documentation":{"id":13570,"nodeType":"StructuredDocumentation","src":"960:209:43","text":"@notice Perform upsert operation to the withdraw changes, return total value to withdraw\n @notice of the validator.\n Each insert will increment the configuration number by 1, update will not."},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawRequest","nameLocation":"1183:15:43","parameters":{"id":13578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13573,"mutability":"mutable","name":"changes","nameLocation":"1224:7:43","nodeType":"VariableDeclaration","scope":13606,"src":"1199:32:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13572,"nodeType":"UserDefinedTypeName","pathNode":{"id":13571,"name":"StakingChangeLog","nameLocations":["1199:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"1199:16:43"},"referencedDeclaration":16257,"src":"1199:16:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13575,"mutability":"mutable","name":"validator","nameLocation":"1241:9:43","nodeType":"VariableDeclaration","scope":13606,"src":"1233:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13574,"name":"address","nodeType":"ElementaryTypeName","src":"1233:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13577,"mutability":"mutable","name":"amount","nameLocation":"1260:6:43","nodeType":"VariableDeclaration","scope":13606,"src":"1252:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13576,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1198:69:43"},"returnParameters":{"id":13579,"nodeType":"ParameterList","parameters":[],"src":"1277:0:43"},"scope":13719,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13643,"nodeType":"FunctionDefinition","src":"1818:571:43","nodes":[],"body":{"id":13642,"nodeType":"Block","src":"1920:469:43","nodes":[],"statements":[{"assignments":[13618],"declarations":[{"constant":false,"id":13618,"mutability":"mutable","name":"payload","nameLocation":"1943:7:43","nodeType":"VariableDeclaration","scope":13642,"src":"1930:20:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13617,"name":"bytes","nodeType":"ElementaryTypeName","src":"1930:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13623,"initialValue":{"arguments":[{"id":13621,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13614,"src":"1964:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1953:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1957:6:43","memberName":"encode","nodeType":"MemberAccess","src":"1953:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1930:41:43"},{"assignments":[13625],"declarations":[{"constant":false,"id":13625,"mutability":"mutable","name":"configurationNumber","nameLocation":"1989:19:43","nodeType":"VariableDeclaration","scope":13642,"src":"1982:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13624,"name":"uint64","nodeType":"ElementaryTypeName","src":"1982:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13633,"initialValue":{"arguments":[{"id":13627,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13610,"src":"2047:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":13628,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13612,"src":"2079:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13629,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"2106:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2123:7:43","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":16227,"src":"2106:24:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13631,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13618,"src":"2153:7:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13626,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13685,"src":"2011:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$16257_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$16230_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":13632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2038:7:43","2068:9:43","2102:2:43","2144:7:43"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2011:160:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"1982:189:43"},{"eventCall":{"arguments":[{"expression":{"id":13635,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"2229:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$16230_$","typeString":"type(enum StakingOperation)"}},"id":13636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2246:7:43","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":16227,"src":"2229:24:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13637,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13612,"src":"2278:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13638,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13618,"src":"2310:7:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13639,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13625,"src":"2352:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13634,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13539,"src":"2187:23:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$16230_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":13640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2225:2:43","2267:9:43","2301:7:43","2331:19:43"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2187:195:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13641,"nodeType":"EmitStatement","src":"2182:200:43"}]},"documentation":{"id":13607,"nodeType":"StructuredDocumentation","src":"1754:59:43","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"depositRequest","nameLocation":"1827:14:43","parameters":{"id":13615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13610,"mutability":"mutable","name":"changes","nameLocation":"1867:7:43","nodeType":"VariableDeclaration","scope":13643,"src":"1842:32:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13609,"nodeType":"UserDefinedTypeName","pathNode":{"id":13608,"name":"StakingChangeLog","nameLocations":["1842:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"1842:16:43"},"referencedDeclaration":16257,"src":"1842:16:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13612,"mutability":"mutable","name":"validator","nameLocation":"1884:9:43","nodeType":"VariableDeclaration","scope":13643,"src":"1876:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13611,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13614,"mutability":"mutable","name":"amount","nameLocation":"1903:6:43","nodeType":"VariableDeclaration","scope":13643,"src":"1895:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13613,"name":"uint256","nodeType":"ElementaryTypeName","src":"1895:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1841:69:43"},"returnParameters":{"id":13616,"nodeType":"ParameterList","parameters":[],"src":"1920:0:43"},"scope":13719,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13685,"nodeType":"FunctionDefinition","src":"2459:453:43","nodes":[],"body":{"id":13684,"nodeType":"Block","src":"2661:251:43","nodes":[],"statements":[{"expression":{"id":13662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13659,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"2671:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13660,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"2693:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2701:23:43","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"2693:31:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2671:53:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13663,"nodeType":"ExpressionStatement","src":"2671:53:43"},{"expression":{"id":13674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13664,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"2735:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2743:7:43","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16256,"src":"2735:15:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$16238_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":13668,"indexExpression":{"id":13666,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"2751:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2735:36:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage","typeString":"struct StakingChange storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13670,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13652,"src":"2793:2:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},{"id":13671,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13649,"src":"2808:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13672,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"2828:7:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13669,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16238,"src":"2774:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingChange_$16238_storage_ptr_$","typeString":"type(struct StakingChange storage pointer)"}},"id":13673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2789:2:43","2797:9:43","2819:7:43"],"names":["op","validator","payload"],"nodeType":"FunctionCall","src":"2774:63:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_memory_ptr","typeString":"struct StakingChange memory"}},"src":"2735:102:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage","typeString":"struct StakingChange storage ref"}},"id":13675,"nodeType":"ExpressionStatement","src":"2735:102:43"},{"expression":{"id":13682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13676,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"2848:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2856:23:43","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"2848:31:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13679,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"2882:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2904:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2882:23:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2848:57:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13683,"nodeType":"ExpressionStatement","src":"2848:57:43"}]},"documentation":{"id":13644,"nodeType":"StructuredDocumentation","src":"2395:59:43","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"recordChange","nameLocation":"2468:12:43","parameters":{"id":13655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13647,"mutability":"mutable","name":"changes","nameLocation":"2515:7:43","nodeType":"VariableDeclaration","scope":13685,"src":"2490:32:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13646,"nodeType":"UserDefinedTypeName","pathNode":{"id":13645,"name":"StakingChangeLog","nameLocations":["2490:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"2490:16:43"},"referencedDeclaration":16257,"src":"2490:16:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13649,"mutability":"mutable","name":"validator","nameLocation":"2540:9:43","nodeType":"VariableDeclaration","scope":13685,"src":"2532:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13648,"name":"address","nodeType":"ElementaryTypeName","src":"2532:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13652,"mutability":"mutable","name":"op","nameLocation":"2576:2:43","nodeType":"VariableDeclaration","scope":13685,"src":"2559:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"typeName":{"id":13651,"nodeType":"UserDefinedTypeName","pathNode":{"id":13650,"name":"StakingOperation","nameLocations":["2559:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16230,"src":"2559:16:43"},"referencedDeclaration":16230,"src":"2559:16:43","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":13654,"mutability":"mutable","name":"payload","nameLocation":"2601:7:43","nodeType":"VariableDeclaration","scope":13685,"src":"2588:20:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13653,"name":"bytes","nodeType":"ElementaryTypeName","src":"2588:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2480:134:43"},"returnParameters":{"id":13658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13657,"mutability":"mutable","name":"configurationNumber","nameLocation":"2640:19:43","nodeType":"VariableDeclaration","scope":13685,"src":"2633:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13656,"name":"uint64","nodeType":"ElementaryTypeName","src":"2633:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2632:28:43"},"scope":13719,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13703,"nodeType":"FunctionDefinition","src":"2973:209:43","nodes":[],"body":{"id":13702,"nodeType":"Block","src":"3122:60:43","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":13697,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13689,"src":"3139:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3147:7:43","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16256,"src":"3139:15:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$16238_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":13700,"indexExpression":{"id":13699,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13691,"src":"3155:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3139:36:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage","typeString":"struct StakingChange storage ref"}},"functionReturnParameters":13696,"id":13701,"nodeType":"Return","src":"3132:43:43"}]},"documentation":{"id":13686,"nodeType":"StructuredDocumentation","src":"2918:50:43","text":"@notice Get the change at configuration number"},"implemented":true,"kind":"function","modifiers":[],"name":"getChange","nameLocation":"2982:9:43","parameters":{"id":13692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13689,"mutability":"mutable","name":"changes","nameLocation":"3026:7:43","nodeType":"VariableDeclaration","scope":13703,"src":"3001:32:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13688,"nodeType":"UserDefinedTypeName","pathNode":{"id":13687,"name":"StakingChangeLog","nameLocations":["3001:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"3001:16:43"},"referencedDeclaration":16257,"src":"3001:16:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13691,"mutability":"mutable","name":"configurationNumber","nameLocation":"3050:19:43","nodeType":"VariableDeclaration","scope":13703,"src":"3043:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13690,"name":"uint64","nodeType":"ElementaryTypeName","src":"3043:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2991:84:43"},"returnParameters":{"id":13696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13703,"src":"3099:21:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":13694,"nodeType":"UserDefinedTypeName","pathNode":{"id":13693,"name":"StakingChange","nameLocations":["3099:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"3099:13:43"},"referencedDeclaration":16238,"src":"3099:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"src":"3098:23:43"},"scope":13719,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13718,"nodeType":"FunctionDefinition","src":"3188:152:43","nodes":[],"body":{"id":13717,"nodeType":"Block","src":"3280:60:43","nodes":[],"statements":[{"expression":{"id":13715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3290:43:43","subExpression":{"baseExpression":{"expression":{"id":13711,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13706,"src":"3297:7:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":13712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3305:7:43","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":16256,"src":"3297:15:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$16238_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":13714,"indexExpression":{"id":13713,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13708,"src":"3313:19:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3297:36:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage","typeString":"struct StakingChange storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13716,"nodeType":"ExpressionStatement","src":"3290:43:43"}]},"implemented":true,"kind":"function","modifiers":[],"name":"purgeChange","nameLocation":"3197:11:43","parameters":{"id":13709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13706,"mutability":"mutable","name":"changes","nameLocation":"3234:7:43","nodeType":"VariableDeclaration","scope":13718,"src":"3209:32:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13705,"nodeType":"UserDefinedTypeName","pathNode":{"id":13704,"name":"StakingChangeLog","nameLocations":["3209:16:43"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"3209:16:43"},"referencedDeclaration":16257,"src":"3209:16:43","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13708,"mutability":"mutable","name":"configurationNumber","nameLocation":"3250:19:43","nodeType":"VariableDeclaration","scope":13718,"src":"3243:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13707,"name":"uint64","nodeType":"ElementaryTypeName","src":"3243:6:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3208:62:43"},"returnParameters":{"id":13710,"nodeType":"ParameterList","parameters":[],"src":"3280:0:43"},"scope":13719,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingChangeLog","contractDependencies":[],"contractKind":"library","documentation":{"id":13528,"nodeType":"StructuredDocumentation","src":"161:44:43","text":"The util library for `StakingChangeLog`"},"fullyImplemented":true,"linearizedBaseContracts":[13719],"name":"LibStakingChangeLog","nameLocation":"213:19:43","scope":13720,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":43} \ No newline at end of file diff --git a/contracts/out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json b/contracts/out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json deleted file mode 100644 index 327c005673..0000000000 --- a/contracts/out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212208041492deb1da4d6a7f4961782310240da070480d890bd871bc91d7cd9b7a31664736f6c63430008130033","sourceMap":"3582:194:44:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212208041492deb1da4d6a7f4961782310240da070480d890bd871bc91d7cd9b7a31664736f6c63430008130033","sourceMap":"3582:194:44:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"LibSubnetActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"LibSubnetActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":13894,"exportedSymbols":{"Address":[1625],"BottomUpCheckpoint":[16133],"ConsensusType":[6033],"EnumerableSet":[4602],"FvmAddress":[16179],"LibSubnetActorStorage":[13850],"NotGateway":[6151],"StakingChangeLog":[16257],"StakingReleaseQueue":[16284],"SubnetActorModifiers":[13893],"SubnetActorStorage":[13839],"SubnetAlreadyKilled":[6177],"SubnetID":[16209],"Validator":[16334],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:4202:44","nodes":[{"id":13721,"nodeType":"PragmaDirective","src":"46:23:44","nodes":[],"literals":["solidity","0.8",".19"]},{"id":13723,"nodeType":"ImportDirective","src":"71:57:44","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":6034,"symbolAliases":[{"foreign":{"id":13722,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"79:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13726,"nodeType":"ImportDirective","src":"129:72:44","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":13724,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"137:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13725,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6177,"src":"149:19:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13728,"nodeType":"ImportDirective","src":"202:53:44","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":13727,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"210:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13730,"nodeType":"ImportDirective","src":"256:61:44","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":13729,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"264:18:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13736,"nodeType":"ImportDirective","src":"318:111:44","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":13731,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"326:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13732,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"336:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13733,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"350:16:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13734,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"368:19:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13735,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"389:9:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13738,"nodeType":"ImportDirective","src":"430:65:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":13737,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"438:7:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13740,"nodeType":"ImportDirective","src":"496:85:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":13739,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"504:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13839,"nodeType":"StructDefinition","src":"583:2997:44","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":13746,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"731:20:44","nodeType":"VariableDeclaration","scope":13839,"src":"693:58:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"typeName":{"id":13745,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13742,"name":"uint64","nodeType":"ElementaryTypeName","src":"701:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"693:37:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13744,"nodeType":"UserDefinedTypeName","pathNode":{"id":13743,"name":"BottomUpCheckpoint","nameLocations":["711:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"711:18:44"},"referencedDeclaration":16133,"src":"711:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":13751,"mutability":"mutable","name":"genesisValidators","nameLocation":"830:17:44","nodeType":"VariableDeclaration","scope":13839,"src":"818:29:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":13749,"nodeType":"UserDefinedTypeName","pathNode":{"id":13748,"name":"Validator","nameLocations":["818:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"818:9:44"},"referencedDeclaration":16334,"src":"818:9:44","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":13750,"nodeType":"ArrayTypeName","src":"818:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":13754,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"982:17:44","nodeType":"VariableDeclaration","scope":13839,"src":"974:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13753,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13759,"mutability":"mutable","name":"genesisBalance","nameLocation":"1107:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"1079:42:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13758,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13756,"name":"address","nodeType":"ElementaryTypeName","src":"1087:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1079:27:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1098:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":13763,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1179:18:44","nodeType":"VariableDeclaration","scope":13839,"src":"1169:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13761,"name":"address","nodeType":"ElementaryTypeName","src":"1169:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13762,"nodeType":"ArrayTypeName","src":"1169:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13766,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1281:28:44","nodeType":"VariableDeclaration","scope":13839,"src":"1274:35:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13765,"name":"uint64","nodeType":"ElementaryTypeName","src":"1274:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13769,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1369:23:44","nodeType":"VariableDeclaration","scope":13839,"src":"1361:31:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13768,"name":"uint256","nodeType":"ElementaryTypeName","src":"1361:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1459:19:44","nodeType":"VariableDeclaration","scope":13839,"src":"1452:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13771,"name":"uint64","nodeType":"ElementaryTypeName","src":"1452:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13775,"mutability":"mutable","name":"minValidators","nameLocation":"1595:13:44","nodeType":"VariableDeclaration","scope":13839,"src":"1588:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13774,"name":"uint64","nodeType":"ElementaryTypeName","src":"1588:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13777,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1667:17:44","nodeType":"VariableDeclaration","scope":13839,"src":"1659:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1659:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13780,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1756:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"1748:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13779,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13783,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1862:18:44","nodeType":"VariableDeclaration","scope":13839,"src":"1856:24:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13782,"name":"uint8","nodeType":"ElementaryTypeName","src":"1856:5:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13786,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1969:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"1961:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1961:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13790,"mutability":"mutable","name":"parentId","nameLocation":"2038:8:44","nodeType":"VariableDeclaration","scope":13839,"src":"2029:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":13789,"nodeType":"UserDefinedTypeName","pathNode":{"id":13788,"name":"SubnetID","nameLocations":["2029:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2029:8:44"},"referencedDeclaration":16209,"src":"2029:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":13794,"mutability":"mutable","name":"consensus","nameLocation":"2091:9:44","nodeType":"VariableDeclaration","scope":13839,"src":"2077:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"},"typeName":{"id":13793,"nodeType":"UserDefinedTypeName","pathNode":{"id":13792,"name":"ConsensusType","nameLocations":["2077:13:44"],"nodeType":"IdentifierPath","referencedDeclaration":6033,"src":"2077:13:44"},"referencedDeclaration":6033,"src":"2077:13:44","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":13797,"mutability":"mutable","name":"bootstrapped","nameLocation":"2203:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2198:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13796,"name":"bool","nodeType":"ElementaryTypeName","src":"2198:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13800,"mutability":"mutable","name":"permissioned","nameLocation":"2292:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2287:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13799,"name":"bool","nodeType":"ElementaryTypeName","src":"2287:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13803,"mutability":"mutable","name":"killed","nameLocation":"2385:6:44","nodeType":"VariableDeclaration","scope":13839,"src":"2380:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13802,"name":"bool","nodeType":"ElementaryTypeName","src":"2380:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13807,"mutability":"mutable","name":"validatorSet","nameLocation":"2496:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2483:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":13806,"nodeType":"UserDefinedTypeName","pathNode":{"id":13805,"name":"ValidatorSet","nameLocations":["2483:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"2483:12:44"},"referencedDeclaration":16313,"src":"2483:12:44","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":13811,"mutability":"mutable","name":"changeSet","nameLocation":"2645:9:44","nodeType":"VariableDeclaration","scope":13839,"src":"2628:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13810,"nodeType":"UserDefinedTypeName","pathNode":{"id":13809,"name":"StakingChangeLog","nameLocations":["2628:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"2628:16:44"},"referencedDeclaration":16257,"src":"2628:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13815,"mutability":"mutable","name":"releaseQueue","nameLocation":"2791:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2771:32:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":13814,"nodeType":"UserDefinedTypeName","pathNode":{"id":13813,"name":"StakingReleaseQueue","nameLocations":["2771:19:44"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2771:19:44"},"referencedDeclaration":16284,"src":"2771:19:44","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"powerScale","nameLocation":"3089:10:44","nodeType":"VariableDeclaration","scope":13839,"src":"3084:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":13817,"name":"int8","nodeType":"ElementaryTypeName","src":"3084:4:44","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":13823,"mutability":"mutable","name":"relayerRewards","nameLocation":"3166:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"3138:42:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13822,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13820,"name":"address","nodeType":"ElementaryTypeName","src":"3146:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3138:27:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13821,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":13829,"mutability":"mutable","name":"rewardedRelayers","nameLocation":"3311:16:44","nodeType":"VariableDeclaration","scope":13839,"src":"3267:60:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"typeName":{"id":13828,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13825,"name":"uint64","nodeType":"ElementaryTypeName","src":"3275:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"3267:43:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13827,"nodeType":"UserDefinedTypeName","pathNode":{"id":13826,"name":"EnumerableSet.AddressSet","nameLocations":["3285:13:44","3299:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"3285:24:44"},"referencedDeclaration":4315,"src":"3285:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":13834,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3447:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"3420:41:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":13833,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13831,"name":"address","nodeType":"ElementaryTypeName","src":"3428:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3420:26:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13832,"name":"string","nodeType":"ElementaryTypeName","src":"3439:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":13838,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3562:15:44","nodeType":"VariableDeclaration","scope":13839,"src":"3537:40:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13837,"nodeType":"UserDefinedTypeName","pathNode":{"id":13836,"name":"EnumerableSet.AddressSet","nameLocations":["3537:13:44","3551:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"3537:24:44"},"referencedDeclaration":4315,"src":"3537:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"590:18:44","scope":13894,"visibility":"public"},{"id":13850,"nodeType":"ContractDefinition","src":"3582:194:44","nodes":[{"id":13849,"nodeType":"FunctionDefinition","src":"3618:156:44","nodes":[],"body":{"id":13848,"nodeType":"Block","src":"3694:80:44","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3713:36:44","statements":[{"nodeType":"YulAssignment","src":"3727:12:44","value":{"kind":"number","nodeType":"YulLiteral","src":"3738:1:44","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3727:7:44"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13843,"isOffset":false,"isSlot":true,"src":"3727:7:44","suffix":"slot","valueSize":1}],"id":13845,"nodeType":"InlineAssembly","src":"3704:45:44"},{"expression":{"id":13846,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"3765:2:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":13844,"id":13847,"nodeType":"Return","src":"3758:9:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3627:10:44","parameters":{"id":13840,"nodeType":"ParameterList","parameters":[],"src":"3637:2:44"},"returnParameters":{"id":13844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13843,"mutability":"mutable","name":"ds","nameLocation":"3690:2:44","nodeType":"VariableDeclaration","scope":13849,"src":"3663:29:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13842,"nodeType":"UserDefinedTypeName","pathNode":{"id":13841,"name":"SubnetActorStorage","nameLocations":["3663:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"3663:18:44"},"referencedDeclaration":13839,"src":"3663:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3662:31:44"},"scope":13850,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13850],"name":"LibSubnetActorStorage","nameLocation":"3590:21:44","scope":13894,"usedErrors":[]},{"id":13893,"nodeType":"ContractDefinition","src":"3778:469:44","nodes":[{"id":13853,"nodeType":"VariableDeclaration","src":"3814:29:44","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3842:1:44","scope":13893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":13852,"nodeType":"UserDefinedTypeName","pathNode":{"id":13851,"name":"SubnetActorStorage","nameLocations":["3814:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"3814:18:44"},"referencedDeclaration":13839,"src":"3814:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":13867,"nodeType":"FunctionDefinition","src":"3850:133:44","nodes":[],"body":{"id":13866,"nodeType":"Block","src":"3887:96:44","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13856,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3901:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3905:6:44","memberName":"sender","nodeType":"MemberAccess","src":"3901:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13858,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3915:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":13859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3917:14:44","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"3915:16:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3901:30:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13865,"nodeType":"IfStatement","src":"3897:80:44","trueBody":{"id":13864,"nodeType":"Block","src":"3933:44:44","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13861,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"3954:10:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13863,"nodeType":"RevertStatement","src":"3947:19:44"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3859:12:44","parameters":{"id":13854,"nodeType":"ParameterList","parameters":[],"src":"3871:2:44"},"returnParameters":{"id":13855,"nodeType":"ParameterList","parameters":[],"src":"3887:0:44"},"scope":13893,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":13878,"nodeType":"FunctionDefinition","src":"3989:118:44","nodes":[],"body":{"id":13877,"nodeType":"Block","src":"4024:83:44","nodes":[],"statements":[{"condition":{"expression":{"id":13870,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"4038:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":13871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4040:6:44","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":13803,"src":"4038:8:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13876,"nodeType":"IfStatement","src":"4034:67:44","trueBody":{"id":13875,"nodeType":"Block","src":"4048:53:44","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13872,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6177,"src":"4069:19:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13874,"nodeType":"RevertStatement","src":"4062:28:44"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"3998:10:44","parameters":{"id":13868,"nodeType":"ParameterList","parameters":[],"src":"4008:2:44"},"returnParameters":{"id":13869,"nodeType":"ParameterList","parameters":[],"src":"4024:0:44"},"scope":13893,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":13885,"nodeType":"ModifierDefinition","src":"4113:65:44","nodes":[],"body":{"id":13884,"nodeType":"Block","src":"4136:42:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13880,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13867,"src":"4146:12:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":13881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13882,"nodeType":"ExpressionStatement","src":"4146:14:44"},{"id":13883,"nodeType":"PlaceholderStatement","src":"4170:1:44"}]},"name":"onlyGateway","nameLocation":"4122:11:44","parameters":{"id":13879,"nodeType":"ParameterList","parameters":[],"src":"4133:2:44"},"virtual":false,"visibility":"internal"},{"id":13892,"nodeType":"ModifierDefinition","src":"4184:61:44","nodes":[],"body":{"id":13891,"nodeType":"Block","src":"4205:40:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13887,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13878,"src":"4215:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":13888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4215:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13889,"nodeType":"ExpressionStatement","src":"4215:12:44"},{"id":13890,"nodeType":"PlaceholderStatement","src":"4237:1:44"}]},"name":"notKilled","nameLocation":"4193:9:44","parameters":{"id":13886,"nodeType":"ParameterList","parameters":[],"src":"4202:2:44"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[13893],"name":"SubnetActorModifiers","nameLocation":"3787:20:44","scope":13894,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":44} \ No newline at end of file diff --git a/contracts/out/LibSubnetActorStorage.sol/SubnetActorModifiers.json b/contracts/out/LibSubnetActorStorage.sol/SubnetActorModifiers.json deleted file mode 100644 index 26332aed52..0000000000 --- a/contracts/out/LibSubnetActorStorage.sol/SubnetActorModifiers.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220b1e71a27f1b61c1e7383834703bf9a22388f488493a25315f3502c13c50e7aaf64736f6c63430008130033","sourceMap":"3778:469:44:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220b1e71a27f1b61c1e7383834703bf9a22388f488493a25315f3502c13c50e7aaf64736f6c63430008130033","sourceMap":"3778:469:44:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"SubnetActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"SubnetActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":13894,"exportedSymbols":{"Address":[1625],"BottomUpCheckpoint":[16133],"ConsensusType":[6033],"EnumerableSet":[4602],"FvmAddress":[16179],"LibSubnetActorStorage":[13850],"NotGateway":[6151],"StakingChangeLog":[16257],"StakingReleaseQueue":[16284],"SubnetActorModifiers":[13893],"SubnetActorStorage":[13839],"SubnetAlreadyKilled":[6177],"SubnetID":[16209],"Validator":[16334],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:4202:44","nodes":[{"id":13721,"nodeType":"PragmaDirective","src":"46:23:44","nodes":[],"literals":["solidity","0.8",".19"]},{"id":13723,"nodeType":"ImportDirective","src":"71:57:44","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":6034,"symbolAliases":[{"foreign":{"id":13722,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"79:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13726,"nodeType":"ImportDirective","src":"129:72:44","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":13724,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"137:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13725,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6177,"src":"149:19:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13728,"nodeType":"ImportDirective","src":"202:53:44","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":13727,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"210:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13730,"nodeType":"ImportDirective","src":"256:61:44","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":13729,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"264:18:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13736,"nodeType":"ImportDirective","src":"318:111:44","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":13731,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"326:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13732,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"336:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13733,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16257,"src":"350:16:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13734,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"368:19:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13735,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"389:9:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13738,"nodeType":"ImportDirective","src":"430:65:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":13737,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"438:7:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13740,"nodeType":"ImportDirective","src":"496:85:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":13894,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":13739,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"504:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13839,"nodeType":"StructDefinition","src":"583:2997:44","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":13746,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"731:20:44","nodeType":"VariableDeclaration","scope":13839,"src":"693:58:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"typeName":{"id":13745,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13742,"name":"uint64","nodeType":"ElementaryTypeName","src":"701:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"693:37:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13744,"nodeType":"UserDefinedTypeName","pathNode":{"id":13743,"name":"BottomUpCheckpoint","nameLocations":["711:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"711:18:44"},"referencedDeclaration":16133,"src":"711:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":13751,"mutability":"mutable","name":"genesisValidators","nameLocation":"830:17:44","nodeType":"VariableDeclaration","scope":13839,"src":"818:29:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":13749,"nodeType":"UserDefinedTypeName","pathNode":{"id":13748,"name":"Validator","nameLocations":["818:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"818:9:44"},"referencedDeclaration":16334,"src":"818:9:44","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":13750,"nodeType":"ArrayTypeName","src":"818:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":13754,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"982:17:44","nodeType":"VariableDeclaration","scope":13839,"src":"974:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13753,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13759,"mutability":"mutable","name":"genesisBalance","nameLocation":"1107:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"1079:42:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13758,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13756,"name":"address","nodeType":"ElementaryTypeName","src":"1087:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1079:27:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1098:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":13763,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1179:18:44","nodeType":"VariableDeclaration","scope":13839,"src":"1169:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13761,"name":"address","nodeType":"ElementaryTypeName","src":"1169:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13762,"nodeType":"ArrayTypeName","src":"1169:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13766,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1281:28:44","nodeType":"VariableDeclaration","scope":13839,"src":"1274:35:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13765,"name":"uint64","nodeType":"ElementaryTypeName","src":"1274:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13769,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1369:23:44","nodeType":"VariableDeclaration","scope":13839,"src":"1361:31:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13768,"name":"uint256","nodeType":"ElementaryTypeName","src":"1361:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1459:19:44","nodeType":"VariableDeclaration","scope":13839,"src":"1452:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13771,"name":"uint64","nodeType":"ElementaryTypeName","src":"1452:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13775,"mutability":"mutable","name":"minValidators","nameLocation":"1595:13:44","nodeType":"VariableDeclaration","scope":13839,"src":"1588:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13774,"name":"uint64","nodeType":"ElementaryTypeName","src":"1588:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13777,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1667:17:44","nodeType":"VariableDeclaration","scope":13839,"src":"1659:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1659:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13780,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1756:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"1748:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13779,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13783,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1862:18:44","nodeType":"VariableDeclaration","scope":13839,"src":"1856:24:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13782,"name":"uint8","nodeType":"ElementaryTypeName","src":"1856:5:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13786,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1969:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"1961:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1961:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13790,"mutability":"mutable","name":"parentId","nameLocation":"2038:8:44","nodeType":"VariableDeclaration","scope":13839,"src":"2029:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":13789,"nodeType":"UserDefinedTypeName","pathNode":{"id":13788,"name":"SubnetID","nameLocations":["2029:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2029:8:44"},"referencedDeclaration":16209,"src":"2029:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":13794,"mutability":"mutable","name":"consensus","nameLocation":"2091:9:44","nodeType":"VariableDeclaration","scope":13839,"src":"2077:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"},"typeName":{"id":13793,"nodeType":"UserDefinedTypeName","pathNode":{"id":13792,"name":"ConsensusType","nameLocations":["2077:13:44"],"nodeType":"IdentifierPath","referencedDeclaration":6033,"src":"2077:13:44"},"referencedDeclaration":6033,"src":"2077:13:44","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":13797,"mutability":"mutable","name":"bootstrapped","nameLocation":"2203:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2198:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13796,"name":"bool","nodeType":"ElementaryTypeName","src":"2198:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13800,"mutability":"mutable","name":"permissioned","nameLocation":"2292:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2287:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13799,"name":"bool","nodeType":"ElementaryTypeName","src":"2287:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13803,"mutability":"mutable","name":"killed","nameLocation":"2385:6:44","nodeType":"VariableDeclaration","scope":13839,"src":"2380:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13802,"name":"bool","nodeType":"ElementaryTypeName","src":"2380:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13807,"mutability":"mutable","name":"validatorSet","nameLocation":"2496:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2483:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":13806,"nodeType":"UserDefinedTypeName","pathNode":{"id":13805,"name":"ValidatorSet","nameLocations":["2483:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"2483:12:44"},"referencedDeclaration":16313,"src":"2483:12:44","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":13811,"mutability":"mutable","name":"changeSet","nameLocation":"2645:9:44","nodeType":"VariableDeclaration","scope":13839,"src":"2628:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":13810,"nodeType":"UserDefinedTypeName","pathNode":{"id":13809,"name":"StakingChangeLog","nameLocations":["2628:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"2628:16:44"},"referencedDeclaration":16257,"src":"2628:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":13815,"mutability":"mutable","name":"releaseQueue","nameLocation":"2791:12:44","nodeType":"VariableDeclaration","scope":13839,"src":"2771:32:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":13814,"nodeType":"UserDefinedTypeName","pathNode":{"id":13813,"name":"StakingReleaseQueue","nameLocations":["2771:19:44"],"nodeType":"IdentifierPath","referencedDeclaration":16284,"src":"2771:19:44"},"referencedDeclaration":16284,"src":"2771:19:44","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$16284_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"powerScale","nameLocation":"3089:10:44","nodeType":"VariableDeclaration","scope":13839,"src":"3084:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":13817,"name":"int8","nodeType":"ElementaryTypeName","src":"3084:4:44","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":13823,"mutability":"mutable","name":"relayerRewards","nameLocation":"3166:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"3138:42:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13822,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13820,"name":"address","nodeType":"ElementaryTypeName","src":"3146:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3138:27:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13821,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":13829,"mutability":"mutable","name":"rewardedRelayers","nameLocation":"3311:16:44","nodeType":"VariableDeclaration","scope":13839,"src":"3267:60:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"typeName":{"id":13828,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13825,"name":"uint64","nodeType":"ElementaryTypeName","src":"3275:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"3267:43:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13827,"nodeType":"UserDefinedTypeName","pathNode":{"id":13826,"name":"EnumerableSet.AddressSet","nameLocations":["3285:13:44","3299:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"3285:24:44"},"referencedDeclaration":4315,"src":"3285:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":13834,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3447:14:44","nodeType":"VariableDeclaration","scope":13839,"src":"3420:41:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":13833,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13831,"name":"address","nodeType":"ElementaryTypeName","src":"3428:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3420:26:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13832,"name":"string","nodeType":"ElementaryTypeName","src":"3439:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":13838,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3562:15:44","nodeType":"VariableDeclaration","scope":13839,"src":"3537:40:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13837,"nodeType":"UserDefinedTypeName","pathNode":{"id":13836,"name":"EnumerableSet.AddressSet","nameLocations":["3537:13:44","3551:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"3537:24:44"},"referencedDeclaration":4315,"src":"3537:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"590:18:44","scope":13894,"visibility":"public"},{"id":13850,"nodeType":"ContractDefinition","src":"3582:194:44","nodes":[{"id":13849,"nodeType":"FunctionDefinition","src":"3618:156:44","nodes":[],"body":{"id":13848,"nodeType":"Block","src":"3694:80:44","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3713:36:44","statements":[{"nodeType":"YulAssignment","src":"3727:12:44","value":{"kind":"number","nodeType":"YulLiteral","src":"3738:1:44","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3727:7:44"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13843,"isOffset":false,"isSlot":true,"src":"3727:7:44","suffix":"slot","valueSize":1}],"id":13845,"nodeType":"InlineAssembly","src":"3704:45:44"},{"expression":{"id":13846,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"3765:2:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":13844,"id":13847,"nodeType":"Return","src":"3758:9:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3627:10:44","parameters":{"id":13840,"nodeType":"ParameterList","parameters":[],"src":"3637:2:44"},"returnParameters":{"id":13844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13843,"mutability":"mutable","name":"ds","nameLocation":"3690:2:44","nodeType":"VariableDeclaration","scope":13849,"src":"3663:29:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":13842,"nodeType":"UserDefinedTypeName","pathNode":{"id":13841,"name":"SubnetActorStorage","nameLocations":["3663:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"3663:18:44"},"referencedDeclaration":13839,"src":"3663:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3662:31:44"},"scope":13850,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[13850],"name":"LibSubnetActorStorage","nameLocation":"3590:21:44","scope":13894,"usedErrors":[]},{"id":13893,"nodeType":"ContractDefinition","src":"3778:469:44","nodes":[{"id":13853,"nodeType":"VariableDeclaration","src":"3814:29:44","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3842:1:44","scope":13893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":13852,"nodeType":"UserDefinedTypeName","pathNode":{"id":13851,"name":"SubnetActorStorage","nameLocations":["3814:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"3814:18:44"},"referencedDeclaration":13839,"src":"3814:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":13867,"nodeType":"FunctionDefinition","src":"3850:133:44","nodes":[],"body":{"id":13866,"nodeType":"Block","src":"3887:96:44","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13856,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3901:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3905:6:44","memberName":"sender","nodeType":"MemberAccess","src":"3901:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13858,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3915:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":13859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3917:14:44","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"3915:16:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3901:30:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13865,"nodeType":"IfStatement","src":"3897:80:44","trueBody":{"id":13864,"nodeType":"Block","src":"3933:44:44","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13861,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"3954:10:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13863,"nodeType":"RevertStatement","src":"3947:19:44"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3859:12:44","parameters":{"id":13854,"nodeType":"ParameterList","parameters":[],"src":"3871:2:44"},"returnParameters":{"id":13855,"nodeType":"ParameterList","parameters":[],"src":"3887:0:44"},"scope":13893,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":13878,"nodeType":"FunctionDefinition","src":"3989:118:44","nodes":[],"body":{"id":13877,"nodeType":"Block","src":"4024:83:44","nodes":[],"statements":[{"condition":{"expression":{"id":13870,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"4038:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":13871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4040:6:44","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":13803,"src":"4038:8:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13876,"nodeType":"IfStatement","src":"4034:67:44","trueBody":{"id":13875,"nodeType":"Block","src":"4048:53:44","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13872,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6177,"src":"4069:19:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13874,"nodeType":"RevertStatement","src":"4062:28:44"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"3998:10:44","parameters":{"id":13868,"nodeType":"ParameterList","parameters":[],"src":"4008:2:44"},"returnParameters":{"id":13869,"nodeType":"ParameterList","parameters":[],"src":"4024:0:44"},"scope":13893,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":13885,"nodeType":"ModifierDefinition","src":"4113:65:44","nodes":[],"body":{"id":13884,"nodeType":"Block","src":"4136:42:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13880,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13867,"src":"4146:12:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":13881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13882,"nodeType":"ExpressionStatement","src":"4146:14:44"},{"id":13883,"nodeType":"PlaceholderStatement","src":"4170:1:44"}]},"name":"onlyGateway","nameLocation":"4122:11:44","parameters":{"id":13879,"nodeType":"ParameterList","parameters":[],"src":"4133:2:44"},"virtual":false,"visibility":"internal"},{"id":13892,"nodeType":"ModifierDefinition","src":"4184:61:44","nodes":[],"body":{"id":13891,"nodeType":"Block","src":"4205:40:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13887,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13878,"src":"4215:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":13888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4215:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13889,"nodeType":"ExpressionStatement","src":"4215:12:44"},{"id":13890,"nodeType":"PlaceholderStatement","src":"4237:1:44"}]},"name":"notKilled","nameLocation":"4193:9:44","parameters":{"id":13886,"nodeType":"ParameterList","parameters":[],"src":"4202:2:44"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[13893],"name":"SubnetActorModifiers","nameLocation":"3787:20:44","scope":13894,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":44} \ No newline at end of file diff --git a/contracts/out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json b/contracts/out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json deleted file mode 100644 index 917776b912..0000000000 --- a/contracts/out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","id":13924,"exportedSymbols":{"SubnetRegistryActorStorage":[13923]},"nodeType":"SourceUnit","src":"46:939:45","nodes":[{"id":13895,"nodeType":"PragmaDirective","src":"46:23:45","nodes":[],"literals":["solidity","0.8",".19"]},{"id":13923,"nodeType":"StructDefinition","src":"71:913:45","nodes":[],"canonicalName":"SubnetRegistryActorStorage","members":[{"constant":false,"id":13897,"mutability":"mutable","name":"GATEWAY","nameLocation":"171:7:45","nodeType":"VariableDeclaration","scope":13923,"src":"163:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13896,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13900,"mutability":"mutable","name":"SUBNET_GETTER_FACET","nameLocation":"299:19:45","nodeType":"VariableDeclaration","scope":13923,"src":"291:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13899,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"SUBNET_MANAGER_FACET","nameLocation":"384:20:45","nodeType":"VariableDeclaration","scope":13923,"src":"376:28:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13901,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13906,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"471:21:45","nodeType":"VariableDeclaration","scope":13923,"src":"462:30:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":13904,"name":"bytes4","nodeType":"ElementaryTypeName","src":"462:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":13905,"nodeType":"ArrayTypeName","src":"462:8:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":13910,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"560:22:45","nodeType":"VariableDeclaration","scope":13923,"src":"551:31:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":13908,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":13909,"nodeType":"ArrayTypeName","src":"551:8:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":13917,"mutability":"mutable","name":"subnets","nameLocation":"809:7:45","nodeType":"VariableDeclaration","scope":13923,"src":"762:54:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"typeName":{"id":13916,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13912,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"762:46:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13915,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13913,"name":"uint64","nodeType":"ElementaryTypeName","src":"789:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"781:26:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13914,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"constant":false,"id":13922,"mutability":"mutable","name":"userNonces","nameLocation":"971:10:45","nodeType":"VariableDeclaration","scope":13923,"src":"944:37:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"typeName":{"id":13921,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13919,"name":"address","nodeType":"ElementaryTypeName","src":"952:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"944:26:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13920,"name":"uint64","nodeType":"ElementaryTypeName","src":"963:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},"visibility":"internal"}],"name":"SubnetRegistryActorStorage","nameLocation":"78:26:45","scope":13924,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":45} \ No newline at end of file diff --git a/contracts/out/Math.sol/Math.json b/contracts/out/Math.sol/Math.json deleted file mode 100644 index de05d91dc7..0000000000 --- a/contracts/out/Math.sol/Math.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"MathOverflowedMulDiv","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220cd5e5a333410ae4138e4612071c267fa77b0a822fcd643df8d08e3041009ecec64736f6c63430008130033","sourceMap":"203:14864:11:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220cd5e5a333410ae4138e4612071c267fa77b0a822fcd643df8d08e3041009ecec64736f6c63430008130033","sourceMap":"203:14864:11:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","id":3885,"exportedSymbols":{"Math":[3884]},"nodeType":"SourceUnit","src":"103:14965:11","nodes":[{"id":2849,"nodeType":"PragmaDirective","src":"103:24:11","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":3884,"nodeType":"ContractDefinition","src":"203:14864:11","nodes":[{"id":2853,"nodeType":"ErrorDefinition","src":"277:29:11","nodes":[],"documentation":{"id":2851,"nodeType":"StructuredDocumentation","src":"222:50:11","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","name":"MathOverflowedMulDiv","nameLocation":"283:20:11","parameters":{"id":2852,"nodeType":"ParameterList","parameters":[],"src":"303:2:11"}},{"id":2857,"nodeType":"EnumDefinition","src":"312:122:11","nodes":[],"canonicalName":"Math.Rounding","members":[{"id":2854,"name":"Down","nameLocation":"336:4:11","nodeType":"EnumValue","src":"336:4:11"},{"id":2855,"name":"Up","nameLocation":"378:2:11","nodeType":"EnumValue","src":"378:2:11"},{"id":2856,"name":"Zero","nameLocation":"409:4:11","nodeType":"EnumValue","src":"409:4:11"}],"name":"Rounding","nameLocation":"317:8:11"},{"id":2889,"nodeType":"FunctionDefinition","src":"576:216:11","nodes":[],"body":{"id":2888,"nodeType":"Block","src":"652:140:11","nodes":[],"statements":[{"id":2887,"nodeType":"UncheckedBlock","src":"662:124:11","statements":[{"assignments":[2870],"declarations":[{"constant":false,"id":2870,"mutability":"mutable","name":"c","nameLocation":"694:1:11","nodeType":"VariableDeclaration","scope":2887,"src":"686:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2869,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2874,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2871,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"698:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2872,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"702:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"698:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"686:17:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2875,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2870,"src":"721:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2876,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"725:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"721:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2882,"nodeType":"IfStatement","src":"717:28:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"736:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2880,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"735:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2868,"id":2881,"nodeType":"Return","src":"728:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":2883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"767:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2884,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2870,"src":"773:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2885,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"766:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2868,"id":2886,"nodeType":"Return","src":"759:16:11"}]}]},"documentation":{"id":2858,"nodeType":"StructuredDocumentation","src":"440:131:11","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"585:6:11","parameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2860,"mutability":"mutable","name":"a","nameLocation":"600:1:11","nodeType":"VariableDeclaration","scope":2889,"src":"592:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2859,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2862,"mutability":"mutable","name":"b","nameLocation":"611:1:11","nodeType":"VariableDeclaration","scope":2889,"src":"603:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2861,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:22:11"},"returnParameters":{"id":2868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2889,"src":"637:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2864,"name":"bool","nodeType":"ElementaryTypeName","src":"637:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2889,"src":"643:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2866,"name":"uint256","nodeType":"ElementaryTypeName","src":"643:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:15:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2917,"nodeType":"FunctionDefinition","src":"937:189:11","nodes":[],"body":{"id":2916,"nodeType":"Block","src":"1013:113:11","nodes":[],"statements":[{"id":2915,"nodeType":"UncheckedBlock","src":"1023:97:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2901,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2894,"src":"1051:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2902,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"1055:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1051:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2908,"nodeType":"IfStatement","src":"1047:28:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1066:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1073:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2906,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1065:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2900,"id":2907,"nodeType":"Return","src":"1058:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":2909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1097:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2910,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"1103:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2911,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2894,"src":"1107:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1103:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2913,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1096:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2900,"id":2914,"nodeType":"Return","src":"1089:20:11"}]}]},"documentation":{"id":2890,"nodeType":"StructuredDocumentation","src":"798:134:11","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:11","parameters":{"id":2895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2892,"mutability":"mutable","name":"a","nameLocation":"961:1:11","nodeType":"VariableDeclaration","scope":2917,"src":"953:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2891,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2894,"mutability":"mutable","name":"b","nameLocation":"972:1:11","nodeType":"VariableDeclaration","scope":2917,"src":"964:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2893,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:11"},"returnParameters":{"id":2900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2917,"src":"998:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2896,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2917,"src":"1004:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2898,"name":"uint256","nodeType":"ElementaryTypeName","src":"1004:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:15:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2959,"nodeType":"FunctionDefinition","src":"1274:493:11","nodes":[],"body":{"id":2958,"nodeType":"Block","src":"1350:417:11","nodes":[],"statements":[{"id":2957,"nodeType":"UncheckedBlock","src":"1360:401:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2929,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"1618:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1618:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2936,"nodeType":"IfStatement","src":"1614:28:11","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1634:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1640:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2934,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1633:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2928,"id":2935,"nodeType":"Return","src":"1626:16:11"}},{"assignments":[2938],"declarations":[{"constant":false,"id":2938,"mutability":"mutable","name":"c","nameLocation":"1664:1:11","nodeType":"VariableDeclaration","scope":2957,"src":"1656:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2939,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"1668:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2940,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2922,"src":"1672:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1668:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1656:17:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2943,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"1691:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2944,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"1695:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1691:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2946,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2922,"src":"1700:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1691:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2952,"nodeType":"IfStatement","src":"1687:33:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1711:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1718:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1710:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2928,"id":2951,"nodeType":"Return","src":"1703:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":2953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1742:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2954,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"1748:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2955,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1741:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2928,"id":2956,"nodeType":"Return","src":"1734:16:11"}]}]},"documentation":{"id":2918,"nodeType":"StructuredDocumentation","src":"1132:137:11","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1283:6:11","parameters":{"id":2923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2920,"mutability":"mutable","name":"a","nameLocation":"1298:1:11","nodeType":"VariableDeclaration","scope":2959,"src":"1290:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2919,"name":"uint256","nodeType":"ElementaryTypeName","src":"1290:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2922,"mutability":"mutable","name":"b","nameLocation":"1309:1:11","nodeType":"VariableDeclaration","scope":2959,"src":"1301:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2921,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1289:22:11"},"returnParameters":{"id":2928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2959,"src":"1335:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2924,"name":"bool","nodeType":"ElementaryTypeName","src":"1335:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2959,"src":"1341:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2926,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1334:15:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2987,"nodeType":"FunctionDefinition","src":"1916:190:11","nodes":[],"body":{"id":2986,"nodeType":"Block","src":"1992:114:11","nodes":[],"statements":[{"id":2985,"nodeType":"UncheckedBlock","src":"2002:98:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2971,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"2030:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2035:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2030:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2978,"nodeType":"IfStatement","src":"2026:29:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2046:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2053:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2976,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2045:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2970,"id":2977,"nodeType":"Return","src":"2038:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":2979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2077:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2980,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2962,"src":"2083:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2981,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"2087:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2083:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2983,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2076:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2970,"id":2984,"nodeType":"Return","src":"2069:20:11"}]}]},"documentation":{"id":2960,"nodeType":"StructuredDocumentation","src":"1773:138:11","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1925:6:11","parameters":{"id":2965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2962,"mutability":"mutable","name":"a","nameLocation":"1940:1:11","nodeType":"VariableDeclaration","scope":2987,"src":"1932:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2964,"mutability":"mutable","name":"b","nameLocation":"1951:1:11","nodeType":"VariableDeclaration","scope":2987,"src":"1943:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1931:22:11"},"returnParameters":{"id":2970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2987,"src":"1977:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2966,"name":"bool","nodeType":"ElementaryTypeName","src":"1977:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2987,"src":"1983:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1983:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1976:15:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3015,"nodeType":"FunctionDefinition","src":"2265:190:11","nodes":[],"body":{"id":3014,"nodeType":"Block","src":"2341:114:11","nodes":[],"statements":[{"id":3013,"nodeType":"UncheckedBlock","src":"2351:98:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2999,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"2379:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2379:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3006,"nodeType":"IfStatement","src":"2375:29:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2395:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2402:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2394:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2998,"id":3005,"nodeType":"Return","src":"2387:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":3007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2426:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3008,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2990,"src":"2432:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3009,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"2436:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2425:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2998,"id":3012,"nodeType":"Return","src":"2418:20:11"}]}]},"documentation":{"id":2988,"nodeType":"StructuredDocumentation","src":"2112:148:11","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2274:6:11","parameters":{"id":2993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2990,"mutability":"mutable","name":"a","nameLocation":"2289:1:11","nodeType":"VariableDeclaration","scope":3015,"src":"2281:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2992,"mutability":"mutable","name":"b","nameLocation":"2300:1:11","nodeType":"VariableDeclaration","scope":3015,"src":"2292:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2991,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2280:22:11"},"returnParameters":{"id":2998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3015,"src":"2326:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2994,"name":"bool","nodeType":"ElementaryTypeName","src":"2326:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3015,"src":"2332:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2996,"name":"uint256","nodeType":"ElementaryTypeName","src":"2332:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2325:15:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3033,"nodeType":"FunctionDefinition","src":"2525:104:11","nodes":[],"body":{"id":3032,"nodeType":"Block","src":"2592:37:11","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3025,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2609:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3026,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"2613:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2609:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3029,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"2621:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2609:13:11","trueExpression":{"id":3028,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2617:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3024,"id":3031,"nodeType":"Return","src":"2602:20:11"}]},"documentation":{"id":3016,"nodeType":"StructuredDocumentation","src":"2461:59:11","text":" @dev Returns the largest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2534:3:11","parameters":{"id":3021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"a","nameLocation":"2546:1:11","nodeType":"VariableDeclaration","scope":3033,"src":"2538:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3017,"name":"uint256","nodeType":"ElementaryTypeName","src":"2538:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3020,"mutability":"mutable","name":"b","nameLocation":"2557:1:11","nodeType":"VariableDeclaration","scope":3033,"src":"2549:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3019,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2537:22:11"},"returnParameters":{"id":3024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3033,"src":"2583:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3022,"name":"uint256","nodeType":"ElementaryTypeName","src":"2583:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2582:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3051,"nodeType":"FunctionDefinition","src":"2700:104:11","nodes":[],"body":{"id":3050,"nodeType":"Block","src":"2767:37:11","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3043,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3036,"src":"2784:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3044,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"2788:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2784:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3047,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"2796:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2784:13:11","trueExpression":{"id":3046,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3036,"src":"2792:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3042,"id":3049,"nodeType":"Return","src":"2777:20:11"}]},"documentation":{"id":3034,"nodeType":"StructuredDocumentation","src":"2635:60:11","text":" @dev Returns the smallest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2709:3:11","parameters":{"id":3039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3036,"mutability":"mutable","name":"a","nameLocation":"2721:1:11","nodeType":"VariableDeclaration","scope":3051,"src":"2713:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3035,"name":"uint256","nodeType":"ElementaryTypeName","src":"2713:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3038,"mutability":"mutable","name":"b","nameLocation":"2732:1:11","nodeType":"VariableDeclaration","scope":3051,"src":"2724:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3037,"name":"uint256","nodeType":"ElementaryTypeName","src":"2724:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:22:11"},"returnParameters":{"id":3042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3051,"src":"2758:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3040,"name":"uint256","nodeType":"ElementaryTypeName","src":"2758:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2757:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3074,"nodeType":"FunctionDefinition","src":"2917:153:11","nodes":[],"body":{"id":3073,"nodeType":"Block","src":"2988:82:11","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3061,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"3043:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3062,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"3047:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3043:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3064,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3042:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3065,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"3053:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3066,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"3057:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3053:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3068,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3052:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":3069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3062:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3052:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3042:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3060,"id":3072,"nodeType":"Return","src":"3035:28:11"}]},"documentation":{"id":3052,"nodeType":"StructuredDocumentation","src":"2810:102:11","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2926:7:11","parameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3054,"mutability":"mutable","name":"a","nameLocation":"2942:1:11","nodeType":"VariableDeclaration","scope":3074,"src":"2934:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3053,"name":"uint256","nodeType":"ElementaryTypeName","src":"2934:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3056,"mutability":"mutable","name":"b","nameLocation":"2953:1:11","nodeType":"VariableDeclaration","scope":3074,"src":"2945:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3055,"name":"uint256","nodeType":"ElementaryTypeName","src":"2945:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2933:22:11"},"returnParameters":{"id":3060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3074,"src":"2979:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3058,"name":"uint256","nodeType":"ElementaryTypeName","src":"2979:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2978:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3108,"nodeType":"FunctionDefinition","src":"3269:331:11","nodes":[],"body":{"id":3107,"nodeType":"Block","src":"3340:260:11","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3084,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"3354:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3359:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3354:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3092,"nodeType":"IfStatement","src":"3350:127:11","trueBody":{"id":3091,"nodeType":"Block","src":"3362:115:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3077,"src":"3461:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3088,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"3465:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3461:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3083,"id":3090,"nodeType":"Return","src":"3454:12:11"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3093,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3077,"src":"3565:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3570:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3565:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3097,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3077,"src":"3579:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3583:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3579:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3578:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3101,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"3588:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3592:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3578:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3565:28:11","trueExpression":{"hexValue":"30","id":3096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3574:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3083,"id":3106,"nodeType":"Return","src":"3558:35:11"}]},"documentation":{"id":3075,"nodeType":"StructuredDocumentation","src":"3076:188:11","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3278:7:11","parameters":{"id":3080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3077,"mutability":"mutable","name":"a","nameLocation":"3294:1:11","nodeType":"VariableDeclaration","scope":3108,"src":"3286:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3076,"name":"uint256","nodeType":"ElementaryTypeName","src":"3286:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3079,"mutability":"mutable","name":"b","nameLocation":"3305:1:11","nodeType":"VariableDeclaration","scope":3108,"src":"3297:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3078,"name":"uint256","nodeType":"ElementaryTypeName","src":"3297:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3285:22:11"},"returnParameters":{"id":3083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3108,"src":"3331:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3081,"name":"uint256","nodeType":"ElementaryTypeName","src":"3331:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3330:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3232,"nodeType":"FunctionDefinition","src":"3916:4247:11","nodes":[],"body":{"id":3231,"nodeType":"Block","src":"4014:4149:11","nodes":[],"statements":[{"id":3230,"nodeType":"UncheckedBlock","src":"4024:4133:11","statements":[{"assignments":[3121],"declarations":[{"constant":false,"id":3121,"mutability":"mutable","name":"prod0","nameLocation":"4353:5:11","nodeType":"VariableDeclaration","scope":3230,"src":"4345:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3120,"name":"uint256","nodeType":"ElementaryTypeName","src":"4345:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3122,"nodeType":"VariableDeclarationStatement","src":"4345:13:11"},{"assignments":[3124],"declarations":[{"constant":false,"id":3124,"mutability":"mutable","name":"prod1","nameLocation":"4425:5:11","nodeType":"VariableDeclaration","scope":3230,"src":"4417:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4417:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3125,"nodeType":"VariableDeclarationStatement","src":"4417:13:11"},{"AST":{"nodeType":"YulBlock","src":"4497:157:11","statements":[{"nodeType":"YulVariableDeclaration","src":"4515:30:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4532:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"4535:1:11"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4542:1:11","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4538:3:11"},"nodeType":"YulFunctionCall","src":"4538:6:11"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4525:6:11"},"nodeType":"YulFunctionCall","src":"4525:20:11"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4519:2:11","type":""}]},{"nodeType":"YulAssignment","src":"4562:18:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4575:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"4578:1:11"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4571:3:11"},"nodeType":"YulFunctionCall","src":"4571:9:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4562:5:11"}]},{"nodeType":"YulAssignment","src":"4597:43:11","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4614:2:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"4618:5:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4610:3:11"},"nodeType":"YulFunctionCall","src":"4610:14:11"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4629:2:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"4633:5:11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4626:2:11"},"nodeType":"YulFunctionCall","src":"4626:13:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4606:3:11"},"nodeType":"YulFunctionCall","src":"4606:34:11"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4597:5:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3121,"isOffset":false,"isSlot":false,"src":"4562:5:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"4618:5:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"4633:5:11","valueSize":1},{"declaration":3124,"isOffset":false,"isSlot":false,"src":"4597:5:11","valueSize":1},{"declaration":3111,"isOffset":false,"isSlot":false,"src":"4532:1:11","valueSize":1},{"declaration":3111,"isOffset":false,"isSlot":false,"src":"4575:1:11","valueSize":1},{"declaration":3113,"isOffset":false,"isSlot":false,"src":"4535:1:11","valueSize":1},{"declaration":3113,"isOffset":false,"isSlot":false,"src":"4578:1:11","valueSize":1}],"id":3126,"nodeType":"InlineAssembly","src":"4488:166:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3127,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"4735:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4744:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4735:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3135,"nodeType":"IfStatement","src":"4731:368:11","trueBody":{"id":3134,"nodeType":"Block","src":"4747:352:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3130,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3121,"src":"5065:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3131,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"5073:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3119,"id":3133,"nodeType":"Return","src":"5058:26:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3136,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"5205:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3137,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"5220:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5205:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3143,"nodeType":"IfStatement","src":"5201:88:11","trueBody":{"id":3142,"nodeType":"Block","src":"5227:62:11","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3139,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2853,"src":"5252:20:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5252:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3141,"nodeType":"RevertStatement","src":"5245:29:11"}]}},{"assignments":[3145],"declarations":[{"constant":false,"id":3145,"mutability":"mutable","name":"remainder","nameLocation":"5552:9:11","nodeType":"VariableDeclaration","scope":3230,"src":"5544:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3144,"name":"uint256","nodeType":"ElementaryTypeName","src":"5544:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3146,"nodeType":"VariableDeclarationStatement","src":"5544:17:11"},{"AST":{"nodeType":"YulBlock","src":"5584:291:11","statements":[{"nodeType":"YulAssignment","src":"5653:38:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5673:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"5676:1:11"},{"name":"denominator","nodeType":"YulIdentifier","src":"5679:11:11"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5666:6:11"},"nodeType":"YulFunctionCall","src":"5666:25:11"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5653:9:11"}]},{"nodeType":"YulAssignment","src":"5773:41:11","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5786:5:11"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5796:9:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"5807:5:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5793:2:11"},"nodeType":"YulFunctionCall","src":"5793:20:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5782:3:11"},"nodeType":"YulFunctionCall","src":"5782:32:11"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5773:5:11"}]},{"nodeType":"YulAssignment","src":"5831:30:11","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5844:5:11"},{"name":"remainder","nodeType":"YulIdentifier","src":"5851:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5840:3:11"},"nodeType":"YulFunctionCall","src":"5840:21:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5831:5:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3115,"isOffset":false,"isSlot":false,"src":"5679:11:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"5807:5:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"5831:5:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"5844:5:11","valueSize":1},{"declaration":3124,"isOffset":false,"isSlot":false,"src":"5773:5:11","valueSize":1},{"declaration":3124,"isOffset":false,"isSlot":false,"src":"5786:5:11","valueSize":1},{"declaration":3145,"isOffset":false,"isSlot":false,"src":"5653:9:11","valueSize":1},{"declaration":3145,"isOffset":false,"isSlot":false,"src":"5796:9:11","valueSize":1},{"declaration":3145,"isOffset":false,"isSlot":false,"src":"5851:9:11","valueSize":1},{"declaration":3111,"isOffset":false,"isSlot":false,"src":"5673:1:11","valueSize":1},{"declaration":3113,"isOffset":false,"isSlot":false,"src":"5676:1:11","valueSize":1}],"id":3147,"nodeType":"InlineAssembly","src":"5575:300:11"},{"assignments":[3149],"declarations":[{"constant":false,"id":3149,"mutability":"mutable","name":"twos","nameLocation":"6190:4:11","nodeType":"VariableDeclaration","scope":3230,"src":"6182:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3148,"name":"uint256","nodeType":"ElementaryTypeName","src":"6182:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3157,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3150,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"6197:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"6212:12:11","subExpression":{"id":3151,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"6213:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6227:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6212:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6211:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6197:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6182:47:11"},{"AST":{"nodeType":"YulBlock","src":"6252:362:11","statements":[{"nodeType":"YulAssignment","src":"6317:37:11","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6336:11:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6349:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6332:3:11"},"nodeType":"YulFunctionCall","src":"6332:22:11"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6317:11:11"}]},{"nodeType":"YulAssignment","src":"6421:25:11","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6434:5:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6441:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6430:3:11"},"nodeType":"YulFunctionCall","src":"6430:16:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6421:5:11"}]},{"nodeType":"YulAssignment","src":"6561:39:11","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6581:1:11","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6584:4:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6577:3:11"},"nodeType":"YulFunctionCall","src":"6577:12:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6591:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6573:3:11"},"nodeType":"YulFunctionCall","src":"6573:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"6598:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6569:3:11"},"nodeType":"YulFunctionCall","src":"6569:31:11"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6561:4:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3115,"isOffset":false,"isSlot":false,"src":"6317:11:11","valueSize":1},{"declaration":3115,"isOffset":false,"isSlot":false,"src":"6336:11:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"6421:5:11","valueSize":1},{"declaration":3121,"isOffset":false,"isSlot":false,"src":"6434:5:11","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"6349:4:11","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"6441:4:11","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"6561:4:11","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"6584:4:11","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"6591:4:11","valueSize":1}],"id":3158,"nodeType":"InlineAssembly","src":"6243:371:11"},{"expression":{"id":3163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3159,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3121,"src":"6680:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3160,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"6689:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3161,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"6697:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6689:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6680:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3164,"nodeType":"ExpressionStatement","src":"6680:21:11"},{"assignments":[3166],"declarations":[{"constant":false,"id":3166,"mutability":"mutable","name":"inverse","nameLocation":"7027:7:11","nodeType":"VariableDeclaration","scope":3230,"src":"7019:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3165,"name":"uint256","nodeType":"ElementaryTypeName","src":"7019:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3173,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7038:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3168,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7042:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3170,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7037:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":3171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7057:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7037:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7019:39:11"},{"expression":{"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3174,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7275:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7286:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3176,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7290:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3177,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7304:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7290:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7286:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7275:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3181,"nodeType":"ExpressionStatement","src":"7275:36:11"},{"expression":{"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3182,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7344:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3184,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7359:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3185,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7373:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7359:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7355:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7344:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3189,"nodeType":"ExpressionStatement","src":"7344:36:11"},{"expression":{"id":3196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3190,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7414:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7425:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3192,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7429:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3193,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7443:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7429:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7425:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7414:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3197,"nodeType":"ExpressionStatement","src":"7414:36:11"},{"expression":{"id":3204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3198,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7484:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7495:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3200,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7499:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3201,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7513:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7499:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7495:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7484:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3205,"nodeType":"ExpressionStatement","src":"7484:36:11"},{"expression":{"id":3212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3206,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7554:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7565:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3208,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7569:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3209,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7583:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7569:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7565:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7554:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3213,"nodeType":"ExpressionStatement","src":"7554:36:11"},{"expression":{"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3214,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7625:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7636:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3216,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"7640:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3217,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"7654:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7636:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7625:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3221,"nodeType":"ExpressionStatement","src":"7625:36:11"},{"expression":{"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3222,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"8095:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3223,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3121,"src":"8104:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3224,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"8112:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8104:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:24:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3227,"nodeType":"ExpressionStatement","src":"8095:24:11"},{"expression":{"id":3228,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"8140:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3119,"id":3229,"nodeType":"Return","src":"8133:13:11"}]}]},"documentation":{"id":3109,"nodeType":"StructuredDocumentation","src":"3606:305:11","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3925:6:11","parameters":{"id":3116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3111,"mutability":"mutable","name":"x","nameLocation":"3940:1:11","nodeType":"VariableDeclaration","scope":3232,"src":"3932:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3110,"name":"uint256","nodeType":"ElementaryTypeName","src":"3932:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3113,"mutability":"mutable","name":"y","nameLocation":"3951:1:11","nodeType":"VariableDeclaration","scope":3232,"src":"3943:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3112,"name":"uint256","nodeType":"ElementaryTypeName","src":"3943:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3115,"mutability":"mutable","name":"denominator","nameLocation":"3962:11:11","nodeType":"VariableDeclaration","scope":3232,"src":"3954:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3114,"name":"uint256","nodeType":"ElementaryTypeName","src":"3954:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3931:43:11"},"returnParameters":{"id":3119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3118,"mutability":"mutable","name":"result","nameLocation":"4006:6:11","nodeType":"VariableDeclaration","scope":3232,"src":"3998:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3998:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3997:16:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3276,"nodeType":"FunctionDefinition","src":"8295:299:11","nodes":[],"body":{"id":3275,"nodeType":"Block","src":"8405:189:11","nodes":[],"statements":[{"assignments":[3248],"declarations":[{"constant":false,"id":3248,"mutability":"mutable","name":"result","nameLocation":"8423:6:11","nodeType":"VariableDeclaration","scope":3275,"src":"8415:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3247,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3254,"initialValue":{"arguments":[{"id":3250,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"8439:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3251,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"8442:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3252,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"8445:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3249,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[3232,3276],"referencedDeclaration":3232,"src":"8432:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8432:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8415:42:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3255,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3242,"src":"8471:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3256,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"8483:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2857_$","typeString":"type(enum Math.Rounding)"}},"id":3257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8492:2:11","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"8483:11:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"src":"8471:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3260,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"8505:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3261,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"8508:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3262,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"8511:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3259,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8498:6:11","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8498:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8526:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8498:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8471:56:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3272,"nodeType":"IfStatement","src":"8467:98:11","trueBody":{"id":3271,"nodeType":"Block","src":"8529:36:11","statements":[{"expression":{"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3267,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"8543:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8553:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8543:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3270,"nodeType":"ExpressionStatement","src":"8543:11:11"}]}},{"expression":{"id":3273,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"8581:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3246,"id":3274,"nodeType":"Return","src":"8574:13:11"}]},"documentation":{"id":3233,"nodeType":"StructuredDocumentation","src":"8169:121:11","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8304:6:11","parameters":{"id":3243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3235,"mutability":"mutable","name":"x","nameLocation":"8319:1:11","nodeType":"VariableDeclaration","scope":3276,"src":"8311:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3234,"name":"uint256","nodeType":"ElementaryTypeName","src":"8311:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3237,"mutability":"mutable","name":"y","nameLocation":"8330:1:11","nodeType":"VariableDeclaration","scope":3276,"src":"8322:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3236,"name":"uint256","nodeType":"ElementaryTypeName","src":"8322:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3239,"mutability":"mutable","name":"denominator","nameLocation":"8341:11:11","nodeType":"VariableDeclaration","scope":3276,"src":"8333:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3238,"name":"uint256","nodeType":"ElementaryTypeName","src":"8333:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3242,"mutability":"mutable","name":"rounding","nameLocation":"8363:8:11","nodeType":"VariableDeclaration","scope":3276,"src":"8354:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"typeName":{"id":3241,"nodeType":"UserDefinedTypeName","pathNode":{"id":3240,"name":"Rounding","nameLocations":["8354:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"8354:8:11"},"referencedDeclaration":2857,"src":"8354:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8310:62:11"},"returnParameters":{"id":3246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3276,"src":"8396:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3244,"name":"uint256","nodeType":"ElementaryTypeName","src":"8396:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8395:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3388,"nodeType":"FunctionDefinition","src":"8813:1642:11","nodes":[],"body":{"id":3387,"nodeType":"Block","src":"8870:1585:11","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"8884:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8889:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8884:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3290,"nodeType":"IfStatement","src":"8880:45:11","trueBody":{"id":3289,"nodeType":"Block","src":"8892:33:11","statements":[{"expression":{"hexValue":"30","id":3287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8913:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3283,"id":3288,"nodeType":"Return","src":"8906:8:11"}]}},{"assignments":[3292],"declarations":[{"constant":false,"id":3292,"mutability":"mutable","name":"result","nameLocation":"9612:6:11","nodeType":"VariableDeclaration","scope":3387,"src":"9604:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3291,"name":"uint256","nodeType":"ElementaryTypeName","src":"9604:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3301,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9621:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"9632:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3294,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3556,3592],"referencedDeclaration":3556,"src":"9627:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9627:7:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9638:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9627:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3299,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9626:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9621:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9604:36:11"},{"id":3386,"nodeType":"UncheckedBlock","src":"10041:408:11","statements":[{"expression":{"id":3311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10065:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3303,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10075:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3304,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10084:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3305,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10088:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10075:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10074:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10099:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10074:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10065:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3312,"nodeType":"ExpressionStatement","src":"10065:35:11"},{"expression":{"id":3322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3313,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10114:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3314,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10124:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3315,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10133:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3316,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10137:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10124:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3319,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10123:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10148:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10123:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10114:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3323,"nodeType":"ExpressionStatement","src":"10114:35:11"},{"expression":{"id":3333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3324,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10163:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3325,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10173:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3326,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10182:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3327,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10186:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10182:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10173:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10172:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10197:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10172:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10163:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3334,"nodeType":"ExpressionStatement","src":"10163:35:11"},{"expression":{"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10212:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3336,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10222:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3337,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10231:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3338,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10235:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10231:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10222:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3341,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10221:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10246:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10221:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10212:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3345,"nodeType":"ExpressionStatement","src":"10212:35:11"},{"expression":{"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3346,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10261:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3347,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10271:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10280:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10284:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10280:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10271:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3352,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10270:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10295:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10270:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10261:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3356,"nodeType":"ExpressionStatement","src":"10261:35:11"},{"expression":{"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3357,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10310:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3358,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10320:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3359,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10329:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3360,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10333:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10329:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10320:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3363,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10319:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10344:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10319:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10310:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3367,"nodeType":"ExpressionStatement","src":"10310:35:11"},{"expression":{"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3368,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10359:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10369:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3370,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10378:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3371,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10382:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10378:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10369:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3374,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10368:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10393:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10368:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10359:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3378,"nodeType":"ExpressionStatement","src":"10359:35:11"},{"expression":{"arguments":[{"id":3380,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10419:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3381,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"10427:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"10431:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10427:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3379,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"10415:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3283,"id":3385,"nodeType":"Return","src":"10408:30:11"}]}]},"documentation":{"id":3277,"nodeType":"StructuredDocumentation","src":"8600:208:11","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8822:4:11","parameters":{"id":3280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"a","nameLocation":"8835:1:11","nodeType":"VariableDeclaration","scope":3388,"src":"8827:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3278,"name":"uint256","nodeType":"ElementaryTypeName","src":"8827:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8826:11:11"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3388,"src":"8861:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"8861:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8860:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3424,"nodeType":"FunctionDefinition","src":"10555:237:11","nodes":[],"body":{"id":3423,"nodeType":"Block","src":"10631:161:11","nodes":[],"statements":[{"id":3422,"nodeType":"UncheckedBlock","src":"10641:145:11","statements":[{"assignments":[3400],"declarations":[{"constant":false,"id":3400,"mutability":"mutable","name":"result","nameLocation":"10673:6:11","nodeType":"VariableDeclaration","scope":3422,"src":"10665:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3399,"name":"uint256","nodeType":"ElementaryTypeName","src":"10665:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3404,"initialValue":{"arguments":[{"id":3402,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3391,"src":"10687:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3401,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3388,3424],"referencedDeclaration":3388,"src":"10682:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10682:7:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10665:24:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3405,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"10710:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3406,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3394,"src":"10720:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3407,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"10732:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2857_$","typeString":"type(enum Math.Rounding)"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10741:2:11","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"10732:11:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"src":"10720:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3410,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"10747:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3411,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"10756:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10747:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3413,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3391,"src":"10765:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10747:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10720:46:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10720:54:11","trueExpression":{"hexValue":"31","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10769:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3419,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10719:56:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10710:65:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3398,"id":3421,"nodeType":"Return","src":"10703:72:11"}]}]},"documentation":{"id":3389,"nodeType":"StructuredDocumentation","src":"10461:89:11","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10564:4:11","parameters":{"id":3395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3391,"mutability":"mutable","name":"a","nameLocation":"10577:1:11","nodeType":"VariableDeclaration","scope":3424,"src":"10569:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3390,"name":"uint256","nodeType":"ElementaryTypeName","src":"10569:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3394,"mutability":"mutable","name":"rounding","nameLocation":"10589:8:11","nodeType":"VariableDeclaration","scope":3424,"src":"10580:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"typeName":{"id":3393,"nodeType":"UserDefinedTypeName","pathNode":{"id":3392,"name":"Rounding","nameLocations":["10580:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"10580:8:11"},"referencedDeclaration":2857,"src":"10580:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10568:30:11"},"returnParameters":{"id":3398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3424,"src":"10622:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3396,"name":"uint256","nodeType":"ElementaryTypeName","src":"10622:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10621:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3556,"nodeType":"FunctionDefinition","src":"10916:983:11","nodes":[],"body":{"id":3555,"nodeType":"Block","src":"10977:922:11","nodes":[],"statements":[{"assignments":[3433],"declarations":[{"constant":false,"id":3433,"mutability":"mutable","name":"result","nameLocation":"10995:6:11","nodeType":"VariableDeclaration","scope":3555,"src":"10987:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3432,"name":"uint256","nodeType":"ElementaryTypeName","src":"10987:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3435,"initialValue":{"hexValue":"30","id":3434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11004:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10987:18:11"},{"id":3552,"nodeType":"UncheckedBlock","src":"11015:855:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3436,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11043:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11052:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11043:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11058:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11043:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3450,"nodeType":"IfStatement","src":"11039:99:11","trueBody":{"id":3449,"nodeType":"Block","src":"11061:77:11","statements":[{"expression":{"id":3443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3441,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11079:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11089:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11079:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3444,"nodeType":"ExpressionStatement","src":"11079:13:11"},{"expression":{"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3445,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11110:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":3446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11120:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11110:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3448,"nodeType":"ExpressionStatement","src":"11110:13:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3451,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11155:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11164:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11155:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11169:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11155:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3465,"nodeType":"IfStatement","src":"11151:96:11","trueBody":{"id":3464,"nodeType":"Block","src":"11172:75:11","statements":[{"expression":{"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11190:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11200:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11190:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3459,"nodeType":"ExpressionStatement","src":"11190:12:11"},{"expression":{"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3460,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11220:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11230:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11220:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3463,"nodeType":"ExpressionStatement","src":"11220:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3466,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11264:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11273:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11264:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11264:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3480,"nodeType":"IfStatement","src":"11260:96:11","trueBody":{"id":3479,"nodeType":"Block","src":"11281:75:11","statements":[{"expression":{"id":3473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3471,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11299:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11299:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3474,"nodeType":"ExpressionStatement","src":"11299:12:11"},{"expression":{"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3475,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11329:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11339:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11329:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3478,"nodeType":"ExpressionStatement","src":"11329:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3481,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11373:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11382:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11373:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11387:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11373:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3495,"nodeType":"IfStatement","src":"11369:96:11","trueBody":{"id":3494,"nodeType":"Block","src":"11390:75:11","statements":[{"expression":{"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11408:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11418:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11408:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3489,"nodeType":"ExpressionStatement","src":"11408:12:11"},{"expression":{"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3490,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11438:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11448:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11438:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3493,"nodeType":"ExpressionStatement","src":"11438:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11482:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11491:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11482:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11495:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11482:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3510,"nodeType":"IfStatement","src":"11478:93:11","trueBody":{"id":3509,"nodeType":"Block","src":"11498:73:11","statements":[{"expression":{"id":3503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11516:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11526:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11516:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3504,"nodeType":"ExpressionStatement","src":"11516:11:11"},{"expression":{"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3505,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11545:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11555:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11545:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3508,"nodeType":"ExpressionStatement","src":"11545:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3511,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11588:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11597:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11588:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11601:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11588:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3525,"nodeType":"IfStatement","src":"11584:93:11","trueBody":{"id":3524,"nodeType":"Block","src":"11604:73:11","statements":[{"expression":{"id":3518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11622:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11632:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11622:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3519,"nodeType":"ExpressionStatement","src":"11622:11:11"},{"expression":{"id":3522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3520,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11651:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11651:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3523,"nodeType":"ExpressionStatement","src":"11651:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3526,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11694:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11703:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11694:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11694:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3540,"nodeType":"IfStatement","src":"11690:93:11","trueBody":{"id":3539,"nodeType":"Block","src":"11710:73:11","statements":[{"expression":{"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11728:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11738:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11728:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3534,"nodeType":"ExpressionStatement","src":"11728:11:11"},{"expression":{"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3535,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11757:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11767:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11757:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3538,"nodeType":"ExpressionStatement","src":"11757:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3541,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"11800:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11809:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11800:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11813:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11800:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3551,"nodeType":"IfStatement","src":"11796:64:11","trueBody":{"id":3550,"nodeType":"Block","src":"11816:44:11","statements":[{"expression":{"id":3548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3546,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11834:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11844:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11834:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3549,"nodeType":"ExpressionStatement","src":"11834:11:11"}]}}]},{"expression":{"id":3553,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"11886:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3431,"id":3554,"nodeType":"Return","src":"11879:13:11"}]},"documentation":{"id":3425,"nodeType":"StructuredDocumentation","src":"10798:113:11","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10925:4:11","parameters":{"id":3428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3427,"mutability":"mutable","name":"value","nameLocation":"10938:5:11","nodeType":"VariableDeclaration","scope":3556,"src":"10930:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3426,"name":"uint256","nodeType":"ElementaryTypeName","src":"10930:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10929:15:11"},"returnParameters":{"id":3431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3556,"src":"10968:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3429,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10967:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3592,"nodeType":"FunctionDefinition","src":"12052:245:11","nodes":[],"body":{"id":3591,"nodeType":"Block","src":"12132:165:11","nodes":[],"statements":[{"id":3590,"nodeType":"UncheckedBlock","src":"12142:149:11","statements":[{"assignments":[3568],"declarations":[{"constant":false,"id":3568,"mutability":"mutable","name":"result","nameLocation":"12174:6:11","nodeType":"VariableDeclaration","scope":3590,"src":"12166:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3567,"name":"uint256","nodeType":"ElementaryTypeName","src":"12166:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3572,"initialValue":{"arguments":[{"id":3570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"12188:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3569,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3556,3592],"referencedDeclaration":3556,"src":"12183:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12183:11:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12166:28:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3573,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"12215:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3574,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"12225:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3575,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"12237:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2857_$","typeString":"type(enum Math.Rounding)"}},"id":3576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12246:2:11","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"12237:11:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"src":"12225:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12252:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3579,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"12257:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12252:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3581,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"12266:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12252:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12225:46:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12278:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12225:54:11","trueExpression":{"hexValue":"31","id":3584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12274:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3587,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12224:56:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12215:65:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3566,"id":3589,"nodeType":"Return","src":"12208:72:11"}]}]},"documentation":{"id":3557,"nodeType":"StructuredDocumentation","src":"11905:142:11","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"12061:4:11","parameters":{"id":3563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3559,"mutability":"mutable","name":"value","nameLocation":"12074:5:11","nodeType":"VariableDeclaration","scope":3592,"src":"12066:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3558,"name":"uint256","nodeType":"ElementaryTypeName","src":"12066:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3562,"mutability":"mutable","name":"rounding","nameLocation":"12090:8:11","nodeType":"VariableDeclaration","scope":3592,"src":"12081:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"typeName":{"id":3561,"nodeType":"UserDefinedTypeName","pathNode":{"id":3560,"name":"Rounding","nameLocations":["12081:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"12081:8:11"},"referencedDeclaration":2857,"src":"12081:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12065:34:11"},"returnParameters":{"id":3566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3592,"src":"12123:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3564,"name":"uint256","nodeType":"ElementaryTypeName","src":"12123:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12122:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3721,"nodeType":"FunctionDefinition","src":"12422:916:11","nodes":[],"body":{"id":3720,"nodeType":"Block","src":"12484:854:11","nodes":[],"statements":[{"assignments":[3601],"declarations":[{"constant":false,"id":3601,"mutability":"mutable","name":"result","nameLocation":"12502:6:11","nodeType":"VariableDeclaration","scope":3720,"src":"12494:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3600,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3603,"initialValue":{"hexValue":"30","id":3602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12511:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12494:18:11"},{"id":3717,"nodeType":"UncheckedBlock","src":"12522:787:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12550:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12559:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12565:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12559:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12550:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3620,"nodeType":"IfStatement","src":"12546:103:11","trueBody":{"id":3619,"nodeType":"Block","src":"12569:80:11","statements":[{"expression":{"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3609,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12587:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12596:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12602:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12596:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12587:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3614,"nodeType":"ExpressionStatement","src":"12587:17:11"},{"expression":{"id":3617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3615,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"12622:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12632:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12622:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3618,"nodeType":"ExpressionStatement","src":"12622:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3621,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12666:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12675:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12681:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12675:8:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12666:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3637,"nodeType":"IfStatement","src":"12662:103:11","trueBody":{"id":3636,"nodeType":"Block","src":"12685:80:11","statements":[{"expression":{"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12703:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12712:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12718:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12712:8:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12703:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3631,"nodeType":"ExpressionStatement","src":"12703:17:11"},{"expression":{"id":3634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3632,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"12738:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12748:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12738:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3635,"nodeType":"ExpressionStatement","src":"12738:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3638,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12782:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12791:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12797:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12791:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12782:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3654,"nodeType":"IfStatement","src":"12778:103:11","trueBody":{"id":3653,"nodeType":"Block","src":"12801:80:11","statements":[{"expression":{"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3643,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12819:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12828:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12834:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12828:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12819:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3648,"nodeType":"ExpressionStatement","src":"12819:17:11"},{"expression":{"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3649,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"12854:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12864:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12854:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3652,"nodeType":"ExpressionStatement","src":"12854:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3655,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12898:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12907:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12913:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12907:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12898:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3671,"nodeType":"IfStatement","src":"12894:100:11","trueBody":{"id":3670,"nodeType":"Block","src":"12916:78:11","statements":[{"expression":{"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3660,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"12934:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12943:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12949:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12943:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12934:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3665,"nodeType":"ExpressionStatement","src":"12934:16:11"},{"expression":{"id":3668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3666,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"12968:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12978:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12968:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3669,"nodeType":"ExpressionStatement","src":"12968:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3672,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"13011:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13020:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13026:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13020:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"13011:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3688,"nodeType":"IfStatement","src":"13007:100:11","trueBody":{"id":3687,"nodeType":"Block","src":"13029:78:11","statements":[{"expression":{"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"13047:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13056:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13062:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13056:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"13047:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3682,"nodeType":"ExpressionStatement","src":"13047:16:11"},{"expression":{"id":3685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3683,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"13081:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13091:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13081:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3686,"nodeType":"ExpressionStatement","src":"13081:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"13124:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13133:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13139:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13133:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"13124:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3705,"nodeType":"IfStatement","src":"13120:100:11","trueBody":{"id":3704,"nodeType":"Block","src":"13142:78:11","statements":[{"expression":{"id":3698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"13160:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13169:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13175:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13169:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"13160:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3699,"nodeType":"ExpressionStatement","src":"13160:16:11"},{"expression":{"id":3702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3700,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"13194:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13204:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13194:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3703,"nodeType":"ExpressionStatement","src":"13194:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3706,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"13237:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13246:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13252:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13246:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13237:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3716,"nodeType":"IfStatement","src":"13233:66:11","trueBody":{"id":3715,"nodeType":"Block","src":"13255:44:11","statements":[{"expression":{"id":3713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3711,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"13273:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13283:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13273:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3714,"nodeType":"ExpressionStatement","src":"13273:11:11"}]}}]},{"expression":{"id":3718,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3601,"src":"13325:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3599,"id":3719,"nodeType":"Return","src":"13318:13:11"}]},"documentation":{"id":3593,"nodeType":"StructuredDocumentation","src":"12303:114:11","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12431:5:11","parameters":{"id":3596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3595,"mutability":"mutable","name":"value","nameLocation":"12445:5:11","nodeType":"VariableDeclaration","scope":3721,"src":"12437:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3594,"name":"uint256","nodeType":"ElementaryTypeName","src":"12437:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12436:15:11"},"returnParameters":{"id":3599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3721,"src":"12475:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3597,"name":"uint256","nodeType":"ElementaryTypeName","src":"12475:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12474:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3757,"nodeType":"FunctionDefinition","src":"13492:248:11","nodes":[],"body":{"id":3756,"nodeType":"Block","src":"13573:167:11","nodes":[],"statements":[{"id":3755,"nodeType":"UncheckedBlock","src":"13583:151:11","statements":[{"assignments":[3733],"declarations":[{"constant":false,"id":3733,"mutability":"mutable","name":"result","nameLocation":"13615:6:11","nodeType":"VariableDeclaration","scope":3755,"src":"13607:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3732,"name":"uint256","nodeType":"ElementaryTypeName","src":"13607:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3737,"initialValue":{"arguments":[{"id":3735,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3724,"src":"13630:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3734,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3721,3757],"referencedDeclaration":3721,"src":"13624:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13624:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13607:29:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3738,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"13657:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"id":3742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3739,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"13667:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3740,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"13679:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2857_$","typeString":"type(enum Math.Rounding)"}},"id":3741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13688:2:11","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"13679:11:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"src":"13667:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13694:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3744,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"13700:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13694:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3746,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3724,"src":"13709:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13694:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13667:47:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13721:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13667:55:11","trueExpression":{"hexValue":"31","id":3749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13717:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3752,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13666:57:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13657:66:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3731,"id":3754,"nodeType":"Return","src":"13650:73:11"}]}]},"documentation":{"id":3722,"nodeType":"StructuredDocumentation","src":"13344:143:11","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13501:5:11","parameters":{"id":3728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3724,"mutability":"mutable","name":"value","nameLocation":"13515:5:11","nodeType":"VariableDeclaration","scope":3757,"src":"13507:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3723,"name":"uint256","nodeType":"ElementaryTypeName","src":"13507:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3727,"mutability":"mutable","name":"rounding","nameLocation":"13531:8:11","nodeType":"VariableDeclaration","scope":3757,"src":"13522:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"typeName":{"id":3726,"nodeType":"UserDefinedTypeName","pathNode":{"id":3725,"name":"Rounding","nameLocations":["13522:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"13522:8:11"},"referencedDeclaration":2857,"src":"13522:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13506:34:11"},"returnParameters":{"id":3731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3757,"src":"13564:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3729,"name":"uint256","nodeType":"ElementaryTypeName","src":"13564:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13563:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3844,"nodeType":"FunctionDefinition","src":"13991:663:11","nodes":[],"body":{"id":3843,"nodeType":"Block","src":"14054:600:11","nodes":[],"statements":[{"assignments":[3766],"declarations":[{"constant":false,"id":3766,"mutability":"mutable","name":"result","nameLocation":"14072:6:11","nodeType":"VariableDeclaration","scope":3843,"src":"14064:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3765,"name":"uint256","nodeType":"ElementaryTypeName","src":"14064:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3768,"initialValue":{"hexValue":"30","id":3767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14081:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14064:18:11"},{"id":3840,"nodeType":"UncheckedBlock","src":"14092:533:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3769,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14120:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14129:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"14120:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14135:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14120:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3783,"nodeType":"IfStatement","src":"14116:98:11","trueBody":{"id":3782,"nodeType":"Block","src":"14138:76:11","statements":[{"expression":{"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3774,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14156:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"14156:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3777,"nodeType":"ExpressionStatement","src":"14156:13:11"},{"expression":{"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3778,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14187:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14197:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14187:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3781,"nodeType":"ExpressionStatement","src":"14187:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3784,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14231:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14231:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14245:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14231:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3798,"nodeType":"IfStatement","src":"14227:95:11","trueBody":{"id":3797,"nodeType":"Block","src":"14248:74:11","statements":[{"expression":{"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3789,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14266:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14276:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14266:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3792,"nodeType":"ExpressionStatement","src":"14266:12:11"},{"expression":{"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3793,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14296:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14306:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14296:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3796,"nodeType":"ExpressionStatement","src":"14296:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3799,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14339:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14348:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14339:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14353:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14339:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3813,"nodeType":"IfStatement","src":"14335:95:11","trueBody":{"id":3812,"nodeType":"Block","src":"14356:74:11","statements":[{"expression":{"id":3806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14374:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14384:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14374:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3807,"nodeType":"ExpressionStatement","src":"14374:12:11"},{"expression":{"id":3810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3808,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14404:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14414:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14404:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3811,"nodeType":"ExpressionStatement","src":"14404:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3814,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14447:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14456:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14447:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14461:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14447:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3828,"nodeType":"IfStatement","src":"14443:95:11","trueBody":{"id":3827,"nodeType":"Block","src":"14464:74:11","statements":[{"expression":{"id":3821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3819,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14482:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14492:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14482:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3822,"nodeType":"ExpressionStatement","src":"14482:12:11"},{"expression":{"id":3825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3823,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14512:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14522:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14512:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3826,"nodeType":"ExpressionStatement","src":"14512:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"14555:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14564:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14555:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14568:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14555:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3839,"nodeType":"IfStatement","src":"14551:64:11","trueBody":{"id":3838,"nodeType":"Block","src":"14571:44:11","statements":[{"expression":{"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3834,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14589:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14599:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14589:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3837,"nodeType":"ExpressionStatement","src":"14589:11:11"}]}}]},{"expression":{"id":3841,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14641:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3764,"id":3842,"nodeType":"Return","src":"14634:13:11"}]},"documentation":{"id":3758,"nodeType":"StructuredDocumentation","src":"13746:240:11","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14000:6:11","parameters":{"id":3761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3760,"mutability":"mutable","name":"value","nameLocation":"14015:5:11","nodeType":"VariableDeclaration","scope":3844,"src":"14007:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3759,"name":"uint256","nodeType":"ElementaryTypeName","src":"14007:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14006:15:11"},"returnParameters":{"id":3764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3763,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3844,"src":"14045:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3762,"name":"uint256","nodeType":"ElementaryTypeName","src":"14045:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14044:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3883,"nodeType":"FunctionDefinition","src":"14809:256:11","nodes":[],"body":{"id":3882,"nodeType":"Block","src":"14891:174:11","nodes":[],"statements":[{"id":3881,"nodeType":"UncheckedBlock","src":"14901:158:11","statements":[{"assignments":[3856],"declarations":[{"constant":false,"id":3856,"mutability":"mutable","name":"result","nameLocation":"14933:6:11","nodeType":"VariableDeclaration","scope":3881,"src":"14925:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3855,"name":"uint256","nodeType":"ElementaryTypeName","src":"14925:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3860,"initialValue":{"arguments":[{"id":3858,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"14949:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3857,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3844,3883],"referencedDeclaration":3844,"src":"14942:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14942:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14925:30:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3861,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"14976:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3862,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"14986:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3863,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"14998:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2857_$","typeString":"type(enum Math.Rounding)"}},"id":3864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15007:2:11","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"14998:11:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"src":"14986:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15013:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3867,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"15019:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":3868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15029:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"15019:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3870,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15018:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15013:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3872,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"15034:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15013:26:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14986:53:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15046:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14986:61:11","trueExpression":{"hexValue":"31","id":3875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15042:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14985:63:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14976:72:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3854,"id":3880,"nodeType":"Return","src":"14969:79:11"}]}]},"documentation":{"id":3845,"nodeType":"StructuredDocumentation","src":"14660:144:11","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14818:6:11","parameters":{"id":3851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3847,"mutability":"mutable","name":"value","nameLocation":"14833:5:11","nodeType":"VariableDeclaration","scope":3883,"src":"14825:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3846,"name":"uint256","nodeType":"ElementaryTypeName","src":"14825:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3850,"mutability":"mutable","name":"rounding","nameLocation":"14849:8:11","nodeType":"VariableDeclaration","scope":3883,"src":"14840:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"},"typeName":{"id":3849,"nodeType":"UserDefinedTypeName","pathNode":{"id":3848,"name":"Rounding","nameLocations":["14840:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"14840:8:11"},"referencedDeclaration":2857,"src":"14840:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2857","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14824:34:11"},"returnParameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3883,"src":"14882:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3852,"name":"uint256","nodeType":"ElementaryTypeName","src":"14882:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14881:9:11"},"scope":3884,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2850,"nodeType":"StructuredDocumentation","src":"129:73:11","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[3884],"name":"Math","nameLocation":"211:4:11","scope":3885,"usedErrors":[2853]}],"license":"MIT"},"id":11} \ No newline at end of file diff --git a/contracts/out/NumberContract.sol/NumberContractFacetEight.json b/contracts/out/NumberContract.sol/NumberContractFacetEight.json deleted file mode 100644 index b66abaa7ef..0000000000 --- a/contracts/out/NumberContract.sol/NumberContractFacetEight.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212203bb205d87288b314d5e0ac509bd78528280e2ff25e793137316ed9993d65976264736f6c63430008130033","sourceMap":"188:115:59:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212203bb205d87288b314d5e0ac509bd78528280e2ff25e793137316ed9993d65976264736f6c63430008130033","sourceMap":"188:115:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:1;188:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/NumberContract.sol\":\"NumberContractFacetEight\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/NumberContract.sol\":{\"keccak256\":\"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5\",\"dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/NumberContract.sol":"NumberContractFacetEight"},"libraries":{},"viaIR":true},"sources":{"test/NumberContract.sol":{"keccak256":"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e","urls":["bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5","dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/NumberContract.sol","id":18233,"exportedSymbols":{"NumberContractFacetEight":[18232],"NumberContractFacetSeven":[18223]},"nodeType":"SourceUnit","src":"46:258:59","nodes":[{"id":18214,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":18223,"nodeType":"ContractDefinition","src":"71:115:59","nodes":[{"id":18222,"nodeType":"FunctionDefinition","src":"111:73:59","nodes":[],"body":{"id":18221,"nodeType":"Block","src":"159:25:59","nodes":[],"statements":[{"expression":{"hexValue":"37","id":18219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:59","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":18218,"id":18220,"nodeType":"Return","src":"169:8:59"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:59","parameters":{"id":18215,"nodeType":"ParameterList","parameters":[],"src":"126:2:59"},"returnParameters":{"id":18218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18222,"src":"152:5:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18216,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:59"},"scope":18223,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18223],"name":"NumberContractFacetSeven","nameLocation":"80:24:59","scope":18233,"usedErrors":[]},{"id":18232,"nodeType":"ContractDefinition","src":"188:115:59","nodes":[{"id":18231,"nodeType":"FunctionDefinition","src":"228:73:59","nodes":[],"body":{"id":18230,"nodeType":"Block","src":"276:25:59","nodes":[],"statements":[{"expression":{"hexValue":"38","id":18228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293:1:59","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":18227,"id":18229,"nodeType":"Return","src":"286:8:59"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"237:6:59","parameters":{"id":18224,"nodeType":"ParameterList","parameters":[],"src":"243:2:59"},"returnParameters":{"id":18227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18231,"src":"269:5:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18225,"name":"uint8","nodeType":"ElementaryTypeName","src":"269:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"268:7:59"},"scope":18232,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18232],"name":"NumberContractFacetEight","nameLocation":"197:24:59","scope":18233,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file diff --git a/contracts/out/NumberContract.sol/NumberContractFacetSeven.json b/contracts/out/NumberContract.sol/NumberContractFacetSeven.json deleted file mode 100644 index 9c0937a010..0000000000 --- a/contracts/out/NumberContract.sol/NumberContractFacetSeven.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea26469706673582212200bd9a4b025da911f10fd7ae784d659859c1abeadf558d4b5d595e64e5ca7e03264736f6c63430008130033","sourceMap":"71:115:59:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea26469706673582212200bd9a4b025da911f10fd7ae784d659859c1abeadf558d4b5d595e64e5ca7e03264736f6c63430008130033","sourceMap":"71:115:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/NumberContract.sol\":\"NumberContractFacetSeven\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/NumberContract.sol\":{\"keccak256\":\"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5\",\"dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/NumberContract.sol":"NumberContractFacetSeven"},"libraries":{},"viaIR":true},"sources":{"test/NumberContract.sol":{"keccak256":"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e","urls":["bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5","dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/NumberContract.sol","id":18233,"exportedSymbols":{"NumberContractFacetEight":[18232],"NumberContractFacetSeven":[18223]},"nodeType":"SourceUnit","src":"46:258:59","nodes":[{"id":18214,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":18223,"nodeType":"ContractDefinition","src":"71:115:59","nodes":[{"id":18222,"nodeType":"FunctionDefinition","src":"111:73:59","nodes":[],"body":{"id":18221,"nodeType":"Block","src":"159:25:59","nodes":[],"statements":[{"expression":{"hexValue":"37","id":18219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:59","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":18218,"id":18220,"nodeType":"Return","src":"169:8:59"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:59","parameters":{"id":18215,"nodeType":"ParameterList","parameters":[],"src":"126:2:59"},"returnParameters":{"id":18218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18222,"src":"152:5:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18216,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:59"},"scope":18223,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18223],"name":"NumberContractFacetSeven","nameLocation":"80:24:59","scope":18233,"usedErrors":[]},{"id":18232,"nodeType":"ContractDefinition","src":"188:115:59","nodes":[{"id":18231,"nodeType":"FunctionDefinition","src":"228:73:59","nodes":[],"body":{"id":18230,"nodeType":"Block","src":"276:25:59","nodes":[],"statements":[{"expression":{"hexValue":"38","id":18228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293:1:59","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":18227,"id":18229,"nodeType":"Return","src":"286:8:59"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"237:6:59","parameters":{"id":18224,"nodeType":"ParameterList","parameters":[],"src":"243:2:59"},"returnParameters":{"id":18227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18231,"src":"269:5:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18225,"name":"uint8","nodeType":"ElementaryTypeName","src":"269:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"268:7:59"},"scope":18232,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18232],"name":"NumberContractFacetEight","nameLocation":"197:24:59","scope":18233,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file diff --git a/contracts/out/Ownable.sol/Ownable.json b/contracts/out/Ownable.sol/Ownable.json deleted file mode 100644 index 20e409dd0e..0000000000 --- a/contracts/out/Ownable.sol/Ownable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","id":431,"exportedSymbols":{"Context":[1647],"Ownable":[430]},"nodeType":"SourceUnit","src":"102:2864:1","nodes":[{"id":300,"nodeType":"PragmaDirective","src":"102:24:1","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":301,"nodeType":"ImportDirective","src":"128:30:1","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":431,"sourceUnit":1648,"symbolAliases":[],"unitAlias":""},{"id":430,"nodeType":"ContractDefinition","src":"655:2310:1","nodes":[{"id":306,"nodeType":"VariableDeclaration","src":"698:22:1","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"714:6:1","scope":430,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":305,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":311,"nodeType":"ErrorDefinition","src":"817:50:1","nodes":[],"documentation":{"id":307,"nodeType":"StructuredDocumentation","src":"727:85:1","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","name":"OwnableUnauthorizedAccount","nameLocation":"823:26:1","parameters":{"id":310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":309,"mutability":"mutable","name":"account","nameLocation":"858:7:1","nodeType":"VariableDeclaration","scope":311,"src":"850:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":308,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:1"}},{"id":316,"nodeType":"ErrorDefinition","src":"960:41:1","nodes":[],"documentation":{"id":312,"nodeType":"StructuredDocumentation","src":"873:82:1","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","name":"OwnableInvalidOwner","nameLocation":"966:19:1","parameters":{"id":315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":314,"mutability":"mutable","name":"owner","nameLocation":"994:5:1","nodeType":"VariableDeclaration","scope":316,"src":"986:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":313,"name":"address","nodeType":"ElementaryTypeName","src":"986:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"985:15:1"}},{"id":322,"nodeType":"EventDefinition","src":"1007:84:1","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"1013:20:1","parameters":{"id":321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":318,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1050:13:1","nodeType":"VariableDeclaration","scope":322,"src":"1034:29:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":317,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":320,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1081:8:1","nodeType":"VariableDeclaration","scope":322,"src":"1065:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":319,"name":"address","nodeType":"ElementaryTypeName","src":"1065:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:57:1"}},{"id":333,"nodeType":"FunctionDefinition","src":"1193:83:1","nodes":[],"body":{"id":332,"nodeType":"Block","src":"1227:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":329,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"1256:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":328,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"1237:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":331,"nodeType":"ExpressionStatement","src":"1237:32:1"}]},"documentation":{"id":323,"nodeType":"StructuredDocumentation","src":"1097:91:1","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":325,"mutability":"mutable","name":"initialOwner","nameLocation":"1213:12:1","nodeType":"VariableDeclaration","scope":333,"src":"1205:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":324,"name":"address","nodeType":"ElementaryTypeName","src":"1205:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1204:22:1"},"returnParameters":{"id":327,"nodeType":"ParameterList","parameters":[],"src":"1227:0:1"},"scope":430,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":341,"nodeType":"ModifierDefinition","src":"1364:62:1","nodes":[],"body":{"id":340,"nodeType":"Block","src":"1385:41:1","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":336,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"1395:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1395:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":338,"nodeType":"ExpressionStatement","src":"1395:13:1"},{"id":339,"nodeType":"PlaceholderStatement","src":"1418:1:1"}]},"documentation":{"id":334,"nodeType":"StructuredDocumentation","src":"1282:77:1","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1373:9:1","parameters":{"id":335,"nodeType":"ParameterList","parameters":[],"src":"1382:2:1"},"virtual":false,"visibility":"internal"},{"id":350,"nodeType":"FunctionDefinition","src":"1502:85:1","nodes":[],"body":{"id":349,"nodeType":"Block","src":"1557:30:1","nodes":[],"statements":[{"expression":{"id":347,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":306,"src":"1574:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":346,"id":348,"nodeType":"Return","src":"1567:13:1"}]},"documentation":{"id":342,"nodeType":"StructuredDocumentation","src":"1432:65:1","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1511:5:1","parameters":{"id":343,"nodeType":"ParameterList","parameters":[],"src":"1516:2:1"},"returnParameters":{"id":346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":350,"src":"1548:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":344,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1547:9:1"},"scope":430,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":367,"nodeType":"FunctionDefinition","src":"1660:162:1","nodes":[],"body":{"id":366,"nodeType":"Block","src":"1705:117:1","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":354,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":350,"src":"1719:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:7:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":356,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"1730:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1719:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":365,"nodeType":"IfStatement","src":"1715:101:1","trueBody":{"id":364,"nodeType":"Block","src":"1744:72:1","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":360,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"1792:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":359,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":311,"src":"1765:26:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":363,"nodeType":"RevertStatement","src":"1758:47:1"}]}}]},"documentation":{"id":351,"nodeType":"StructuredDocumentation","src":"1593:62:1","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1669:11:1","parameters":{"id":352,"nodeType":"ParameterList","parameters":[],"src":"1680:2:1"},"returnParameters":{"id":353,"nodeType":"ParameterList","parameters":[],"src":"1705:0:1"},"scope":430,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":381,"nodeType":"FunctionDefinition","src":"2157:101:1","nodes":[],"body":{"id":380,"nodeType":"Block","src":"2211:47:1","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2248:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2240:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":374,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:1","typeDescriptions":{}}},"id":377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2240:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":373,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"2221:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":379,"nodeType":"ExpressionStatement","src":"2221:30:1"}]},"documentation":{"id":368,"nodeType":"StructuredDocumentation","src":"1828:324:1","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":371,"kind":"modifierInvocation","modifierName":{"id":370,"name":"onlyOwner","nameLocations":["2201:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":341,"src":"2201:9:1"},"nodeType":"ModifierInvocation","src":"2201:9:1"}],"name":"renounceOwnership","nameLocation":"2166:17:1","parameters":{"id":369,"nodeType":"ParameterList","parameters":[],"src":"2183:2:1"},"returnParameters":{"id":372,"nodeType":"ParameterList","parameters":[],"src":"2211:0:1"},"scope":430,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":409,"nodeType":"FunctionDefinition","src":"2407:215:1","nodes":[],"body":{"id":408,"nodeType":"Block","src":"2477:145:1","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":389,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"2491:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2511:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2503:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":390,"name":"address","nodeType":"ElementaryTypeName","src":"2503:7:1","typeDescriptions":{}}},"id":393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2491:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":403,"nodeType":"IfStatement","src":"2487:91:1","trueBody":{"id":402,"nodeType":"Block","src":"2515:63:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2564:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":396,"name":"address","nodeType":"ElementaryTypeName","src":"2556:7:1","typeDescriptions":{}}},"id":399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":395,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"2536:19:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":401,"nodeType":"RevertStatement","src":"2529:38:1"}]}},{"expression":{"arguments":[{"id":405,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"2606:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":404,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"2587:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":407,"nodeType":"ExpressionStatement","src":"2587:28:1"}]},"documentation":{"id":382,"nodeType":"StructuredDocumentation","src":"2264:138:1","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":387,"kind":"modifierInvocation","modifierName":{"id":386,"name":"onlyOwner","nameLocations":["2467:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":341,"src":"2467:9:1"},"nodeType":"ModifierInvocation","src":"2467:9:1"}],"name":"transferOwnership","nameLocation":"2416:17:1","parameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"newOwner","nameLocation":"2442:8:1","nodeType":"VariableDeclaration","scope":409,"src":"2434:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"2434:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2433:18:1"},"returnParameters":{"id":388,"nodeType":"ParameterList","parameters":[],"src":"2477:0:1"},"scope":430,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":429,"nodeType":"FunctionDefinition","src":"2776:187:1","nodes":[],"body":{"id":428,"nodeType":"Block","src":"2839:124:1","nodes":[],"statements":[{"assignments":[416],"declarations":[{"constant":false,"id":416,"mutability":"mutable","name":"oldOwner","nameLocation":"2857:8:1","nodeType":"VariableDeclaration","scope":428,"src":"2849:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":415,"name":"address","nodeType":"ElementaryTypeName","src":"2849:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":418,"initialValue":{"id":417,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":306,"src":"2868:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2849:25:1"},{"expression":{"id":421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":419,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":306,"src":"2884:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":420,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"2893:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2884:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":422,"nodeType":"ExpressionStatement","src":"2884:17:1"},{"eventCall":{"arguments":[{"id":424,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"2937:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":425,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"2947:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":423,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":322,"src":"2916:20:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":427,"nodeType":"EmitStatement","src":"2911:45:1"}]},"documentation":{"id":410,"nodeType":"StructuredDocumentation","src":"2628:143:1","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2785:18:1","parameters":{"id":413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":412,"mutability":"mutable","name":"newOwner","nameLocation":"2812:8:1","nodeType":"VariableDeclaration","scope":429,"src":"2804:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":411,"name":"address","nodeType":"ElementaryTypeName","src":"2804:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2803:18:1"},"returnParameters":{"id":414,"nodeType":"ParameterList","parameters":[],"src":"2839:0:1"},"scope":430,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":303,"name":"Context","nameLocations":["684:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":1647,"src":"684:7:1"},"id":304,"nodeType":"InheritanceSpecifier","src":"684:7:1"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":302,"nodeType":"StructuredDocumentation","src":"160:494:1","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[430,1647],"name":"Ownable","nameLocation":"673:7:1","scope":431,"usedErrors":[311,316]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/contracts/out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json b/contracts/out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json deleted file mode 100644 index 6dc953ac7b..0000000000 --- a/contracts/out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"newSubnetActor","inputs":[{"name":"_params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissioned","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"subnetAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"event","name":"SubnetDeployed","inputs":[{"name":"subnetAddr","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"WrongGateway","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611c99908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c63a04962a0146200002a57600080fd5b34620005c557600319602036820112620005c5576001600160401b0360043511620005c5576101609060043536030112620005c55760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620008e25760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b03811690819003620005c5576000546001600160a01b031603620008d057604051620000e781620008f1565b6002815260005b60408110620008a15750600154604051906001600160a01b03166200011382620008f1565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200082c57620001b794549181811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f7575b818110620006d9575b10620006c3575b5003826200090d565b6040820152620001c7826200092f565b52620001d3816200092f565b50600254604051906001600160a01b0316620001ef82620008f1565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007b7576200028b94549181811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f757818110620006d95710620006c3575003826200090d565b60408201526200029b8262000953565b52620002a78162000953565b5060405190816112d58101106001600160401b036112d584011117620006ad576112d56200098f833960406112d5830181815282519181018290526060600583901b82018101936020019291600091015b828210620005f75785856112d58201810360206112d58401015260043560040135604219600435360301811215620005c5576004350161016082526001600160401b03620003496004830162000964565b16610160830152602481013560221982360301811215620005c557016001600160401b03600482013511620005c557600481013560051b36036024820113620005c557604061018083015260048101356101a08301526101c0820190602481019060005b60048201358110620005ca57506001600160a01b039150620003d6905060043560240162000979565b166020830152604460043501356001811015620005c55760408301526064600435013560608301526001600160401b036200041660846004350162000964565b1660808301526001600160401b036200043460a46004350162000964565b1660a083015260c4600435013560ff8116809103620005c55760c083015260e4600435013561ffff8116809103620005c55760e0830152610104600435013561010083015261012460043501358060000b809103620005c5576101208301526101446004350135801515809103620005c5576101408493015203906000f08015620005b95760018060a01b0316336000526005602052604060002060066020526001600160401b03604060002054166000526020526040600020816bffffffffffffffffffffffff60a01b8254161790553360005260066020526040600020908154916001600160401b038316926001600160401b038414620005a3576001600160401b0360016020950116906001600160401b0319161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b03620005e68962000979565b1681520195019392019050620003ad565b6112d586018503605f19018152835180516001600160a01b031686526020810151949593949293919290600382101562000697576040916020840152015190606060408201526020608060608301928451809452019201906000905b8082106200067357505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000653565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008b281620008f1565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006ad57604052565b90601f801991011681019081106001600160401b03821117620006ad57604052565b8051156200093d5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200093d5760400190565b35906001600160401b0382168203620005c557565b35906001600160a01b0382168203620005c55756fe60808060405234610625576112d5803803809161001c8285610f25565b83398101906040818303126106255780516001600160401b03811161062557810182601f8201121561062557805161005381610f48565b916100616040519384610f25565b818352602083016020819360051b830101918683116106255760208101915b838310610de657505050506020830151926001600160401b038411610625576101609485858301820312610625576040519586016001600160401b038111878210176107235760405281850151906001600160401b038211610625576100e99186840101610f87565b85526100f9602085830101610f5f565b9081602087015260408582010151600181101561062557604087015260608582010151606087015261012f608086830101610f73565b608087015261014260a086830101610f73565b60a087015260c0858201015160ff811681036106255760c087015260e0858201015161ffff811681036106255760e087015261010094858183010151868801526101208183010151918260000b830361062557610140926101208901520101518015158103610625576101408601526001600160a01b031615610dd45760a08401516001600160401b031615610dc257606084015115610db05760ff60c08501511660338110908115610da5575b50610d9357601261012085015160000b13610d81577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b036020820190811190821117610723576020810160405260008152825160005b81811061078e5750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106107395788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102d38b8b6000602085015283820360408501526110fa565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116909117905582518051600b80546001600160401b0319166001600160401b0392831617905591015180519182116107235768010000000000000000821161072357600c5482600c558083106106dc575b50602001600c600052602060002060005b8381106106bf57858560018060a01b0360208301511660095490604084015160018110156106a95760ff8019600d5416911617600d556060840151600655608084015160075460018060401b0360a0870151169168010000000000000000600160801b039060401b169060018060801b031916171760075560ff60a01b60c085015160a01b169160018060a81b031916171760095561012082015160ff19601b54169060ff1617601b55810151600a556040516104a481610eef565b600b546001600160401b03168152604051600c805480835260009182527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c791839160208301915b81811061068757505061050092500382610f25565b6020820152610542600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b835260406004840152604483019061102a565b3060248301520381855af49081156106325760009161063e575b506020906105869260405180809581946390ba52cf60e01b8352866004840152602483019061102a565b03915af4908115610632576000916105f9575b61ffff60e08484600855610140810151151562ff0000600d549160101b169062ff0000191617600d5501511661ffff19600e541617600e556801000000000000000160018060801b0319601754161760175560405160eb90816111aa8239f35b90506020813d60201161062a575b8161061460209383610f25565b81010312610625575161ffff610599565b600080fd5b3d9150610607565b6040513d6000823e3d90fd5b90503d806000833e6106508183610f25565b810191602082840312610625578151916001600160401b038311610625576105869360209361067f9201610f87565b91509161055c565b84546001600160a01b03168352600194850194869450602090930192016104eb565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b0316818301556020909201916001016103e8565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b81830181106107175750506103d7565b60008155600101610707565b634e487b7160e01b600052604160045260246000fd5b90919294602080610780600193607f198b8203018652606060408b51878060a01b03815116845261077086820151878601906110af565b01519181604082015201906110bc565b97019201920190929161028e565b604061079a8287611085565b5101516001600160a01b036107af8388611085565b51511690805115610d685760206107c68489611085565b51015160038110156106a957806109d4575081156109ab5761ffff60008051602061129583398151915254169161083c60405161080281610f0a565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528261116a565b8151916000935b8385106108595750505050506001905b01610260565b6001600160e01b031961086c8684611085565b511660008181526000805160206112b583398151915260205260409020546001600160a01b0316610993576109026040516108a681610eef565b85815261ffff8416602080830191825260008581526000805160206112b5833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206112958339815191525490680100000000000000008210156107235761094482600161096194016000805160206112958339815191525561113a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff8082161461097d57600161ffff81921601940193610843565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b8152602060048201529081906109d09060248301906110bc565b0390fd5b60018103610b3b57508115610b1657610a336040516109f281610f0a565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528361116a565b80519060005b828110610a4c5750505050600190610853565b6001600160e01b0319610a5f8284611085565b511660008181526000805160206112b583398151915260205260409020546001600160a01b0316308114610afd57858114610ae45715610acc5760009081526000805160206112b58339815191526020526040902080546001600160a01b03191685179055600101610a39565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906109d09060248301906110bc565b60028103610d485750600080516020611295833981519152549180610d30575080519060005b828110610b745750505050600190610853565b6001600160e01b0319610b878284611085565b511690816000526000805160206112b583398151915260205260406000209460405195610bb387610eef565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d175785516001600160a01b03163014610cfe57801561097d576000190180958161ffff60208301511603610c83575b505060008051602061129583398151915254918215610c6d5760019260001901610c2b8161113a565b63ffffffff82549160031b1b19169055600080516020611295833981519152556000526000805160206112b58339815191526020526000604081205501610b61565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610c94610cf79461113a565b90549060031b1c60e01b92610cb18461094485858501511661113a565b01516001600160e01b031990921660009081526000805160206112b583398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c02565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610d669060048301906110af565bfd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b6064915011386101f0565b6040516368f7a67560e11b8152600490fd5b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161062557820160609081601f19828c03011261062557604051918083016001600160401b03811184821017610eda57604052610e3060208301610f5f565b835260408201516003811015610625576020840152810151906001600160401b038211610625570189603f82011215610625576020810151610e7181610f48565b91610e7f6040519384610f25565b8183526040602084019260051b820101908c821161062557604001915b818310610eb9575050506040820152815260209283019201610080565b82516001600160e01b03198116810361062557815260209283019201610e9c565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761072357604052565b606081019081106001600160401b0382111761072357604052565b601f909101601f19168101906001600160401b0382119082101761072357604052565b6001600160401b0381116107235760051b60200190565b51906001600160a01b038216820361062557565b51906001600160401b038216820361062557565b91906040838203126106255760405192610fa084610eef565b83610faa82610f73565b815260208281015190926001600160401b03821161062557019280601f85011215610625578351610fda81610f48565b94610fe86040519687610f25565b818652848087019260051b8201019283116106255784809101915b83831061101257505050500152565b819061101d84610f5f565b8152019101908490611003565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611068575050505090565b83516001600160a01b03168552938101939281019260010161105a565b80518210156110995760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060038210156106a95752565b90815180825260208080930193019160005b8281106110dc575050505090565b83516001600160e01b031916855293810193928101926001016110ce565b919082519283825260005b848110611126575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611105565b90600080516020611295833981519152805483101561109957600052601c60206000208360031c019260021b1690565b803b15611175575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906109d09060448301906110fa56fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b6009546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea2646970667358221220ec20f929aae89bd8727781024068fc2fa75d70b908b2febe6a0020f035e660b664736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204fb0c7254782af53e527386658265e77e0bf437fe26541c89643dd4eca632cc264736f6c63430008130033","sourceMap":"385:1477:56:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3767,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b60003560e01c63a04962a0146200002a57600080fd5b34620005c557600319602036820112620005c5576001600160401b0360043511620005c5576101609060043536030112620005c55760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620008e25760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b03811690819003620005c5576000546001600160a01b031603620008d057604051620000e781620008f1565b6002815260005b60408110620008a15750600154604051906001600160a01b03166200011382620008f1565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200082c57620001b794549181811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f7575b818110620006d9575b10620006c3575b5003826200090d565b6040820152620001c7826200092f565b52620001d3816200092f565b50600254604051906001600160a01b0316620001ef82620008f1565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007b7576200028b94549181811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f757818110620006d95710620006c3575003826200090d565b60408201526200029b8262000953565b52620002a78162000953565b5060405190816112d58101106001600160401b036112d584011117620006ad576112d56200098f833960406112d5830181815282519181018290526060600583901b82018101936020019291600091015b828210620005f75785856112d58201810360206112d58401015260043560040135604219600435360301811215620005c5576004350161016082526001600160401b03620003496004830162000964565b16610160830152602481013560221982360301811215620005c557016001600160401b03600482013511620005c557600481013560051b36036024820113620005c557604061018083015260048101356101a08301526101c0820190602481019060005b60048201358110620005ca57506001600160a01b039150620003d6905060043560240162000979565b166020830152604460043501356001811015620005c55760408301526064600435013560608301526001600160401b036200041660846004350162000964565b1660808301526001600160401b036200043460a46004350162000964565b1660a083015260c4600435013560ff8116809103620005c55760c083015260e4600435013561ffff8116809103620005c55760e0830152610104600435013561010083015261012460043501358060000b809103620005c5576101208301526101446004350135801515809103620005c5576101408493015203906000f08015620005b95760018060a01b0316336000526005602052604060002060066020526001600160401b03604060002054166000526020526040600020816bffffffffffffffffffffffff60a01b8254161790553360005260066020526040600020908154916001600160401b038316926001600160401b038414620005a3576001600160401b0360016020950116906001600160401b0319161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b03620005e68962000979565b1681520195019392019050620003ad565b6112d586018503605f19018152835180516001600160a01b031686526020810151949593949293919290600382101562000697576040916020840152015190606060408201526020608060608301928451809452019201906000905b8082106200067357505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000653565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008b281620008f1565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006ad57604052565b90601f801991011681019081106001600160401b03821117620006ad57604052565b8051156200093d5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200093d5760400190565b35906001600160401b0382168203620005c557565b35906001600160a01b0382168203620005c55756fe60808060405234610625576112d5803803809161001c8285610f25565b83398101906040818303126106255780516001600160401b03811161062557810182601f8201121561062557805161005381610f48565b916100616040519384610f25565b818352602083016020819360051b830101918683116106255760208101915b838310610de657505050506020830151926001600160401b038411610625576101609485858301820312610625576040519586016001600160401b038111878210176107235760405281850151906001600160401b038211610625576100e99186840101610f87565b85526100f9602085830101610f5f565b9081602087015260408582010151600181101561062557604087015260608582010151606087015261012f608086830101610f73565b608087015261014260a086830101610f73565b60a087015260c0858201015160ff811681036106255760c087015260e0858201015161ffff811681036106255760e087015261010094858183010151868801526101208183010151918260000b830361062557610140926101208901520101518015158103610625576101408601526001600160a01b031615610dd45760a08401516001600160401b031615610dc257606084015115610db05760ff60c08501511660338110908115610da5575b50610d9357601261012085015160000b13610d81577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b036020820190811190821117610723576020810160405260008152825160005b81811061078e5750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106107395788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102d38b8b6000602085015283820360408501526110fa565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116909117905582518051600b80546001600160401b0319166001600160401b0392831617905591015180519182116107235768010000000000000000821161072357600c5482600c558083106106dc575b50602001600c600052602060002060005b8381106106bf57858560018060a01b0360208301511660095490604084015160018110156106a95760ff8019600d5416911617600d556060840151600655608084015160075460018060401b0360a0870151169168010000000000000000600160801b039060401b169060018060801b031916171760075560ff60a01b60c085015160a01b169160018060a81b031916171760095561012082015160ff19601b54169060ff1617601b55810151600a556040516104a481610eef565b600b546001600160401b03168152604051600c805480835260009182527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c791839160208301915b81811061068757505061050092500382610f25565b6020820152610542600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b835260406004840152604483019061102a565b3060248301520381855af49081156106325760009161063e575b506020906105869260405180809581946390ba52cf60e01b8352866004840152602483019061102a565b03915af4908115610632576000916105f9575b61ffff60e08484600855610140810151151562ff0000600d549160101b169062ff0000191617600d5501511661ffff19600e541617600e556801000000000000000160018060801b0319601754161760175560405160eb90816111aa8239f35b90506020813d60201161062a575b8161061460209383610f25565b81010312610625575161ffff610599565b600080fd5b3d9150610607565b6040513d6000823e3d90fd5b90503d806000833e6106508183610f25565b810191602082840312610625578151916001600160401b038311610625576105869360209361067f9201610f87565b91509161055c565b84546001600160a01b03168352600194850194869450602090930192016104eb565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b0316818301556020909201916001016103e8565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b81830181106107175750506103d7565b60008155600101610707565b634e487b7160e01b600052604160045260246000fd5b90919294602080610780600193607f198b8203018652606060408b51878060a01b03815116845261077086820151878601906110af565b01519181604082015201906110bc565b97019201920190929161028e565b604061079a8287611085565b5101516001600160a01b036107af8388611085565b51511690805115610d685760206107c68489611085565b51015160038110156106a957806109d4575081156109ab5761ffff60008051602061129583398151915254169161083c60405161080281610f0a565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528261116a565b8151916000935b8385106108595750505050506001905b01610260565b6001600160e01b031961086c8684611085565b511660008181526000805160206112b583398151915260205260409020546001600160a01b0316610993576109026040516108a681610eef565b85815261ffff8416602080830191825260008581526000805160206112b5833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206112958339815191525490680100000000000000008210156107235761094482600161096194016000805160206112958339815191525561113a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff8082161461097d57600161ffff81921601940193610843565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b8152602060048201529081906109d09060248301906110bc565b0390fd5b60018103610b3b57508115610b1657610a336040516109f281610f0a565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528361116a565b80519060005b828110610a4c5750505050600190610853565b6001600160e01b0319610a5f8284611085565b511660008181526000805160206112b583398151915260205260409020546001600160a01b0316308114610afd57858114610ae45715610acc5760009081526000805160206112b58339815191526020526040902080546001600160a01b03191685179055600101610a39565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906109d09060248301906110bc565b60028103610d485750600080516020611295833981519152549180610d30575080519060005b828110610b745750505050600190610853565b6001600160e01b0319610b878284611085565b511690816000526000805160206112b583398151915260205260406000209460405195610bb387610eef565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d175785516001600160a01b03163014610cfe57801561097d576000190180958161ffff60208301511603610c83575b505060008051602061129583398151915254918215610c6d5760019260001901610c2b8161113a565b63ffffffff82549160031b1b19169055600080516020611295833981519152556000526000805160206112b58339815191526020526000604081205501610b61565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610c94610cf79461113a565b90549060031b1c60e01b92610cb18461094485858501511661113a565b01516001600160e01b031990921660009081526000805160206112b583398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c02565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610d669060048301906110af565bfd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b6064915011386101f0565b6040516368f7a67560e11b8152600490fd5b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161062557820160609081601f19828c03011261062557604051918083016001600160401b03811184821017610eda57604052610e3060208301610f5f565b835260408201516003811015610625576020840152810151906001600160401b038211610625570189603f82011215610625576020810151610e7181610f48565b91610e7f6040519384610f25565b8183526040602084019260051b820101908c821161062557604001915b818310610eb9575050506040820152815260209283019201610080565b82516001600160e01b03198116810361062557815260209283019201610e9c565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761072357604052565b606081019081106001600160401b0382111761072357604052565b601f909101601f19168101906001600160401b0382119082101761072357604052565b6001600160401b0381116107235760051b60200190565b51906001600160a01b038216820361062557565b51906001600160401b038216820361062557565b91906040838203126106255760405192610fa084610eef565b83610faa82610f73565b815260208281015190926001600160401b03821161062557019280601f85011215610625578351610fda81610f48565b94610fe86040519687610f25565b818652848087019260051b8201019283116106255784809101915b83831061101257505050500152565b819061101d84610f5f565b8152019101908490611003565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611068575050505090565b83516001600160a01b03168552938101939281019260010161105a565b80518210156110995760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060038210156106a95752565b90815180825260208080930193019160005b8281106110dc575050505090565b83516001600160e01b031916855293810193928101926001016110ce565b919082519283825260005b848110611126575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611105565b90600080516020611295833981519152805483101561109957600052601c60206000208360031c019260021b1690565b803b15611175575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906109d09060448301906110fa56fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b6009546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea2646970667358221220ec20f929aae89bd8727781024068fc2fa75d70b908b2febe6a0020f035e660b664736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204fb0c7254782af53e527386658265e77e0bf437fe26541c89643dd4eca632cc264736f6c63430008130033","sourceMap":"385:1477:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1477:56;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;;;;;;;;;;477:1:41;247:48;385:1477:56;582:20:41;578:50;;477:1;247:48;477:1;865:22:56;385:1477;;865:22;385:1477;-1:-1:-1;;;;;385:1477:56;;;;;;;;;;-1:-1:-1;;;;;385:1477:56;865:35;861:87;;385:1477;;;;;:::i;:::-;1022:1;385:1477;;;;;;;;;-1:-1:-1;385:1477:56;;;;;-1:-1:-1;;;;;385:1477:56;;;;:::i;:::-;;;;;1100:183;;385:1477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1100:183;;385:1477;1084:199;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1022:1:56;385:1477;;;;-1:-1:-1;;;;;385:1477:56;;;;:::i;:::-;;;;;1360:185;;385:1477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1360:185;;385:1477;1344:201;;;:::i;:::-;;;;;:::i;:::-;;385:1477;;1632:43;;;;;;-1:-1:-1;;;;;1632:43:56;;;;;;;;;;;385:1477;1632:43;;;385:1477;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1477:56;;;;;;;1632:43;;;;;385:1477;;;1632:43;;;385:1477;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;:::i;:::-;;;;;;865:22;385:1477;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;;;;;;;;;;865:22;385:1477;;;;;;;;;;;;;;;;;;;;;;865:22;385:1477;;;-1:-1:-1;385:1477:56;;;;;;;;;-1:-1:-1;;;;;;385:1477:56;-1:-1:-1;385:1477:56;;-1:-1:-1;385:1477:56;;865:22;;385:1477;:::i;:::-;;;;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:43;;385:1477;1632:43;;;;;385:1477;;;;;;1697:10;385:1477;;;;;;;;1709:12;385:1477;;-1:-1:-1;;;;;385:1477:56;;;;;;;;;;;;;;;;;;;;;;1697:10;385:1477;;1709:12;385:1477;;;;;;;;;-1:-1:-1;;;;;385:1477:56;;;-1:-1:-1;;;;;385:1477:56;;;;-1:-1:-1;;;;;477:1:41;385:1477:56;;;;;-1:-1:-1;;;;;385:1477:56;;;;;1799:26;385:1477;;;;;;1799:26;385:1477;247:48:41;477:1;385:1477:56;;;;;;;;;;;;;;;865:22;385:1477;;1632:43;385:1477;;;;;;;;;;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;385:1477:56;;;1632:43;;;385:1477;;-1:-1:-1;;385:1477:56;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;;;;;;865:22;385:1477;;1632:43;385:1477;;;;;;;;865:22;385:1477;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;477:1:41;385:1477:56;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;477:1:41;385:1477:56;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;477:1:41;385:1477:56;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;477:1:41;385:1477:56;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;477:1:41;385:1477:56;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;477:1:41;385:1477:56;;;;;;;;-1:-1:-1;;;;;;385:1477:56;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;385:1477:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;861:87;385:1477;;-1:-1:-1;;;923:14:56;;385:1477;;923:14;578:50:41;-1:-1:-1;;;611:17:41;;385:1477:56;;611:17:41;385:1477:56;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;385:1477:56;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;477:1:41;385:1477:56;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1477:56;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1477:56;;;;;;:::o","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3739,"length":20}]}}},"methodIdentifiers":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,bool))":"a04962a0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"bool\",\"name\":\"permissioned\",\"type\":\"bool\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,bool))\":{\"params\":{\"_params\":\"The constructor params for Subnet Actor Diamond.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,bool))\":{\"notice\":\"Deploys a new subnet actor.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/RegisterSubnetFacet.sol\":\"RegisterSubnetFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x7626ac21fea0b16241edbde8233650b8c7cc4e0faf7ac0f34f7cadf1db03a4fd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://535bd318976c3d4c9a1df5af71a70e47df7021acdc54909de919b16b61fe250b\",\"dweb:/ipfs/QmShbYA6XA4sXFs7QvTAsCcdYmKq1DCLBBgZ7oGKu4pYsC\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0xf4b823b6368412fd90eaf5de6bc8a2adf84c21a327baa09709d09ec100403c00\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://28ebd8d9e85542f75624da7bd22e392d7878936917997a3afaaa7b87edcd51f9\",\"dweb:/ipfs/QmbdhTPik3huinKLx1AMPhhbzV3omi64HoJKTfXYnaDJ7U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"WrongGateway"},{"inputs":[{"internalType":"address","name":"subnetAddr","type":"address","indexed":false}],"type":"event","name":"SubnetDeployed","anonymous":false},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"_params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"bool","name":"permissioned","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"newSubnetActor","outputs":[{"internalType":"address","name":"subnetAddr","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,bool))":{"params":{"_params":"The constructor params for Subnet Actor Diamond."}}},"version":1},"userdoc":{"kind":"user","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,bool))":{"notice":"Deploys a new subnet actor."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/RegisterSubnetFacet.sol":"RegisterSubnetFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x7626ac21fea0b16241edbde8233650b8c7cc4e0faf7ac0f34f7cadf1db03a4fd","urls":["bzz-raw://535bd318976c3d4c9a1df5af71a70e47df7021acdc54909de919b16b61fe250b","dweb:/ipfs/QmShbYA6XA4sXFs7QvTAsCcdYmKq1DCLBBgZ7oGKu4pYsC"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0xf4b823b6368412fd90eaf5de6bc8a2adf84c21a327baa09709d09ec100403c00","urls":["bzz-raw://28ebd8d9e85542f75624da7bd22e392d7878936917997a3afaaa7b87edcd51f9","dweb:/ipfs/QmbdhTPik3huinKLx1AMPhhbzV3omi64HoJKTfXYnaDJ7U"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","id":18080,"exportedSymbols":{"IDiamond":[8675],"ReentrancyGuard":[11446],"RegisterSubnetFacet":[18079],"SubnetActorDiamond":[5287],"SubnetRegistryActorStorage":[13923],"WrongGateway":[6191]},"nodeType":"SourceUnit","src":"46:1817:56","nodes":[{"id":17953,"nodeType":"PragmaDirective","src":"46:23:56","nodes":[],"literals":["solidity","0.8",".19"]},{"id":17955,"nodeType":"ImportDirective","src":"71:52:56","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":18080,"sourceUnit":8676,"symbolAliases":[{"foreign":{"id":17954,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"79:8:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17957,"nodeType":"ImportDirective","src":"124:61:56","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":18080,"sourceUnit":5288,"symbolAliases":[{"foreign":{"id":17956,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5287,"src":"132:18:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17959,"nodeType":"ImportDirective","src":"186:79:56","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":18080,"sourceUnit":13924,"symbolAliases":[{"foreign":{"id":17958,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"194:26:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17961,"nodeType":"ImportDirective","src":"267:62:56","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":18080,"sourceUnit":11447,"symbolAliases":[{"foreign":{"id":17960,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11446,"src":"275:15:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17963,"nodeType":"ImportDirective","src":"330:53:56","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":18080,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":17962,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6191,"src":"338:12:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":18079,"nodeType":"ContractDefinition","src":"385:1477:56","nodes":[{"id":17968,"nodeType":"VariableDeclaration","src":"439:37:56","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"475:1:56","scope":18079,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":17967,"nodeType":"UserDefinedTypeName","pathNode":{"id":17966,"name":"SubnetRegistryActorStorage","nameLocations":["439:26:56"],"nodeType":"IdentifierPath","referencedDeclaration":13923,"src":"439:26:56"},"referencedDeclaration":13923,"src":"439:26:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":17973,"nodeType":"EventDefinition","src":"544:41:56","nodes":[],"anonymous":false,"documentation":{"id":17969,"nodeType":"StructuredDocumentation","src":"483:56:56","text":"@notice Event emitted when a new subnet is deployed."},"eventSelector":"0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965","name":"SubnetDeployed","nameLocation":"550:14:56","parameters":{"id":17972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17971,"indexed":false,"mutability":"mutable","name":"subnetAddr","nameLocation":"573:10:56","nodeType":"VariableDeclaration","scope":17973,"src":"565:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17970,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:20:56"}},{"id":18078,"nodeType":"FunctionDefinition","src":"707:1153:56","nodes":[],"body":{"id":18077,"nodeType":"Block","src":"851:1009:56","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17984,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17977,"src":"865:7:56","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}},"id":17985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:14:56","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":4952,"src":"865:22:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17986,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"891:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":17987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"893:7:56","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":13897,"src":"891:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"865:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17993,"nodeType":"IfStatement","src":"861:87:56","trueBody":{"id":17992,"nodeType":"Block","src":"902:46:56","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17989,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6191,"src":"923:12:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17991,"nodeType":"RevertStatement","src":"916:21:56"}]}},{"assignments":[17999],"declarations":[{"constant":false,"id":17999,"mutability":"mutable","name":"diamondCut","nameLocation":"985:10:56","nodeType":"VariableDeclaration","scope":18077,"src":"958:37:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":17997,"nodeType":"UserDefinedTypeName","pathNode":{"id":17996,"name":"IDiamond.FacetCut","nameLocations":["958:8:56","967:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"958:17:56"},"referencedDeclaration":8664,"src":"958:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":17998,"nodeType":"ArrayTypeName","src":"958:19:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":18006,"initialValue":{"arguments":[{"hexValue":"32","id":18004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:56","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":18003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"998:23:56","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":18001,"nodeType":"UserDefinedTypeName","pathNode":{"id":18000,"name":"IDiamond.FacetCut","nameLocations":["1002:8:56","1011:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"1002:17:56"},"referencedDeclaration":8664,"src":"1002:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":18002,"nodeType":"ArrayTypeName","src":"1002:19:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":18005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:26:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"958:66:56"},{"expression":{"id":18020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18007,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"1084:10:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":18009,"indexExpression":{"hexValue":"30","id":18008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1084:13:56","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":18012,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1146:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1148:19:56","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":13900,"src":"1146:21:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":18014,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"1189:8:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":18015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:14:56","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":8655,"src":"1189:23:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$8655_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":18016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1213:3:56","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":8652,"src":"1189:27:56","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":18017,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1249:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1251:21:56","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":13906,"src":"1249:23:56","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":18010,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"1100:8:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":18011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1109:8:56","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":8664,"src":"1100:17:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$8664_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":18019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1132:12:56","1181:6:56","1230:17:56"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1100:183:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1084:199:56","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":18021,"nodeType":"ExpressionStatement","src":"1084:199:56"},{"expression":{"id":18035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18022,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"1344:10:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":18024,"indexExpression":{"hexValue":"31","id":18023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1355:1:56","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1344:13:56","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":18027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1406:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1408:20:56","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":13902,"src":"1406:22:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":18029,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"1450:8:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":18030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1459:14:56","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":8655,"src":"1450:23:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$8655_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":18031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1474:3:56","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":8652,"src":"1450:27:56","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":18032,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1510:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1512:22:56","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":13910,"src":"1510:24:56","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$8655","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":18025,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"1360:8:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$8675_$","typeString":"type(contract IDiamond)"}},"id":18026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1369:8:56","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":8664,"src":"1360:17:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$8664_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":18034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1392:12:56","1442:6:56","1491:17:56"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1360:185:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1344:201:56","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":18036,"nodeType":"ExpressionStatement","src":"1344:201:56"},{"expression":{"id":18047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18037,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17982,"src":"1611:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":18043,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"1655:10:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":18044,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17977,"src":"1667:7:56","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$4972_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}],"id":18042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1632:22:56","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$4972_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$5287_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":18041,"nodeType":"UserDefinedTypeName","pathNode":{"id":18040,"name":"SubnetActorDiamond","nameLocations":["1636:18:56"],"nodeType":"IdentifierPath","referencedDeclaration":5287,"src":"1636:18:56"},"referencedDeclaration":5287,"src":"1636:18:56","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$5287","typeString":"contract SubnetActorDiamond"}}},"id":18045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:43:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$5287","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$5287","typeString":"contract SubnetActorDiamond"}],"id":18039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18038,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:56","typeDescriptions":{}}},"id":18046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:52:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1611:65:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18048,"nodeType":"ExpressionStatement","src":"1611:65:56"},{"expression":{"id":18062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":18049,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1687:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1689:7:56","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":13917,"src":"1687:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":18059,"indexExpression":{"expression":{"id":18051,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1697:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1701:6:56","memberName":"sender","nodeType":"MemberAccess","src":"1697:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1687:21:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":18060,"indexExpression":{"baseExpression":{"expression":{"id":18053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1709:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1711:10:56","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":13922,"src":"1709:12:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":18057,"indexExpression":{"expression":{"id":18055,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1722:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:56","memberName":"sender","nodeType":"MemberAccess","src":"1722:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1709:24:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1687:47:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18061,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17982,"src":"1737:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1687:60:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18063,"nodeType":"ExpressionStatement","src":"1687:60:56"},{"expression":{"id":18069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1757:26:56","subExpression":{"baseExpression":{"expression":{"id":18064,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"1759:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1761:10:56","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":13922,"src":"1759:12:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":18068,"indexExpression":{"expression":{"id":18066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1772:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1776:6:56","memberName":"sender","nodeType":"MemberAccess","src":"1772:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1759:24:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":18070,"nodeType":"ExpressionStatement","src":"1757:26:56"},{"eventCall":{"arguments":[{"id":18072,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17982,"src":"1814:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18071,"name":"SubnetDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"1799:14:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1799:26:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18074,"nodeType":"EmitStatement","src":"1794:31:56"},{"expression":{"id":18075,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17982,"src":"1843:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17983,"id":18076,"nodeType":"Return","src":"1836:17:56"}]},"documentation":{"id":17974,"nodeType":"StructuredDocumentation","src":"591:111:56","text":"@notice Deploys a new subnet actor.\n @param _params The constructor params for Subnet Actor Diamond."},"functionSelector":"a04962a0","implemented":true,"kind":"function","modifiers":[{"id":17980,"kind":"modifierInvocation","modifierName":{"id":17979,"name":"nonReentrant","nameLocations":["809:12:56"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"809:12:56"},"nodeType":"ModifierInvocation","src":"809:12:56"}],"name":"newSubnetActor","nameLocation":"716:14:56","parameters":{"id":17978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17977,"mutability":"mutable","name":"_params","nameLocation":"786:7:56","nodeType":"VariableDeclaration","scope":18078,"src":"740:53:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":17976,"nodeType":"UserDefinedTypeName","pathNode":{"id":17975,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["740:18:56","759:17:56"],"nodeType":"IdentifierPath","referencedDeclaration":4972,"src":"740:36:56"},"referencedDeclaration":4972,"src":"740:36:56","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"730:69:56"},"returnParameters":{"id":17983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17982,"mutability":"mutable","name":"subnetAddr","nameLocation":"839:10:56","nodeType":"VariableDeclaration","scope":18078,"src":"831:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17981,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"830:20:56"},"scope":18079,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":17964,"name":"ReentrancyGuard","nameLocations":["417:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":11446,"src":"417:15:56"},"id":17965,"nodeType":"InheritanceSpecifier","src":"417:15:56"}],"canonicalName":"RegisterSubnetFacet","contractDependencies":[5287],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18079,11446],"name":"RegisterSubnetFacet","nameLocation":"394:19:56","scope":18080,"usedErrors":[6191,11394]}],"license":"MIT OR Apache-2.0"},"id":56} \ No newline at end of file diff --git a/contracts/out/SignedMath.sol/SignedMath.json b/contracts/out/SignedMath.sol/SignedMath.json deleted file mode 100644 index be33ae73c9..0000000000 --- a/contracts/out/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220beb83b6df2b4b3b2c6feceb48d7887587f40076d6162c63e79778e515ae8c9fb64736f6c63430008130033","sourceMap":"216:1047:12:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220beb83b6df2b4b3b2c6feceb48d7887587f40076d6162c63e79778e515ae8c9fb64736f6c63430008130033","sourceMap":"216:1047:12:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","id":3990,"exportedSymbols":{"SignedMath":[3989]},"nodeType":"SourceUnit","src":"109:1155:12","nodes":[{"id":3886,"nodeType":"PragmaDirective","src":"109:24:12","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":3989,"nodeType":"ContractDefinition","src":"216:1047:12","nodes":[{"id":3905,"nodeType":"FunctionDefinition","src":"312:101:12","nodes":[],"body":{"id":3904,"nodeType":"Block","src":"376:37:12","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3897,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"393:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3898,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3892,"src":"397:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3901,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3892,"src":"405:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:12","trueExpression":{"id":3900,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"401:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3896,"id":3903,"nodeType":"Return","src":"386:20:12"}]},"documentation":{"id":3888,"nodeType":"StructuredDocumentation","src":"241:66:12","text":" @dev Returns the largest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:12","parameters":{"id":3893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3890,"mutability":"mutable","name":"a","nameLocation":"332:1:12","nodeType":"VariableDeclaration","scope":3905,"src":"325:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3889,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3892,"mutability":"mutable","name":"b","nameLocation":"342:1:12","nodeType":"VariableDeclaration","scope":3905,"src":"335:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3891,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:12"},"returnParameters":{"id":3896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3905,"src":"368:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3894,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:12"},"scope":3989,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3923,"nodeType":"FunctionDefinition","src":"491:101:12","nodes":[],"body":{"id":3922,"nodeType":"Block","src":"555:37:12","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3915,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"572:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3916,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"576:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3919,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"584:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:12","trueExpression":{"id":3918,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"580:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3914,"id":3921,"nodeType":"Return","src":"565:20:12"}]},"documentation":{"id":3906,"nodeType":"StructuredDocumentation","src":"419:67:12","text":" @dev Returns the smallest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:12","parameters":{"id":3911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3908,"mutability":"mutable","name":"a","nameLocation":"511:1:12","nodeType":"VariableDeclaration","scope":3923,"src":"504:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3907,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3910,"mutability":"mutable","name":"b","nameLocation":"521:1:12","nodeType":"VariableDeclaration","scope":3923,"src":"514:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3909,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:12"},"returnParameters":{"id":3914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3923,"src":"547:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3912,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:12"},"scope":3989,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3967,"nodeType":"FunctionDefinition","src":"729:230:12","nodes":[],"body":{"id":3966,"nodeType":"Block","src":"797:162:12","nodes":[],"statements":[{"assignments":[3934],"declarations":[{"constant":false,"id":3934,"mutability":"mutable","name":"x","nameLocation":"866:1:12","nodeType":"VariableDeclaration","scope":3966,"src":"859:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3933,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3947,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3935,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"871:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3936,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"875:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3939,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"882:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3940,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"886:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3942,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3945,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:12"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3948,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"911:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3953,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3951,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:12","typeDescriptions":{}}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3949,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:12","typeDescriptions":{}}},"id":3957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3958,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"945:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3959,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"949:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3961,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3963,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3932,"id":3965,"nodeType":"Return","src":"904:48:12"}]},"documentation":{"id":3924,"nodeType":"StructuredDocumentation","src":"598:126:12","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:12","parameters":{"id":3929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3926,"mutability":"mutable","name":"a","nameLocation":"753:1:12","nodeType":"VariableDeclaration","scope":3967,"src":"746:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3925,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3928,"mutability":"mutable","name":"b","nameLocation":"763:1:12","nodeType":"VariableDeclaration","scope":3967,"src":"756:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3927,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:12"},"returnParameters":{"id":3932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3967,"src":"789:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3930,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:12"},"scope":3989,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3988,"nodeType":"FunctionDefinition","src":"1048:213:12","nodes":[],"body":{"id":3987,"nodeType":"Block","src":"1103:158:12","nodes":[],"statements":[{"id":3986,"nodeType":"UncheckedBlock","src":"1113:142:12","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3977,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"1228:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:12","subExpression":{"id":3981,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"1242:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:12","trueExpression":{"id":3980,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"1237:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3975,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:12","typeDescriptions":{}}},"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3974,"id":3985,"nodeType":"Return","src":"1213:31:12"}]}]},"documentation":{"id":3968,"nodeType":"StructuredDocumentation","src":"965:78:12","text":" @dev Returns the absolute unsigned value of a signed value."},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:12","parameters":{"id":3971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3970,"mutability":"mutable","name":"n","nameLocation":"1068:1:12","nodeType":"VariableDeclaration","scope":3988,"src":"1061:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3969,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:12"},"returnParameters":{"id":3974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3988,"src":"1094:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:12"},"scope":3989,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3887,"nodeType":"StructuredDocumentation","src":"135:80:12","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[3989],"name":"SignedMath","nameLocation":"224:10:12","scope":3990,"usedErrors":[]}],"license":"MIT"},"id":12} \ No newline at end of file diff --git a/contracts/out/Status.sol/Status.json b/contracts/out/Status.sol/Status.json deleted file mode 100644 index 98dc51243f..0000000000 --- a/contracts/out/Status.sol/Status.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/Status.sol","id":6048,"exportedSymbols":{"Status":[6047]},"nodeType":"SourceUnit","src":"46:181:22","nodes":[{"id":6040,"nodeType":"PragmaDirective","src":"46:23:22","nodes":[],"literals":["solidity","0.8",".19"]},{"id":6047,"nodeType":"EnumDefinition","src":"128:98:22","nodes":[],"canonicalName":"Status","members":[{"id":6041,"name":"Unset","nameLocation":"146:5:22","nodeType":"EnumValue","src":"146:5:22"},{"id":6042,"name":"Active","nameLocation":"157:6:22","nodeType":"EnumValue","src":"157:6:22"},{"id":6043,"name":"Inactive","nameLocation":"169:8:22","nodeType":"EnumValue","src":"169:8:22"},{"id":6044,"name":"Killed","nameLocation":"183:6:22","nodeType":"EnumValue","src":"183:6:22"},{"id":6045,"name":"Terminating","nameLocation":"195:11:22","nodeType":"EnumValue","src":"195:11:22"},{"id":6046,"name":"Instantiated","nameLocation":"212:12:22","nodeType":"EnumValue","src":"212:12:22"}],"name":"Status","nameLocation":"133:6:22"}],"license":"MIT OR Apache-2.0"},"id":22} \ No newline at end of file diff --git a/contracts/out/StorableMsgHelper.sol/StorableMsgHelper.json b/contracts/out/StorableMsgHelper.sol/StorableMsgHelper.json deleted file mode 100644 index 9adcc92e3e..0000000000 --- a/contracts/out/StorableMsgHelper.sol/StorableMsgHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"applyType","inputs":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"currentSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"IPCMsgType","internalType":"enum IPCMsgType"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576107a79081610020823930815050f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea26469706673582212206fb31e7223d69bde2fcbf732d525168d71e0d955f39c666ba2a515fd10bc87d064736f6c63430008130033","sourceMap":"374:867:46:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1231,"length":20}]}}},"deployedBytecode":{"object":"0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea26469706673582212206fb31e7223d69bde2fcbf732d525168d71e0d955f39c666ba2a515fd10bc87d064736f6c63430008130033","sourceMap":"374:867:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;374:867:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;374:867:46;-1:-1:-1;374:867:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1208:23;;374:867;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1208:23;374:867;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;1208:23;;;;;;;;;:::i;:::-;374:867;1198:34;;374:867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;1208:23;;;374:867;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;374:867:46;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;374:867:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;374:867:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;446:649::-;;;;598:10;374:867;;656:12;374:867;598:19;:10;;;;;;:::i;:::-;:19;;:::i;:::-;374:867;;;:::i;:::-;656:12;;;:::i;:::-;:21;374:867;656:21;;;:::i;:::-;374:867;:::i;:::-;;;;;:::i;:::-;725:26;;374:867;;;;;;;;725:36;;;;-1:-1:-1;;725:36:46;-1:-1:-1;725:36:46;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;809:33;725:36;;;;446:649;374:867;;;809:33;;;;;;;;725:36;809:33;;;:::i;:::-;;;;;;;;;;;;;;;446:649;374:867;;857:47;374:867;;;;;;;;;;;;;;857:47;;725:36;857:47;;;:::i;:::-;;;;;;;;;;;;;;;446:649;853:200;;;446:649;1063:25;;;446:649;:::o;853:200::-;924:16;;;374:867;950:25;;;374:867;-1:-1:-1;920:123:46;;853:200;;;;;920:123;1002:26;1009:19;1002:26;:::o;857:47::-;;;;;;;;;;;;;;;;:::i;:::-;;;374:867;;;;;;;;;;;;857:47;;;;;;;;;374:867;;;;;;;;809:33;857:47;809:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;374:867;;;;;;;;;725:36;;;;;;;;;;;;;;:::i;:::-;;;;;;374:867;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;374:867:46;;;;;;1208:23;374:867;-1:-1:-1;;374:867:46;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1199,"length":20}]}}},"methodIdentifiers":{"applyType(StorableMsg,SubnetID)":"f47ad7eb","toHash(StorableMsg)":"2f645753"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"currentSubnet\",\"type\":\"tuple\"}],\"name\":\"applyType\",\"outputs\":[{\"internalType\":\"enum IPCMsgType\",\"name\":\"\",\"type\":\"IPCMsgType\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/StorableMsgHelper.sol\":\"StorableMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x002287b88a61e04e89ce6aebd47858c2e4a366615f5b880f445987ead7633b49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://80426a9802c6e825a93d05671e8f03c640d91e386ab8555efe69c02e22cda269\",\"dweb:/ipfs/QmcVMK9PUeTZRmm1k56regE5PGXrKDgg5XrtrgPH72qhTR\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"struct SubnetID","name":"currentSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"applyType","outputs":[{"internalType":"enum IPCMsgType","name":"","type":"IPCMsgType"}]},{"inputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/StorableMsgHelper.sol":"StorableMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0x002287b88a61e04e89ce6aebd47858c2e4a366615f5b880f445987ead7633b49","urls":["bzz-raw://80426a9802c6e825a93d05671e8f03c640d91e386ab8555efe69c02e22cda269","dweb:/ipfs/QmcVMK9PUeTZRmm1k56regE5PGXrKDgg5XrtrgPH72qhTR"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/StorableMsgHelper.sol","id":14020,"exportedSymbols":{"IPCMsgType":[6038],"StorableMsg":[16172],"StorableMsgHelper":[14019],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"46:1196:46","nodes":[{"id":13925,"nodeType":"PragmaDirective","src":"46:23:46","nodes":[],"literals":["solidity","0.8",".19"]},{"id":13927,"nodeType":"ImportDirective","src":"71:47:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":14020,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":13926,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"79:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13929,"nodeType":"ImportDirective","src":"119:54:46","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":14020,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":13928,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"127:11:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13931,"nodeType":"ImportDirective","src":"174:57:46","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":14020,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":13930,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"182:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13933,"nodeType":"ImportDirective","src":"232:51:46","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":14020,"sourceUnit":6039,"symbolAliases":[{"foreign":{"id":13932,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"240:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14019,"nodeType":"ContractDefinition","src":"374:867:46","nodes":[{"id":13938,"nodeType":"UsingForDirective","src":"406:34:46","nodes":[],"global":false,"libraryName":{"id":13935,"name":"SubnetIDHelper","nameLocations":["412:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"412:14:46"},"typeName":{"id":13937,"nodeType":"UserDefinedTypeName","pathNode":{"id":13936,"name":"SubnetID","nameLocations":["431:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"431:8:46"},"referencedDeclaration":16209,"src":"431:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":14002,"nodeType":"FunctionDefinition","src":"446:649:46","nodes":[],"body":{"id":14001,"nodeType":"Block","src":"561:534:46","nodes":[],"statements":[{"assignments":[13952],"declarations":[{"constant":false,"id":13952,"mutability":"mutable","name":"toSubnet","nameLocation":"587:8:46","nodeType":"VariableDeclaration","scope":14001,"src":"571:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":13951,"nodeType":"UserDefinedTypeName","pathNode":{"id":13950,"name":"SubnetID","nameLocations":["571:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"571:8:46"},"referencedDeclaration":16209,"src":"571:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":13956,"initialValue":{"expression":{"expression":{"id":13953,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13941,"src":"598:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":13954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"606:2:46","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":16161,"src":"598:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":13955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"609:8:46","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"598:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"571:46:46"},{"assignments":[13959],"declarations":[{"constant":false,"id":13959,"mutability":"mutable","name":"fromSubnet","nameLocation":"643:10:46","nodeType":"VariableDeclaration","scope":14001,"src":"627:26:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":13958,"nodeType":"UserDefinedTypeName","pathNode":{"id":13957,"name":"SubnetID","nameLocations":["627:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"627:8:46"},"referencedDeclaration":16209,"src":"627:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":13963,"initialValue":{"expression":{"expression":{"id":13960,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13941,"src":"656:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":13961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"664:4:46","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":16158,"src":"656:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$16327_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":13962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"669:8:46","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":16323,"src":"656:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"627:50:46"},{"assignments":[13966],"declarations":[{"constant":false,"id":13966,"mutability":"mutable","name":"currentParentSubnet","nameLocation":"703:19:46","nodeType":"VariableDeclaration","scope":14001,"src":"687:35:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":13965,"nodeType":"UserDefinedTypeName","pathNode":{"id":13964,"name":"SubnetID","nameLocations":["687:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"687:8:46"},"referencedDeclaration":16209,"src":"687:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":13971,"initialValue":{"arguments":[{"id":13969,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"752:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":13967,"name":"currentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13944,"src":"725:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":13968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:12:46","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":14504,"src":"725:26:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":13970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"725:36:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"687:74:46"},{"assignments":[13974],"declarations":[{"constant":false,"id":13974,"mutability":"mutable","name":"messageParentSubnet","nameLocation":"787:19:46","nodeType":"VariableDeclaration","scope":14001,"src":"771:35:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":13973,"nodeType":"UserDefinedTypeName","pathNode":{"id":13972,"name":"SubnetID","nameLocations":["771:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"771:8:46"},"referencedDeclaration":16209,"src":"771:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":13979,"initialValue":{"arguments":[{"id":13977,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"833:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":13975,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13959,"src":"809:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":13976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"820:12:46","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":14504,"src":"809:23:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":13978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"809:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"771:71:46"},{"condition":{"arguments":[{"id":13982,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13974,"src":"884:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":13980,"name":"currentParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13966,"src":"857:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":13981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"877:6:46","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14383,"src":"857:26:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":13983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"857:47:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13997,"nodeType":"IfStatement","src":"853:200:46","trueBody":{"id":13996,"nodeType":"Block","src":"906:147:46","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":13984,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13959,"src":"924:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":13985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"935:5:46","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"924:16:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"941:6:46","memberName":"length","nodeType":"MemberAccess","src":"924:23:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"expression":{"id":13987,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13974,"src":"950:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":13988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"970:5:46","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"950:25:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"976:6:46","memberName":"length","nodeType":"MemberAccess","src":"950:32:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"924:58:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13995,"nodeType":"IfStatement","src":"920:123:46","trueBody":{"id":13994,"nodeType":"Block","src":"984:59:46","statements":[{"expression":{"expression":{"id":13991,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"1009:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$6038_$","typeString":"type(enum IPCMsgType)"}},"id":13992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1020:8:46","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":6037,"src":"1009:19:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"functionReturnParameters":13949,"id":13993,"nodeType":"Return","src":"1002:26:46"}]}}]}},{"expression":{"expression":{"id":13998,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"1070:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$6038_$","typeString":"type(enum IPCMsgType)"}},"id":13999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1081:7:46","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":6036,"src":"1070:18:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"functionReturnParameters":13949,"id":14000,"nodeType":"Return","src":"1063:25:46"}]},"functionSelector":"f47ad7eb","implemented":true,"kind":"function","modifiers":[],"name":"applyType","nameLocation":"455:9:46","parameters":{"id":13945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13941,"mutability":"mutable","name":"message","nameLocation":"486:7:46","nodeType":"VariableDeclaration","scope":14002,"src":"465:28:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":13940,"nodeType":"UserDefinedTypeName","pathNode":{"id":13939,"name":"StorableMsg","nameLocations":["465:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":16172,"src":"465:11:46"},"referencedDeclaration":16172,"src":"465:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":13944,"mutability":"mutable","name":"currentSubnet","nameLocation":"513:13:46","nodeType":"VariableDeclaration","scope":14002,"src":"495:31:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":13943,"nodeType":"UserDefinedTypeName","pathNode":{"id":13942,"name":"SubnetID","nameLocations":["495:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"495:8:46"},"referencedDeclaration":16209,"src":"495:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"464:63:46"},"returnParameters":{"id":13949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14002,"src":"549:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"},"typeName":{"id":13947,"nodeType":"UserDefinedTypeName","pathNode":{"id":13946,"name":"IPCMsgType","nameLocations":["549:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":6038,"src":"549:10:46"},"referencedDeclaration":6038,"src":"549:10:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$6038","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"src":"548:12:46"},"scope":14019,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14018,"nodeType":"FunctionDefinition","src":"1101:138:46","nodes":[],"body":{"id":14017,"nodeType":"Block","src":"1181:58:46","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":14013,"name":"storableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14005,"src":"1219:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg calldata"}],"expression":{"id":14011,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1208:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1212:6:46","memberName":"encode","nodeType":"MemberAccess","src":"1208:10:46","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1208:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14010,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1198:9:46","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1198:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":14009,"id":14016,"nodeType":"Return","src":"1191:41:46"}]},"functionSelector":"2f645753","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1110:6:46","parameters":{"id":14006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14005,"mutability":"mutable","name":"storableMsg","nameLocation":"1138:11:46","nodeType":"VariableDeclaration","scope":14018,"src":"1117:32:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":14004,"nodeType":"UserDefinedTypeName","pathNode":{"id":14003,"name":"StorableMsg","nameLocations":["1117:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":16172,"src":"1117:11:46"},"referencedDeclaration":16172,"src":"1117:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$16172_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"}],"src":"1116:34:46"},"returnParameters":{"id":14009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14018,"src":"1172:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1172:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1171:9:46"},"scope":14019,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StorableMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":13934,"nodeType":"StructuredDocumentation","src":"285:89:46","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[14019],"name":"StorableMsgHelper","nameLocation":"382:17:46","scope":14020,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":46} \ No newline at end of file diff --git a/contracts/out/Strings.sol/Strings.json b/contracts/out/Strings.sol/Strings.json deleted file mode 100644 index 9b58848498..0000000000 --- a/contracts/out/Strings.sol/Strings.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220fbc10efded17bfbf9f1e11bf32b6f9c1def7258618dbd9ec2446cb536ea3a8e764736f6c63430008130033","sourceMap":"221:2836:8:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220fbc10efded17bfbf9f1e11bf32b6f9c1def7258618dbd9ec2446cb536ea3a8e764736f6c63430008130033","sourceMap":"221:2836:8:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":1901,"exportedSymbols":{"Math":[3884],"SignedMath":[3989],"Strings":[1900]},"nodeType":"SourceUnit","src":"101:2957:8","nodes":[{"id":1649,"nodeType":"PragmaDirective","src":"101:24:8","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":1650,"nodeType":"ImportDirective","src":"127:25:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"./math/Math.sol","nameLocation":"-1:-1:-1","scope":1901,"sourceUnit":3885,"symbolAliases":[],"unitAlias":""},{"id":1651,"nodeType":"ImportDirective","src":"153:31:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","nameLocation":"-1:-1:-1","scope":1901,"sourceUnit":3990,"symbolAliases":[],"unitAlias":""},{"id":1900,"nodeType":"ContractDefinition","src":"221:2836:8","nodes":[{"id":1655,"nodeType":"VariableDeclaration","src":"243:54:8","nodes":[],"constant":true,"mutability":"constant","name":"_SYMBOLS","nameLocation":"268:8:8","scope":1900,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1653,"name":"bytes16","nodeType":"ElementaryTypeName","src":"243:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":1654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"279:18:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":1658,"nodeType":"VariableDeclaration","src":"303:43:8","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"326:15:8","scope":1900,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1656,"name":"uint8","nodeType":"ElementaryTypeName","src":"303:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":1657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"344:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":1665,"nodeType":"ErrorDefinition","src":"439:66:8","nodes":[],"documentation":{"id":1659,"nodeType":"StructuredDocumentation","src":"353:81:8","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","name":"StringsInsufficientHexLength","nameLocation":"445:28:8","parameters":{"id":1664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1661,"mutability":"mutable","name":"value","nameLocation":"482:5:8","nodeType":"VariableDeclaration","scope":1665,"src":"474:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1660,"name":"uint256","nodeType":"ElementaryTypeName","src":"474:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1663,"mutability":"mutable","name":"length","nameLocation":"497:6:8","nodeType":"VariableDeclaration","scope":1665,"src":"489:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1662,"name":"uint256","nodeType":"ElementaryTypeName","src":"489:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"473:31:8"}},{"id":1713,"nodeType":"FunctionDefinition","src":"606:696:8","nodes":[],"body":{"id":1712,"nodeType":"Block","src":"677:625:8","nodes":[],"statements":[{"id":1711,"nodeType":"UncheckedBlock","src":"687:609:8","statements":[{"assignments":[1674],"declarations":[{"constant":false,"id":1674,"mutability":"mutable","name":"length","nameLocation":"719:6:8","nodeType":"VariableDeclaration","scope":1711,"src":"711:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1673,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1681,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1668,"src":"739:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1675,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"728:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3884_$","typeString":"type(library Math)"}},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"733:5:8","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3721,"src":"728:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"728:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:38:8"},{"assignments":[1683],"declarations":[{"constant":false,"id":1683,"mutability":"mutable","name":"buffer","nameLocation":"777:6:8","nodeType":"VariableDeclaration","scope":1711,"src":"763:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1682,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1688,"initialValue":{"arguments":[{"id":1686,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"797:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"786:10:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":1684,"name":"string","nodeType":"ElementaryTypeName","src":"790:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"763:41:8"},{"assignments":[1690],"declarations":[{"constant":false,"id":1690,"mutability":"mutable","name":"ptr","nameLocation":"826:3:8","nodeType":"VariableDeclaration","scope":1711,"src":"818:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1689,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1691,"nodeType":"VariableDeclarationStatement","src":"818:11:8"},{"AST":{"nodeType":"YulBlock","src":"899:67:8","statements":[{"nodeType":"YulAssignment","src":"917:35:8","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"928:6:8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"940:2:8","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"944:6:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"936:3:8"},"nodeType":"YulFunctionCall","src":"936:15:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"924:3:8"},"nodeType":"YulFunctionCall","src":"924:28:8"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"917:3:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1683,"isOffset":false,"isSlot":false,"src":"928:6:8","valueSize":1},{"declaration":1674,"isOffset":false,"isSlot":false,"src":"944:6:8","valueSize":1},{"declaration":1690,"isOffset":false,"isSlot":false,"src":"917:3:8","valueSize":1}],"id":1692,"nodeType":"InlineAssembly","src":"890:76:8"},{"body":{"id":1707,"nodeType":"Block","src":"992:267:8","statements":[{"expression":{"id":1695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1010:5:8","subExpression":{"id":1694,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1690,"src":"1010:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1696,"nodeType":"ExpressionStatement","src":"1010:5:8"},{"AST":{"nodeType":"YulBlock","src":"1093:84:8","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1123:3:8"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1137:5:8"},{"kind":"number","nodeType":"YulLiteral","src":"1144:2:8","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1133:3:8"},"nodeType":"YulFunctionCall","src":"1133:14:8"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"1149:8:8"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1128:4:8"},"nodeType":"YulFunctionCall","src":"1128:30:8"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1115:7:8"},"nodeType":"YulFunctionCall","src":"1115:44:8"},"nodeType":"YulExpressionStatement","src":"1115:44:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1655,"isOffset":false,"isSlot":false,"src":"1149:8:8","valueSize":1},{"declaration":1690,"isOffset":false,"isSlot":false,"src":"1123:3:8","valueSize":1},{"declaration":1668,"isOffset":false,"isSlot":false,"src":"1137:5:8","valueSize":1}],"id":1697,"nodeType":"InlineAssembly","src":"1084:93:8"},{"expression":{"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1698,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1668,"src":"1194:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":1699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1203:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1194:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1701,"nodeType":"ExpressionStatement","src":"1194:11:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1668,"src":"1227:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1706,"nodeType":"IfStatement","src":"1223:21:8","trueBody":{"id":1705,"nodeType":"Break","src":"1239:5:8"}}]},"condition":{"hexValue":"74727565","id":1693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"986:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1708,"nodeType":"WhileStatement","src":"979:280:8"},{"expression":{"id":1709,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1683,"src":"1279:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1672,"id":1710,"nodeType":"Return","src":"1272:13:8"}]}]},"documentation":{"id":1666,"nodeType":"StructuredDocumentation","src":"511:90:8","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"615:8:8","parameters":{"id":1669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1668,"mutability":"mutable","name":"value","nameLocation":"632:5:8","nodeType":"VariableDeclaration","scope":1713,"src":"624:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1667,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:15:8"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1713,"src":"662:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1670,"name":"string","nodeType":"ElementaryTypeName","src":"662:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"661:15:8"},"scope":1900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1739,"nodeType":"FunctionDefinition","src":"1402:168:8","nodes":[],"body":{"id":1738,"nodeType":"Block","src":"1478:92:8","nodes":[],"statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"1509:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1517:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1509:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1527:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1509:20:8","trueExpression":{"hexValue":"2d","id":1727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1521:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":1733,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"1555:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1731,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"1540:10:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3989_$","typeString":"type(library SignedMath)"}},"id":1732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1551:3:8","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3988,"src":"1540:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1540:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1730,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"1531:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1495:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1721,"name":"string","nodeType":"ElementaryTypeName","src":"1495:6:8","typeDescriptions":{}}},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1502:6:8","memberName":"concat","nodeType":"MemberAccess","src":"1495:13:8","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1495:68:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1720,"id":1737,"nodeType":"Return","src":"1488:75:8"}]},"documentation":{"id":1714,"nodeType":"StructuredDocumentation","src":"1308:89:8","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1411:14:8","parameters":{"id":1717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"value","nameLocation":"1433:5:8","nodeType":"VariableDeclaration","scope":1739,"src":"1426:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1715,"name":"int256","nodeType":"ElementaryTypeName","src":"1426:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1425:14:8"},"returnParameters":{"id":1720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1739,"src":"1463:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1718,"name":"string","nodeType":"ElementaryTypeName","src":"1463:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1462:15:8"},"scope":1900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1759,"nodeType":"FunctionDefinition","src":"1675:174:8","nodes":[],"body":{"id":1758,"nodeType":"Block","src":"1749:100:8","nodes":[],"statements":[{"id":1757,"nodeType":"UncheckedBlock","src":"1759:84:8","statements":[{"expression":{"arguments":[{"id":1748,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1742,"src":"1802:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1751,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1742,"src":"1821:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1749,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"1809:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3884_$","typeString":"type(library Math)"}},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:8","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3844,"src":"1809:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1830:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1809:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1747,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1759,1842,1862],"referencedDeclaration":1842,"src":"1790:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1746,"id":1756,"nodeType":"Return","src":"1783:49:8"}]}]},"documentation":{"id":1740,"nodeType":"StructuredDocumentation","src":"1576:94:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1684:11:8","parameters":{"id":1743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1742,"mutability":"mutable","name":"value","nameLocation":"1704:5:8","nodeType":"VariableDeclaration","scope":1759,"src":"1696:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1695:15:8"},"returnParameters":{"id":1746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1759,"src":"1734:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1744,"name":"string","nodeType":"ElementaryTypeName","src":"1734:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1733:15:8"},"scope":1900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1842,"nodeType":"FunctionDefinition","src":"1972:523:8","nodes":[],"body":{"id":1841,"nodeType":"Block","src":"2062:433:8","nodes":[],"statements":[{"assignments":[1770],"declarations":[{"constant":false,"id":1770,"mutability":"mutable","name":"localValue","nameLocation":"2080:10:8","nodeType":"VariableDeclaration","scope":1841,"src":"2072:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1769,"name":"uint256","nodeType":"ElementaryTypeName","src":"2072:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1772,"initialValue":{"id":1771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"2093:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2072:26:8"},{"assignments":[1774],"declarations":[{"constant":false,"id":1774,"mutability":"mutable","name":"buffer","nameLocation":"2121:6:8","nodeType":"VariableDeclaration","scope":1841,"src":"2108:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1773,"name":"bytes","nodeType":"ElementaryTypeName","src":"2108:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1783,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2140:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1778,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"2144:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2140:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2140:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2130:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1775,"name":"bytes","nodeType":"ElementaryTypeName","src":"2134:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2108:47:8"},{"expression":{"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1784,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"2165:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1786,"indexExpression":{"hexValue":"30","id":1785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2172:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2165:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2177:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2165:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1789,"nodeType":"ExpressionStatement","src":"2165:15:8"},{"expression":{"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1790,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"2190:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1792,"indexExpression":{"hexValue":"31","id":1791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2190:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2202:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2190:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1795,"nodeType":"ExpressionStatement","src":"2190:15:8"},{"body":{"id":1824,"nodeType":"Block","src":"2260:93:8","statements":[{"expression":{"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1810,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"2274:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1812,"indexExpression":{"id":1811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2281:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1813,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"2286:8:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1817,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1814,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"2295:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:3:8","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2295:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2286:26:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2274:38:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1819,"nodeType":"ExpressionStatement","src":"2274:38:8"},{"expression":{"id":1822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1820,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"2326:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2341:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2326:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1823,"nodeType":"ExpressionStatement","src":"2326:16:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1804,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2248:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2252:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2248:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1825,"initializationExpression":{"assignments":[1797],"declarations":[{"constant":false,"id":1797,"mutability":"mutable","name":"i","nameLocation":"2228:1:8","nodeType":"VariableDeclaration","scope":1825,"src":"2220:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1796,"name":"uint256","nodeType":"ElementaryTypeName","src":"2220:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1803,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2232:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1799,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"2236:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2232:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2232:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2220:26:8"},"loopExpression":{"expression":{"id":1808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2255:3:8","subExpression":{"id":1807,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2257:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1809,"nodeType":"ExpressionStatement","src":"2255:3:8"},"nodeType":"ForStatement","src":"2215:138:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1826,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"2366:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2380:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2366:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1835,"nodeType":"IfStatement","src":"2362:96:8","trueBody":{"id":1834,"nodeType":"Block","src":"2383:75:8","statements":[{"errorCall":{"arguments":[{"id":1830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"2433:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1831,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"2440:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1829,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"2404:28:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2404:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1833,"nodeType":"RevertStatement","src":"2397:50:8"}]}},{"expression":{"arguments":[{"id":1838,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"2481:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2474:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1836,"name":"string","nodeType":"ElementaryTypeName","src":"2474:6:8","typeDescriptions":{}}},"id":1839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1768,"id":1840,"nodeType":"Return","src":"2467:21:8"}]},"documentation":{"id":1760,"nodeType":"StructuredDocumentation","src":"1855:112:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1981:11:8","parameters":{"id":1765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"mutability":"mutable","name":"value","nameLocation":"2001:5:8","nodeType":"VariableDeclaration","scope":1842,"src":"1993:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1761,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1764,"mutability":"mutable","name":"length","nameLocation":"2016:6:8","nodeType":"VariableDeclaration","scope":1842,"src":"2008:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1992:31:8"},"returnParameters":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1842,"src":"2047:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1766,"name":"string","nodeType":"ElementaryTypeName","src":"2047:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2046:15:8"},"scope":1900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1862,"nodeType":"FunctionDefinition","src":"2647:149:8","nodes":[],"body":{"id":1861,"nodeType":"Block","src":"2720:76:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1855,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"2765:4:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2757:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1853,"name":"uint160","nodeType":"ElementaryTypeName","src":"2757:7:8","typeDescriptions":{}}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2757:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2749:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1851,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:8","typeDescriptions":{}}},"id":1857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1858,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"2773:15:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1850,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1759,1842,1862],"referencedDeclaration":1842,"src":"2737:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:52:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1849,"id":1860,"nodeType":"Return","src":"2730:59:8"}]},"documentation":{"id":1843,"nodeType":"StructuredDocumentation","src":"2501:141:8","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2656:11:8","parameters":{"id":1846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1845,"mutability":"mutable","name":"addr","nameLocation":"2676:4:8","nodeType":"VariableDeclaration","scope":1862,"src":"2668:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1844,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2667:14:8"},"returnParameters":{"id":1849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1862,"src":"2705:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1847,"name":"string","nodeType":"ElementaryTypeName","src":"2705:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2704:15:8"},"scope":1900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1899,"nodeType":"FunctionDefinition","src":"2873:182:8","nodes":[],"body":{"id":1898,"nodeType":"Block","src":"2951:104:8","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1874,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"2974:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1872,"name":"bytes","nodeType":"ElementaryTypeName","src":"2968:5:8","typeDescriptions":{}}},"id":1875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2968:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2977:6:8","memberName":"length","nodeType":"MemberAccess","src":"2968:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1879,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"2993:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2987:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1877,"name":"bytes","nodeType":"ElementaryTypeName","src":"2987:5:8","typeDescriptions":{}}},"id":1880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2987:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:8","memberName":"length","nodeType":"MemberAccess","src":"2987:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2968:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1886,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"3022:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3016:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1884,"name":"bytes","nodeType":"ElementaryTypeName","src":"3016:5:8","typeDescriptions":{}}},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3016:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1883,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3006:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":1892,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"3045:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3039:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1890,"name":"bytes","nodeType":"ElementaryTypeName","src":"3039:5:8","typeDescriptions":{}}},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3039:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1889,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3029:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3029:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3006:42:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2968:80:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1871,"id":1897,"nodeType":"Return","src":"2961:87:8"}]},"documentation":{"id":1863,"nodeType":"StructuredDocumentation","src":"2802:66:8","text":" @dev Returns true if the two strings are equal."},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2882:5:8","parameters":{"id":1868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1865,"mutability":"mutable","name":"a","nameLocation":"2902:1:8","nodeType":"VariableDeclaration","scope":1899,"src":"2888:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1864,"name":"string","nodeType":"ElementaryTypeName","src":"2888:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1867,"mutability":"mutable","name":"b","nameLocation":"2919:1:8","nodeType":"VariableDeclaration","scope":1899,"src":"2905:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1866,"name":"string","nodeType":"ElementaryTypeName","src":"2905:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2887:34:8"},"returnParameters":{"id":1871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1899,"src":"2945:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1869,"name":"bool","nodeType":"ElementaryTypeName","src":"2945:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2944:6:8"},"scope":1900,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":1652,"nodeType":"StructuredDocumentation","src":"186:34:8","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[1900],"name":"Strings","nameLocation":"229:7:8","scope":1901,"usedErrors":[1665]}],"license":"MIT"},"id":8} \ No newline at end of file diff --git a/contracts/out/Subnet.sol/Subnet.json b/contracts/out/Subnet.sol/Subnet.json deleted file mode 100644 index 1588bd75c5..0000000000 --- a/contracts/out/Subnet.sol/Subnet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Subnet.sol","id":16342,"exportedSymbols":{"AddressStakingReleases":[16274],"BottomUpCheckpoint":[16133],"CrossMsg":[16155],"FvmAddress":[16179],"IPCAddress":[16327],"MaxPQ":[14643],"Membership":[16341],"MinPQ":[15261],"ParentValidatorsTracker":[16320],"StakingChange":[16238],"StakingChangeLog":[16257],"StakingChangeRequest":[16244],"StakingOperation":[16230],"StakingRelease":[16264],"StakingReleaseQueue":[16284],"Status":[6047],"Subnet":[16226],"SubnetID":[16209],"Validator":[16334],"ValidatorInfo":[16292],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:4375:53","nodes":[{"id":16188,"nodeType":"PragmaDirective","src":"46:23:53","nodes":[],"literals":["solidity","0.8",".19"]},{"id":16190,"nodeType":"ImportDirective","src":"71:38:53","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":16342,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":16189,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"79:8:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16192,"nodeType":"ImportDirective","src":"110:44:53","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"./FvmAddress.sol","nameLocation":"-1:-1:-1","scope":16342,"sourceUnit":16187,"symbolAliases":[{"foreign":{"id":16191,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"118:10:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16195,"nodeType":"ImportDirective","src":"155:62:53","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"./Checkpoint.sol","nameLocation":"-1:-1:-1","scope":16342,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":16193,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"163:18:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16194,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"183:8:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16197,"nodeType":"ImportDirective","src":"218:43:53","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../enums/Status.sol","nameLocation":"-1:-1:-1","scope":16342,"sourceUnit":6048,"symbolAliases":[{"foreign":{"id":16196,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"226:6:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16199,"nodeType":"ImportDirective","src":"262:51:53","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"../lib/priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":16342,"sourceUnit":15249,"symbolAliases":[{"foreign":{"id":16198,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14643,"src":"270:5:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16201,"nodeType":"ImportDirective","src":"314:51:53","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"../lib/priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":16342,"sourceUnit":15868,"symbolAliases":[{"foreign":{"id":16200,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"322:5:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16209,"nodeType":"StructDefinition","src":"367:142:53","nodes":[],"canonicalName":"SubnetID","members":[{"constant":false,"id":16204,"mutability":"mutable","name":"root","nameLocation":"439:4:53","nodeType":"VariableDeclaration","scope":16209,"src":"432:11:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16203,"name":"uint64","nodeType":"ElementaryTypeName","src":"432:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16208,"mutability":"mutable","name":"route","nameLocation":"501:5:53","nodeType":"VariableDeclaration","scope":16209,"src":"491:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16206,"name":"address","nodeType":"ElementaryTypeName","src":"491:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16207,"nodeType":"ArrayTypeName","src":"491:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"SubnetID","nameLocation":"374:8:53","scope":16342,"visibility":"public"},{"id":16226,"nodeType":"StructDefinition","src":"511:180:53","nodes":[],"canonicalName":"Subnet","members":[{"constant":false,"id":16211,"mutability":"mutable","name":"stake","nameLocation":"539:5:53","nodeType":"VariableDeclaration","scope":16226,"src":"531:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16210,"name":"uint256","nodeType":"ElementaryTypeName","src":"531:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16213,"mutability":"mutable","name":"genesisEpoch","nameLocation":"558:12:53","nodeType":"VariableDeclaration","scope":16226,"src":"550:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16212,"name":"uint256","nodeType":"ElementaryTypeName","src":"550:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16215,"mutability":"mutable","name":"circSupply","nameLocation":"584:10:53","nodeType":"VariableDeclaration","scope":16226,"src":"576:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16214,"name":"uint256","nodeType":"ElementaryTypeName","src":"576:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16217,"mutability":"mutable","name":"topDownNonce","nameLocation":"607:12:53","nodeType":"VariableDeclaration","scope":16226,"src":"600:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16216,"name":"uint64","nodeType":"ElementaryTypeName","src":"600:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16219,"mutability":"mutable","name":"appliedBottomUpNonce","nameLocation":"632:20:53","nodeType":"VariableDeclaration","scope":16226,"src":"625:27:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16218,"name":"uint64","nodeType":"ElementaryTypeName","src":"625:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16222,"mutability":"mutable","name":"status","nameLocation":"665:6:53","nodeType":"VariableDeclaration","scope":16226,"src":"658:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"},"typeName":{"id":16221,"nodeType":"UserDefinedTypeName","pathNode":{"id":16220,"name":"Status","nameLocations":["658:6:53"],"nodeType":"IdentifierPath","referencedDeclaration":6047,"src":"658:6:53"},"referencedDeclaration":6047,"src":"658:6:53","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$6047","typeString":"enum Status"}},"visibility":"internal"},{"constant":false,"id":16225,"mutability":"mutable","name":"id","nameLocation":"686:2:53","nodeType":"VariableDeclaration","scope":16226,"src":"677:11:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":16224,"nodeType":"UserDefinedTypeName","pathNode":{"id":16223,"name":"SubnetID","nameLocations":["677:8:53"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"677:8:53"},"referencedDeclaration":16209,"src":"677:8:53","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"name":"Subnet","nameLocation":"518:6:53","scope":16342,"visibility":"public"},{"id":16230,"nodeType":"EnumDefinition","src":"728:68:53","nodes":[],"canonicalName":"StakingOperation","members":[{"id":16227,"name":"Deposit","nameLocation":"756:7:53","nodeType":"EnumValue","src":"756:7:53"},{"id":16228,"name":"Withdraw","nameLocation":"769:8:53","nodeType":"EnumValue","src":"769:8:53"},{"id":16229,"name":"SetMetadata","nameLocation":"783:11:53","nodeType":"EnumValue","src":"783:11:53"}],"name":"StakingOperation","nameLocation":"733:16:53"},{"id":16238,"nodeType":"StructDefinition","src":"842:91:53","nodes":[],"canonicalName":"StakingChange","members":[{"constant":false,"id":16233,"mutability":"mutable","name":"op","nameLocation":"886:2:53","nodeType":"VariableDeclaration","scope":16238,"src":"869:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"},"typeName":{"id":16232,"nodeType":"UserDefinedTypeName","pathNode":{"id":16231,"name":"StakingOperation","nameLocations":["869:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":16230,"src":"869:16:53"},"referencedDeclaration":16230,"src":"869:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$16230","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":16235,"mutability":"mutable","name":"payload","nameLocation":"900:7:53","nodeType":"VariableDeclaration","scope":16238,"src":"894:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16234,"name":"bytes","nodeType":"ElementaryTypeName","src":"894:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16237,"mutability":"mutable","name":"validator","nameLocation":"921:9:53","nodeType":"VariableDeclaration","scope":16238,"src":"913:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16236,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakingChange","nameLocation":"849:13:53","scope":16342,"visibility":"public"},{"id":16244,"nodeType":"StructDefinition","src":"1005:89:53","nodes":[],"canonicalName":"StakingChangeRequest","members":[{"constant":false,"id":16241,"mutability":"mutable","name":"change","nameLocation":"1053:6:53","nodeType":"VariableDeclaration","scope":16244,"src":"1039:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":16240,"nodeType":"UserDefinedTypeName","pathNode":{"id":16239,"name":"StakingChange","nameLocations":["1039:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"1039:13:53"},"referencedDeclaration":16238,"src":"1039:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"},{"constant":false,"id":16243,"mutability":"mutable","name":"configurationNumber","nameLocation":"1072:19:53","nodeType":"VariableDeclaration","scope":16244,"src":"1065:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16242,"name":"uint64","nodeType":"ElementaryTypeName","src":"1065:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"StakingChangeRequest","nameLocation":"1012:20:53","scope":16342,"visibility":"public"},{"id":16257,"nodeType":"StructDefinition","src":"1134:356:53","nodes":[],"canonicalName":"StakingChangeLog","members":[{"constant":false,"id":16247,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1243:23:53","nodeType":"VariableDeclaration","scope":16257,"src":"1236:30:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16246,"name":"uint64","nodeType":"ElementaryTypeName","src":"1236:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16250,"mutability":"mutable","name":"startConfigurationNumber","nameLocation":"1337:24:53","nodeType":"VariableDeclaration","scope":16257,"src":"1330:31:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16249,"name":"uint64","nodeType":"ElementaryTypeName","src":"1330:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16256,"mutability":"mutable","name":"changes","nameLocation":"1480:7:53","nodeType":"VariableDeclaration","scope":16257,"src":"1447:40:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$16238_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"typeName":{"id":16255,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16252,"name":"uint64","nodeType":"ElementaryTypeName","src":"1455:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1447:32:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$16238_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16254,"nodeType":"UserDefinedTypeName","pathNode":{"id":16253,"name":"StakingChange","nameLocations":["1465:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":16238,"src":"1465:13:53"},"referencedDeclaration":16238,"src":"1465:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$16238_storage_ptr","typeString":"struct StakingChange"}}},"visibility":"internal"}],"name":"StakingChangeLog","nameLocation":"1141:16:53","scope":16342,"visibility":"public"},{"id":16264,"nodeType":"StructDefinition","src":"1533:189:53","nodes":[],"canonicalName":"StakingRelease","members":[{"constant":false,"id":16260,"mutability":"mutable","name":"releaseAt","nameLocation":"1633:9:53","nodeType":"VariableDeclaration","scope":16264,"src":"1625:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16259,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16263,"mutability":"mutable","name":"amount","nameLocation":"1713:6:53","nodeType":"VariableDeclaration","scope":16264,"src":"1705:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16262,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakingRelease","nameLocation":"1540:14:53","scope":16342,"visibility":"public"},{"id":16274,"nodeType":"StructDefinition","src":"1867:121:53","nodes":[],"canonicalName":"AddressStakingReleases","members":[{"constant":false,"id":16266,"mutability":"mutable","name":"length","nameLocation":"1910:6:53","nodeType":"VariableDeclaration","scope":16274,"src":"1903:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16265,"name":"uint16","nodeType":"ElementaryTypeName","src":"1903:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":16268,"mutability":"mutable","name":"startIdx","nameLocation":"1929:8:53","nodeType":"VariableDeclaration","scope":16274,"src":"1922:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16267,"name":"uint16","nodeType":"ElementaryTypeName","src":"1922:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":16273,"mutability":"mutable","name":"releases","nameLocation":"1977:8:53","nodeType":"VariableDeclaration","scope":16274,"src":"1943:42:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"typeName":{"id":16272,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16269,"name":"uint16","nodeType":"ElementaryTypeName","src":"1951:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1943:33:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$16264_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16271,"nodeType":"UserDefinedTypeName","pathNode":{"id":16270,"name":"StakingRelease","nameLocations":["1961:14:53"],"nodeType":"IdentifierPath","referencedDeclaration":16264,"src":"1961:14:53"},"referencedDeclaration":16264,"src":"1961:14:53","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$16264_storage_ptr","typeString":"struct StakingRelease"}}},"visibility":"internal"}],"name":"AddressStakingReleases","nameLocation":"1874:22:53","scope":16342,"visibility":"public"},{"id":16284,"nodeType":"StructDefinition","src":"2028:246:53","nodes":[],"canonicalName":"StakingReleaseQueue","members":[{"constant":false,"id":16277,"mutability":"mutable","name":"lockingDuration","nameLocation":"2133:15:53","nodeType":"VariableDeclaration","scope":16284,"src":"2125:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16276,"name":"uint256","nodeType":"ElementaryTypeName","src":"2125:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16283,"mutability":"mutable","name":"releases","nameLocation":"2263:8:53","nodeType":"VariableDeclaration","scope":16284,"src":"2220:51:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"typeName":{"id":16282,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16279,"name":"address","nodeType":"ElementaryTypeName","src":"2228:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2220:42:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$16274_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16281,"nodeType":"UserDefinedTypeName","pathNode":{"id":16280,"name":"AddressStakingReleases","nameLocations":["2239:22:53"],"nodeType":"IdentifierPath","referencedDeclaration":16274,"src":"2239:22:53"},"referencedDeclaration":16274,"src":"2239:22:53","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$16274_storage_ptr","typeString":"struct AddressStakingReleases"}}},"visibility":"internal"}],"name":"StakingReleaseQueue","nameLocation":"2035:19:53","scope":16342,"visibility":"public"},{"id":16292,"nodeType":"StructDefinition","src":"2560:313:53","nodes":[],"canonicalName":"ValidatorInfo","members":[{"constant":false,"id":16286,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"2595:19:53","nodeType":"VariableDeclaration","scope":16292,"src":"2587:27:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2587:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16288,"mutability":"mutable","name":"totalCollateral","nameLocation":"2628:15:53","nodeType":"VariableDeclaration","scope":16292,"src":"2620:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16287,"name":"uint256","nodeType":"ElementaryTypeName","src":"2620:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16291,"mutability":"mutable","name":"metadata","nameLocation":"2862:8:53","nodeType":"VariableDeclaration","scope":16292,"src":"2856:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16290,"name":"bytes","nodeType":"ElementaryTypeName","src":"2856:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatorInfo","nameLocation":"2567:13:53","scope":16342,"visibility":"public"},{"id":16313,"nodeType":"StructDefinition","src":"3432:498:53","nodes":[],"canonicalName":"ValidatorSet","members":[{"constant":false,"id":16295,"mutability":"mutable","name":"activeLimit","nameLocation":"3520:11:53","nodeType":"VariableDeclaration","scope":16313,"src":"3513:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16294,"name":"uint16","nodeType":"ElementaryTypeName","src":"3513:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":16298,"mutability":"mutable","name":"totalConfirmedCollateral","nameLocation":"3585:24:53","nodeType":"VariableDeclaration","scope":16313,"src":"3577:32:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16297,"name":"uint256","nodeType":"ElementaryTypeName","src":"3577:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16304,"mutability":"mutable","name":"validators","nameLocation":"3715:10:53","nodeType":"VariableDeclaration","scope":16313,"src":"3681:44:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"typeName":{"id":16303,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16300,"name":"address","nodeType":"ElementaryTypeName","src":"3689:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3681:33:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16302,"nodeType":"UserDefinedTypeName","pathNode":{"id":16301,"name":"ValidatorInfo","nameLocations":["3700:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":16292,"src":"3700:13:53"},"referencedDeclaration":16292,"src":"3700:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage_ptr","typeString":"struct ValidatorInfo"}}},"visibility":"internal"},{"constant":false,"id":16308,"mutability":"mutable","name":"activeValidators","nameLocation":"3809:16:53","nodeType":"VariableDeclaration","scope":16313,"src":"3803:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":16307,"nodeType":"UserDefinedTypeName","pathNode":{"id":16306,"name":"MinPQ","nameLocations":["3803:5:53"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"3803:5:53"},"referencedDeclaration":15261,"src":"3803:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$15261_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":16312,"mutability":"mutable","name":"waitingValidators","nameLocation":"3910:17:53","nodeType":"VariableDeclaration","scope":16313,"src":"3904:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":16311,"nodeType":"UserDefinedTypeName","pathNode":{"id":16310,"name":"MaxPQ","nameLocations":["3904:5:53"],"nodeType":"IdentifierPath","referencedDeclaration":14643,"src":"3904:5:53"},"referencedDeclaration":14643,"src":"3904:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$14643_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"name":"ValidatorSet","nameLocation":"3439:12:53","scope":16342,"visibility":"public"},{"id":16320,"nodeType":"StructDefinition","src":"4000:93:53","nodes":[],"canonicalName":"ParentValidatorsTracker","members":[{"constant":false,"id":16316,"mutability":"mutable","name":"validators","nameLocation":"4050:10:53","nodeType":"VariableDeclaration","scope":16320,"src":"4037:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":16315,"nodeType":"UserDefinedTypeName","pathNode":{"id":16314,"name":"ValidatorSet","nameLocations":["4037:12:53"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"4037:12:53"},"referencedDeclaration":16313,"src":"4037:12:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":16319,"mutability":"mutable","name":"changes","nameLocation":"4083:7:53","nodeType":"VariableDeclaration","scope":16320,"src":"4066:24:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":16318,"nodeType":"UserDefinedTypeName","pathNode":{"id":16317,"name":"StakingChangeLog","nameLocations":["4066:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":16257,"src":"4066:16:53"},"referencedDeclaration":16257,"src":"4066:16:53","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"name":"ParentValidatorsTracker","nameLocation":"4007:23:53","scope":16342,"visibility":"public"},{"id":16327,"nodeType":"StructDefinition","src":"4095:71:53","nodes":[],"canonicalName":"IPCAddress","members":[{"constant":false,"id":16323,"mutability":"mutable","name":"subnetId","nameLocation":"4128:8:53","nodeType":"VariableDeclaration","scope":16327,"src":"4119:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":16322,"nodeType":"UserDefinedTypeName","pathNode":{"id":16321,"name":"SubnetID","nameLocations":["4119:8:53"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"4119:8:53"},"referencedDeclaration":16209,"src":"4119:8:53","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":16326,"mutability":"mutable","name":"rawAddress","nameLocation":"4153:10:53","nodeType":"VariableDeclaration","scope":16327,"src":"4142:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"},"typeName":{"id":16325,"nodeType":"UserDefinedTypeName","pathNode":{"id":16324,"name":"FvmAddress","nameLocations":["4142:10:53"],"nodeType":"IdentifierPath","referencedDeclaration":16179,"src":"4142:10:53"},"referencedDeclaration":16179,"src":"4142:10:53","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$16179_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"name":"IPCAddress","nameLocation":"4102:10:53","scope":16342,"visibility":"public"},{"id":16334,"nodeType":"StructDefinition","src":"4211:78:53","nodes":[],"canonicalName":"Validator","members":[{"constant":false,"id":16329,"mutability":"mutable","name":"weight","nameLocation":"4242:6:53","nodeType":"VariableDeclaration","scope":16334,"src":"4234:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16328,"name":"uint256","nodeType":"ElementaryTypeName","src":"4234:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16331,"mutability":"mutable","name":"addr","nameLocation":"4262:4:53","nodeType":"VariableDeclaration","scope":16334,"src":"4254:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16330,"name":"address","nodeType":"ElementaryTypeName","src":"4254:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16333,"mutability":"mutable","name":"metadata","nameLocation":"4278:8:53","nodeType":"VariableDeclaration","scope":16334,"src":"4272:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16332,"name":"bytes","nodeType":"ElementaryTypeName","src":"4272:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Validator","nameLocation":"4218:9:53","scope":16342,"visibility":"public"},{"id":16341,"nodeType":"StructDefinition","src":"4339:81:53","nodes":[],"canonicalName":"Membership","members":[{"constant":false,"id":16338,"mutability":"mutable","name":"validators","nameLocation":"4375:10:53","nodeType":"VariableDeclaration","scope":16341,"src":"4363:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":16336,"nodeType":"UserDefinedTypeName","pathNode":{"id":16335,"name":"Validator","nameLocations":["4363:9:53"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"4363:9:53"},"referencedDeclaration":16334,"src":"4363:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":16337,"nodeType":"ArrayTypeName","src":"4363:11:53","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":16340,"mutability":"mutable","name":"configurationNumber","nameLocation":"4398:19:53","nodeType":"VariableDeclaration","scope":16341,"src":"4391:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16339,"name":"uint64","nodeType":"ElementaryTypeName","src":"4391:6:53","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Membership","nameLocation":"4346:10:53","scope":16342,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":53} \ No newline at end of file diff --git a/contracts/out/SubnetActorDiamond.sol/SubnetActorDiamond.json b/contracts/out/SubnetActorDiamond.sol/SubnetActorDiamond.json deleted file mode 100644 index 2709731c4a..0000000000 --- a/contracts/out/SubnetActorDiamond.sol/SubnetActorDiamond.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissioned","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidPowerScale","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60808060405234610625576112d5803803809161001c8285610f25565b83398101906040818303126106255780516001600160401b03811161062557810182601f8201121561062557805161005381610f48565b916100616040519384610f25565b818352602083016020819360051b830101918683116106255760208101915b838310610de657505050506020830151926001600160401b038411610625576101609485858301820312610625576040519586016001600160401b038111878210176107235760405281850151906001600160401b038211610625576100e99186840101610f87565b85526100f9602085830101610f5f565b9081602087015260408582010151600181101561062557604087015260608582010151606087015261012f608086830101610f73565b608087015261014260a086830101610f73565b60a087015260c0858201015160ff811681036106255760c087015260e0858201015161ffff811681036106255760e087015261010094858183010151868801526101208183010151918260000b830361062557610140926101208901520101518015158103610625576101408601526001600160a01b031615610dd45760a08401516001600160401b031615610dc257606084015115610db05760ff60c08501511660338110908115610da5575b50610d9357601261012085015160000b13610d81577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b036020820190811190821117610723576020810160405260008152825160005b81811061078e5750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106107395788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102d38b8b6000602085015283820360408501526110fa565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116909117905582518051600b80546001600160401b0319166001600160401b0392831617905591015180519182116107235768010000000000000000821161072357600c5482600c558083106106dc575b50602001600c600052602060002060005b8381106106bf57858560018060a01b0360208301511660095490604084015160018110156106a95760ff8019600d5416911617600d556060840151600655608084015160075460018060401b0360a0870151169168010000000000000000600160801b039060401b169060018060801b031916171760075560ff60a01b60c085015160a01b169160018060a81b031916171760095561012082015160ff19601b54169060ff1617601b55810151600a556040516104a481610eef565b600b546001600160401b03168152604051600c805480835260009182527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c791839160208301915b81811061068757505061050092500382610f25565b6020820152610542600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b835260406004840152604483019061102a565b3060248301520381855af49081156106325760009161063e575b506020906105869260405180809581946390ba52cf60e01b8352866004840152602483019061102a565b03915af4908115610632576000916105f9575b61ffff60e08484600855610140810151151562ff0000600d549160101b169062ff0000191617600d5501511661ffff19600e541617600e556801000000000000000160018060801b0319601754161760175560405160eb90816111aa8239f35b90506020813d60201161062a575b8161061460209383610f25565b81010312610625575161ffff610599565b600080fd5b3d9150610607565b6040513d6000823e3d90fd5b90503d806000833e6106508183610f25565b810191602082840312610625578151916001600160401b038311610625576105869360209361067f9201610f87565b91509161055c565b84546001600160a01b03168352600194850194869450602090930192016104eb565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b0316818301556020909201916001016103e8565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b81830181106107175750506103d7565b60008155600101610707565b634e487b7160e01b600052604160045260246000fd5b90919294602080610780600193607f198b8203018652606060408b51878060a01b03815116845261077086820151878601906110af565b01519181604082015201906110bc565b97019201920190929161028e565b604061079a8287611085565b5101516001600160a01b036107af8388611085565b51511690805115610d685760206107c68489611085565b51015160038110156106a957806109d4575081156109ab5761ffff60008051602061129583398151915254169161083c60405161080281610f0a565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528261116a565b8151916000935b8385106108595750505050506001905b01610260565b6001600160e01b031961086c8684611085565b511660008181526000805160206112b583398151915260205260409020546001600160a01b0316610993576109026040516108a681610eef565b85815261ffff8416602080830191825260008581526000805160206112b5833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206112958339815191525490680100000000000000008210156107235761094482600161096194016000805160206112958339815191525561113a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff8082161461097d57600161ffff81921601940193610843565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b8152602060048201529081906109d09060248301906110bc565b0390fd5b60018103610b3b57508115610b1657610a336040516109f281610f0a565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528361116a565b80519060005b828110610a4c5750505050600190610853565b6001600160e01b0319610a5f8284611085565b511660008181526000805160206112b583398151915260205260409020546001600160a01b0316308114610afd57858114610ae45715610acc5760009081526000805160206112b58339815191526020526040902080546001600160a01b03191685179055600101610a39565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906109d09060248301906110bc565b60028103610d485750600080516020611295833981519152549180610d30575080519060005b828110610b745750505050600190610853565b6001600160e01b0319610b878284611085565b511690816000526000805160206112b583398151915260205260406000209460405195610bb387610eef565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d175785516001600160a01b03163014610cfe57801561097d576000190180958161ffff60208301511603610c83575b505060008051602061129583398151915254918215610c6d5760019260001901610c2b8161113a565b63ffffffff82549160031b1b19169055600080516020611295833981519152556000526000805160206112b58339815191526020526000604081205501610b61565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610c94610cf79461113a565b90549060031b1c60e01b92610cb18461094485858501511661113a565b01516001600160e01b031990921660009081526000805160206112b583398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c02565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610d669060048301906110af565bfd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b6064915011386101f0565b6040516368f7a67560e11b8152600490fd5b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161062557820160609081601f19828c03011261062557604051918083016001600160401b03811184821017610eda57604052610e3060208301610f5f565b835260408201516003811015610625576020840152810151906001600160401b038211610625570189603f82011215610625576020810151610e7181610f48565b91610e7f6040519384610f25565b8183526040602084019260051b820101908c821161062557604001915b818310610eb9575050506040820152815260209283019201610080565b82516001600160e01b03198116810361062557815260209283019201610e9c565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761072357604052565b606081019081106001600160401b0382111761072357604052565b601f909101601f19168101906001600160401b0382119082101761072357604052565b6001600160401b0381116107235760051b60200190565b51906001600160a01b038216820361062557565b51906001600160401b038216820361062557565b91906040838203126106255760405192610fa084610eef565b83610faa82610f73565b815260208281015190926001600160401b03821161062557019280601f85011215610625578351610fda81610f48565b94610fe86040519687610f25565b818652848087019260051b8201019283116106255784809101915b83831061101257505050500152565b819061101d84610f5f565b8152019101908490611003565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611068575050505090565b83516001600160a01b03168552938101939281019260010161105a565b80518210156110995760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060038210156106a95752565b90815180825260208080930193019160005b8281106110dc575050505090565b83516001600160e01b031916855293810193928101926001016110ce565b919082519283825260005b848110611126575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611105565b90600080516020611295833981519152805483101561109957600052601c60206000208360031c019260021b1690565b803b15611175575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906109d09060448301906110fa56fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b6009546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea2646970667358221220ec20f929aae89bd8727781024068fc2fa75d70b908b2febe6a0020f035e660b664736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"834:4614:15:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;834:4614:15;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;1436:35;1432:94;;834:4614;;;;-1:-1:-1;;;;;834:4614:15;1602:31;1598:94;;834:4614;;;;1705:35;1701:92;;834:4614;;;;;;1834:2;1806:30;;:65;;;;;834:4614;1802:130;;;1965:2;834:4614;;;;-1:-1:-1;834:4614:15;1945:22;1941:79;;2258:16:37;834:4614:15;;-1:-1:-1;;;;;;834:4614:15;2058:10;834:4614;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;-1:-1:-1;834:4614:15;;;;-1:-1:-1;2937:19:37;;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;3911:74:37;834:4614:15;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;;:::i;:::-;3911:74:37;;;2289:22:15;834:4614;;;;;;;-1:-1:-1;;834:4614:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;834:4614:15;;;;;;;;;;;;2511:15;;834:4614;;2498:10;834:4614;;-1:-1:-1;;;;;;834:4614:15;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;-1:-1:-1;834:4614:15;-1:-1:-1;834:4614:15;;;;;;;;;;;;;;;;;;2536:16;834:4614;;;;;;;;;;;;;;;2586:11;834:4614;;;;;2586:11;834:4614;;;;;2626:25;834:4614;;;;;2694:15;834:4614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2694:15;834:4614;;;;;;;;;;;;;;;;;;;;;2536:16;834:4614;;;;;;;2860:12;834:4614;;;;;;2860:12;834:4614;;;;2902:16;834:4614;;;;;;:::i;:::-;2498:10;834:4614;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;2974:25:15;834:4614;;;;;;;;;;2974:40;;834:4614;2974:40;;;834:4614;;;;;;:::i;:::-;3008:4;834:4614;;;;2974:40;;;;;;;;;;-1:-1:-1;2974:40:15;;;834:4614;;;;;;;;;;;;;;;;2974:49;;;:40;:49;;834:4614;;;;;;:::i;:::-;2974:49;;;;;;;;;-1:-1:-1;2974:49:15;;;834:4614;;;;;2952:19;834:4614;;;;;;;;2586:11;834:4614;;;;;;;;;;2586:11;834:4614;;;;;;3080:14;834:4614;;;3080:14;834:4614;;;;;;;;3257:11;834:4614;;;3257:11;834:4614;;;;;;;;;;2974:49;;;834:4614;2974:49;;834:4614;2974:49;;;;;;834:4614;2974:49;;;:::i;:::-;;;834:4614;;;;;;2974:49;;834:4614;-1:-1:-1;834:4614:15;;2974:49;;;-1:-1:-1;2974:49:15;;;834:4614;;;-1:-1:-1;834:4614:15;;;;;2974:40;;;;;-1:-1:-1;2974:40:15;;;;;;:::i;:::-;;;834:4614;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;:::i;:::-;2974:40;;;;;834:4614;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;-1:-1:-1;834:4614:15;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:37;834:4614:15;3010:23:37;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:37;;;;:::i;:::-;;834:4614:15;;;;;3142:29:37;3138:122;;834:4614:15;3309:23:37;;;;:::i;:::-;;:30;834:4614:15;;;;;;;3357:37:37;;;4150:27;;;4146:116;;834:4614:15;-1:-1:-1;;;;;;;;;;;834:4614:15;;;4385:74:37;834:4614:15;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;834:4614:15;;;;4385:74:37;;:::i;:::-;834:4614:15;;4526:21:37;-1:-1:-1;4521:677:37;4549:22;;;;;;3353:466;;;;;834:4614:15;3353:466:37;;834:4614:15;2917:18:37;;4526:21;-1:-1:-1;;;;;;4607:33:37;;;;:::i;:::-;834:4614:15;;-1:-1:-1;834:4614:15;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;-1:-1:-1;;;;;834:4614:15;4751:128:37;;834:4614:15;;;;;;:::i;:::-;;;;;;;;4939:107:37;;;834:4614:15;;;-1:-1:-1;834:4614:15;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;;;;;;;-1:-1:-1;;;;;;834:4614:15;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;-1:-1:-1;;;834:4614:15;;;;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:37;;;834:4614:15;;;;-1:-1:-1;834:4614:15;;;;;-1:-1:-1;834:4614:15;4751:128:37;834:4614:15;;;;4811:53:37;;;;;;;;;834:4614:15;4811:53:37;4146:116;834:4614:15;;-1:-1:-1;;;4200:51:37;;834:4614:15;4200:51:37;;;834:4614:15;;;;;;;;;;;:::i;:::-;4200:51:37;;;3353:466;834:4614:15;3484:41:37;;834:4614:15;;5372:27:37;;;5368:131;;5508:81;834:4614:15;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;834:4614:15;;;;5508:81:37;;:::i;:::-;834:4614:15;;5652:21:37;-1:-1:-1;5675:18:37;;;;;;3480:339;;;;834:4614:15;3480:339:37;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:37;;;;:::i;:::-;834:4614:15;;-1:-1:-1;834:4614:15;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;-1:-1:-1;;;;;834:4614:15;6011:4:37;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;834:4614:15;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;;-1:-1:-1;;;;;;834:4614:15;;;;;;;5652:21:37;;6268:123;834:4614:15;;;;6328:48:37;;;;;;;;;834:4614:15;6328:48:37;6111:144;834:4614:15;;-1:-1:-1;;;6174:66:37;;;;;834:4614:15;;;;;6174:66:37;5980:118;834:4614:15;;-1:-1:-1;;;6043:40:37;;;;;834:4614:15;;;;;6043:40:37;5368:131;834:4614:15;;-1:-1:-1;;;5422:66:37;;834:4614:15;5422:66:37;;;834:4614:15;;;;;;;;;;;:::i;3480:339:37:-;3629:30;3619:40;;3629:30;;834:4614:15;-1:-1:-1;;;;;;;;;;;834:4614:15;6826:27:37;;6822:115;;834:4614:15;;;6999:21:37;-1:-1:-1;7022:18:37;;;;;;3615:204;;;;834:4614:15;3615:204:37;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:37;;;;:::i;:::-;834:4614:15;;;;-1:-1:-1;834:4614:15;-1:-1:-1;;;;;;;;;;;834:4614:15;;;-1:-1:-1;834:4614:15;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;7278:61:37;7274:153;;834:4614:15;;-1:-1:-1;;;;;834:4614:15;7597:4:37;7538:64;7534:149;;834:4614:15;;;;;;;7747:15:37;834:4614:15;;;;;;;;7780:68:37;7776:412;;6999:21;834:4614:15;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;;;-1:-1:-1;;834:4614:15;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;834:4614:15;-1:-1:-1;834:4614:15;-1:-1:-1;;;;;;;;;;;834:4614:15;;-1:-1:-1;834:4614:15;;;;;6999:21:37;;834:4614:15;;;;-1:-1:-1;834:4614:15;;;;;-1:-1:-1;834:4614:15;7776:412:37;834:4614:15;;7890:27:37;8033:140;7890:27;;:::i;:::-;834:4614:15;;;;;;;;;7935:80:37;834:4614:15;7935:65:37;834:4614:15;;;;;;7935:65:37;:::i;:80::-;834:4614:15;;-1:-1:-1;;;;;;834:4614:15;;;-1:-1:-1;834:4614:15;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;;-1:-1:-1;;;;834:4614:15;;;;;;;-1:-1:-1;;;834:4614:15;;;;;8033:140:37;7776:412;;;;7534:149;834:4614:15;;-1:-1:-1;;;7629:39:37;;;;;834:4614:15;;;;;7629:39:37;7274:153;834:4614:15;;-1:-1:-1;;;7366:46:37;;;;;834:4614:15;;;;;7366:46:37;6822:115;834:4614:15;;;;6876:50:37;;;;;;;;;834:4614:15;6876:50:37;3615:204;834:4614:15;;-1:-1:-1;;;3773:31:37;;834:4614:15;;;;3773:31:37;;;;834:4614:15;:::i;:::-;3773:31:37;3138:122;834:4614:15;;-1:-1:-1;;;3198:47:37;;;;;834:4614:15;;;;;3198:47:37;1941:79:15;834:4614;;-1:-1:-1;;;1990:19:15;;;;;1802:130;834:4614;;-1:-1:-1;;;1894:27:15;;;;;1806:65;1868:3;1840:31;;;1806:65;;;1701:92;834:4614;;-1:-1:-1;;;1763:19:15;;;;;1598:94;834:4614;;-1:-1:-1;;;1656:25:15;;;;;1432:94;834:4614;;-1:-1:-1;;;1494:21:15;;;;;834:4614;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;834:4614:15;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;:::o;:::-;;;;;-1:-1:-1;;834:4614:15;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;834:4614:15;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;834:4614:15;;;;;;:::o;:::-;;;-1:-1:-1;;;;;834:4614:15;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;834:4614:15;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;834:4614:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;834:4614:15;;;;;;;-1:-1:-1;834:4614:15;;;-1:-1:-1;834:4614:15;;;;;;;;;;:::o;9308:320:37:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;834:4614:15;;;-1:-1:-1;;;9566:45:37;;-1:-1:-1;;;;;834:4614:15;;;9566:45:37;;;834:4614:15;;;;;;;;;;;;;;;:::i","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1292,"length":20}]}}},"deployedBytecode":{"object":"0x60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b6009546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea2646970667358221220ec20f929aae89bd8727781024068fc2fa75d70b908b2febe6a0020f035e660b664736f6c63430008130033","sourceMap":"834:4614:15:-:0;;;;;;;-1:-1:-1;3966:7:15;;-1:-1:-1;;;;;;3966:7:15;260:43:37;;;;;;834:4614:15;260:43:37;;;-1:-1:-1;;;;;260:43:37;;4001:19:15;;3997:82;;834:4614;;;;;4223:593;;;834:4614;;4223:593;;;;;;;;;;;;;;;;;3997:82;-1:-1:-1;;;834:4614:15;4043:25;-1:-1:-1;;;;;;260:43:37;4043:25:15;260:43:37;-1:-1:-1;;260:43:37;4043:25:15;834:4614;4043:25;834:4614;5307:16;260:43:37;-1:-1:-1;;;;;260:43:37;5293:10:15;:30;5289:80;;834:4614;5289:80;5346:12;;;834:4614;5346:12;;834:4614;5346:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"bool\",\"name\":\"permissioned\",\"type\":\"bool\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPowerScale\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetActorDiamond.sol\":\"SubnetActorDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x7626ac21fea0b16241edbde8233650b8c7cc4e0faf7ac0f34f7cadf1db03a4fd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://535bd318976c3d4c9a1df5af71a70e47df7021acdc54909de919b16b61fe250b\",\"dweb:/ipfs/QmShbYA6XA4sXFs7QvTAsCcdYmKq1DCLBBgZ7oGKu4pYsC\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"bool","name":"permissioned","type":"bool"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidPowerScale"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetActorDiamond.sol":"SubnetActorDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x7626ac21fea0b16241edbde8233650b8c7cc4e0faf7ac0f34f7cadf1db03a4fd","urls":["bzz-raw://535bd318976c3d4c9a1df5af71a70e47df7021acdc54909de919b16b61fe250b","dweb:/ipfs/QmShbYA6XA4sXFs7QvTAsCcdYmKq1DCLBBgZ7oGKu4pYsC"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetActorDiamond.sol","id":5288,"exportedSymbols":{"ConsensusType":[6033],"FunctionNotFound":[4940],"GatewayCannotBeZero":[6079],"IDiamond":[8675],"IDiamondCut":[8694],"IDiamondLoupe":[8735],"IERC165":[8746],"InvalidCollateral":[6089],"InvalidMajorityPercentage":[6101],"InvalidPowerScale":[6103],"InvalidSubmissionPeriod":[6117],"LibDiamond":[10200],"LibStaking":[13299],"NotGateway":[6151],"SubnetActorDiamond":[5287],"SubnetActorStorage":[13839],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"46:5403:15","nodes":[{"id":4909,"nodeType":"PragmaDirective","src":"46:23:15","nodes":[],"literals":["solidity","0.8",".19"]},{"id":4911,"nodeType":"ImportDirective","src":"71:67:15","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":4910,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"79:18:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4913,"nodeType":"ImportDirective","src":"139:56:15","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"./enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":6034,"symbolAliases":[{"foreign":{"id":4912,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"147:13:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4915,"nodeType":"ImportDirective","src":"196:51:15","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":8676,"symbolAliases":[{"foreign":{"id":4914,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"204:8:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4917,"nodeType":"ImportDirective","src":"248:57:15","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":8695,"symbolAliases":[{"foreign":{"id":4916,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"256:11:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4919,"nodeType":"ImportDirective","src":"306:61:15","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":8736,"symbolAliases":[{"foreign":{"id":4918,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"314:13:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4921,"nodeType":"ImportDirective","src":"368:49:15","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":8747,"symbolAliases":[{"foreign":{"id":4920,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"376:7:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4928,"nodeType":"ImportDirective","src":"418:161:15","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":4922,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"426:19:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4923,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"447:10:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4924,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"459:23:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4925,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"484:17:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4926,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6101,"src":"503:25:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4927,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"530:17:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4930,"nodeType":"ImportDirective","src":"580:48:15","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":10201,"symbolAliases":[{"foreign":{"id":4929,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"588:10:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4932,"nodeType":"ImportDirective","src":"629:46:15","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":4931,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"637:8:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4934,"nodeType":"ImportDirective","src":"676:56:15","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"./lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":4933,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"684:14:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4936,"nodeType":"ImportDirective","src":"733:48:15","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":5288,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":4935,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"741:10:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4940,"nodeType":"ErrorDefinition","src":"783:49:15","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"789:16:15","parameters":{"id":4939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4938,"mutability":"mutable","name":"_functionSelector","nameLocation":"813:17:15","nodeType":"VariableDeclaration","scope":4940,"src":"806:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4937,"name":"bytes4","nodeType":"ElementaryTypeName","src":"806:6:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"805:26:15"}},{"id":5287,"nodeType":"ContractDefinition","src":"834:4614:15","nodes":[{"id":4943,"nodeType":"VariableDeclaration","src":"868:29:15","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"896:1:15","scope":5287,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":4942,"nodeType":"UserDefinedTypeName","pathNode":{"id":4941,"name":"SubnetActorStorage","nameLocations":["868:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"868:18:15"},"referencedDeclaration":13839,"src":"868:18:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":4947,"nodeType":"UsingForDirective","src":"904:34:15","nodes":[],"global":false,"libraryName":{"id":4944,"name":"SubnetIDHelper","nameLocations":["910:14:15"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"910:14:15"},"typeName":{"id":4946,"nodeType":"UserDefinedTypeName","pathNode":{"id":4945,"name":"SubnetID","nameLocations":["929:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"929:8:15"},"referencedDeclaration":16209,"src":"929:8:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":4972,"nodeType":"StructDefinition","src":"944:387:15","nodes":[],"canonicalName":"SubnetActorDiamond.ConstructorParams","members":[{"constant":false,"id":4950,"mutability":"mutable","name":"parentId","nameLocation":"988:8:15","nodeType":"VariableDeclaration","scope":4972,"src":"979:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":4949,"nodeType":"UserDefinedTypeName","pathNode":{"id":4948,"name":"SubnetID","nameLocations":["979:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"979:8:15"},"referencedDeclaration":16209,"src":"979:8:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":4952,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1014:14:15","nodeType":"VariableDeclaration","scope":4972,"src":"1006:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4951,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4955,"mutability":"mutable","name":"consensus","nameLocation":"1052:9:15","nodeType":"VariableDeclaration","scope":4972,"src":"1038:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"},"typeName":{"id":4954,"nodeType":"UserDefinedTypeName","pathNode":{"id":4953,"name":"ConsensusType","nameLocations":["1038:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":6033,"src":"1038:13:15"},"referencedDeclaration":6033,"src":"1038:13:15","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":4957,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1079:23:15","nodeType":"VariableDeclaration","scope":4972,"src":"1071:31:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4956,"name":"uint256","nodeType":"ElementaryTypeName","src":"1071:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4959,"mutability":"mutable","name":"minValidators","nameLocation":"1119:13:15","nodeType":"VariableDeclaration","scope":4972,"src":"1112:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4958,"name":"uint64","nodeType":"ElementaryTypeName","src":"1112:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4961,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1149:19:15","nodeType":"VariableDeclaration","scope":4972,"src":"1142:26:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4960,"name":"uint64","nodeType":"ElementaryTypeName","src":"1142:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4963,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1184:18:15","nodeType":"VariableDeclaration","scope":4972,"src":"1178:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4962,"name":"uint8","nodeType":"ElementaryTypeName","src":"1178:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4965,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1219:21:15","nodeType":"VariableDeclaration","scope":4972,"src":"1212:28:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4964,"name":"uint16","nodeType":"ElementaryTypeName","src":"1212:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4967,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1258:14:15","nodeType":"VariableDeclaration","scope":4972,"src":"1250:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1250:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4969,"mutability":"mutable","name":"powerScale","nameLocation":"1287:10:15","nodeType":"VariableDeclaration","scope":4972,"src":"1282:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":4968,"name":"int8","nodeType":"ElementaryTypeName","src":"1282:4:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":4971,"mutability":"mutable","name":"permissioned","nameLocation":"1312:12:15","nodeType":"VariableDeclaration","scope":4972,"src":"1307:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4970,"name":"bool","nodeType":"ElementaryTypeName","src":"1307:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"951:17:15","scope":5287,"visibility":"public"},{"id":5211,"nodeType":"FunctionDefinition","src":"1337:2240:15","nodes":[],"body":{"id":5210,"nodeType":"Block","src":"1422:2155:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4982,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"1436:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":4983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1443:14:15","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":4952,"src":"1436:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1469:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1461:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4984,"name":"address","nodeType":"ElementaryTypeName","src":"1461:7:15","typeDescriptions":{}}},"id":4987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1436:35:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4993,"nodeType":"IfStatement","src":"1432:94:15","trueBody":{"id":4992,"nodeType":"Block","src":"1473:53:15","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4989,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"1494:19:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1494:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4991,"nodeType":"RevertStatement","src":"1487:28:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4994,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"1602:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":4995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1609:19:15","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":4961,"src":"1602:26:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1632:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1602:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5002,"nodeType":"IfStatement","src":"1598:94:15","trueBody":{"id":5001,"nodeType":"Block","src":"1635:57:15","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4998,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"1656:23:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5000,"nodeType":"RevertStatement","src":"1649:32:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5003,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"1705:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1712:23:15","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":4957,"src":"1705:30:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1739:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1705:35:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5011,"nodeType":"IfStatement","src":"1701:92:15","trueBody":{"id":5010,"nodeType":"Block","src":"1742:51:15","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5007,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"1763:17:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1763:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5009,"nodeType":"RevertStatement","src":"1756:26:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5012,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"1806:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1813:18:15","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":4963,"src":"1806:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":5014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1834:2:15","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1806:30:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5016,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"1840:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1847:18:15","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":4963,"src":"1840:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":5018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1868:3:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1840:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1806:65:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5025,"nodeType":"IfStatement","src":"1802:130:15","trueBody":{"id":5024,"nodeType":"Block","src":"1873:59:15","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5021,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6101,"src":"1894:25:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1894:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5023,"nodeType":"RevertStatement","src":"1887:34:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":5029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5026,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"1945:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1952:10:15","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":4969,"src":"1945:17:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3138","id":5028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1965:2:15","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1945:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5034,"nodeType":"IfStatement","src":"1941:79:15","trueBody":{"id":5033,"nodeType":"Block","src":"1969:51:15","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5030,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"1990:17:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5032,"nodeType":"RevertStatement","src":"1983:26:15"}]}},{"expression":{"arguments":[{"expression":{"id":5038,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2058:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2062:6:15","memberName":"sender","nodeType":"MemberAccess","src":"2058:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5035,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"2030:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2041:16:15","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":9620,"src":"2030:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2030:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5041,"nodeType":"ExpressionStatement","src":"2030:39:15"},{"expression":{"arguments":[{"id":5045,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"2115:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":5048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2143:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2135:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5046,"name":"address","nodeType":"ElementaryTypeName","src":"2135:7:15","typeDescriptions":{}}},"id":5049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2168:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2158:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5050,"name":"bytes","nodeType":"ElementaryTypeName","src":"2162:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2158:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5042,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"2079:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2090:10:15","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":9780,"src":"2079:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2102:11:15","2128:5:15","2147:9:15"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"2079:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5055,"nodeType":"ExpressionStatement","src":"2079:93:15"},{"assignments":[5060],"declarations":[{"constant":false,"id":5060,"mutability":"mutable","name":"ds","nameLocation":"2217:2:15","nodeType":"VariableDeclaration","scope":5210,"src":"2183:36:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5059,"nodeType":"UserDefinedTypeName","pathNode":{"id":5058,"name":"LibDiamond.DiamondStorage","nameLocations":["2183:10:15","2194:14:15"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"2183:25:15"},"referencedDeclaration":9590,"src":"2183:25:15","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5064,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5061,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"2222:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2233:14:15","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"2222:25:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2222:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2183:66:15"},{"expression":{"id":5074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":5065,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"2289:2:15","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2292:19:15","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"2289:22:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":5072,"indexExpression":{"expression":{"arguments":[{"id":5068,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"2317:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8746_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8746_$","typeString":"type(contract IERC165)"}],"id":5067,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2312:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2312:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8746","typeString":"type(contract IERC165)"}},"id":5070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2326:11:15","memberName":"interfaceId","nodeType":"MemberAccess","src":"2312:25:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2289:49:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2341:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2289:56:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5075,"nodeType":"ExpressionStatement","src":"2289:56:15"},{"expression":{"id":5085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":5076,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"2355:2:15","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2358:19:15","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"2355:22:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":5083,"indexExpression":{"expression":{"arguments":[{"id":5079,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"2383:11:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$8694_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$8694_$","typeString":"type(contract IDiamondCut)"}],"id":5078,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2378:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2378:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$8694","typeString":"type(contract IDiamondCut)"}},"id":5081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2396:11:15","memberName":"interfaceId","nodeType":"MemberAccess","src":"2378:29:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2355:53:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2411:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2355:60:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5086,"nodeType":"ExpressionStatement","src":"2355:60:15"},{"expression":{"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":5087,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"2425:2:15","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2428:19:15","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"2425:22:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":5094,"indexExpression":{"expression":{"arguments":[{"id":5090,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"2453:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$8735_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$8735_$","typeString":"type(contract IDiamondLoupe)"}],"id":5089,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2448:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2448:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$8735","typeString":"type(contract IDiamondLoupe)"}},"id":5092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2468:11:15","memberName":"interfaceId","nodeType":"MemberAccess","src":"2448:31:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2425:55:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2483:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2425:62:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5097,"nodeType":"ExpressionStatement","src":"2425:62:15"},{"expression":{"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5098,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2498:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2500:8:15","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":13790,"src":"2498:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5101,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2511:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2518:8:15","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":4950,"src":"2511:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2498:28:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":5104,"nodeType":"ExpressionStatement","src":"2498:28:15"},{"expression":{"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2536:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2538:14:15","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"2536:16:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5108,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2555:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2562:14:15","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":4952,"src":"2555:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2536:40:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5111,"nodeType":"ExpressionStatement","src":"2536:40:15"},{"expression":{"id":5117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5112,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2586:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2588:9:15","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":13794,"src":"2586:11:15","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5115,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2600:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2607:9:15","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":4955,"src":"2600:16:15","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"src":"2586:30:15","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"id":5118,"nodeType":"ExpressionStatement","src":"2586:30:15"},{"expression":{"id":5124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2626:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2628:23:15","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":13769,"src":"2626:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5122,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2654:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2661:23:15","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":4957,"src":"2654:30:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2626:58:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5125,"nodeType":"ExpressionStatement","src":"2626:58:15"},{"expression":{"id":5131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5126,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2694:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2696:13:15","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":13775,"src":"2694:15:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5129,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2712:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2719:13:15","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":4959,"src":"2712:20:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2694:38:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5132,"nodeType":"ExpressionStatement","src":"2694:38:15"},{"expression":{"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5133,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2742:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2744:19:15","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":13772,"src":"2742:21:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5136,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2766:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2773:19:15","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":4961,"src":"2766:26:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2742:50:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5139,"nodeType":"ExpressionStatement","src":"2742:50:15"},{"expression":{"id":5145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5140,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2802:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2804:18:15","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":13783,"src":"2802:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5143,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2825:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2832:18:15","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":4963,"src":"2825:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2802:48:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5146,"nodeType":"ExpressionStatement","src":"2802:48:15"},{"expression":{"id":5152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5147,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2860:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2862:10:15","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":13818,"src":"2860:12:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5150,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2875:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2882:10:15","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":4969,"src":"2875:17:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"2860:32:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":5153,"nodeType":"ExpressionStatement","src":"2860:32:15"},{"expression":{"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5154,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2902:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2904:14:15","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":13786,"src":"2902:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5157,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"2921:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2928:14:15","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":4967,"src":"2921:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2902:40:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5160,"nodeType":"ExpressionStatement","src":"2902:40:15"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5161,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2952:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2954:17:15","memberName":"currentSubnetHash","nodeType":"MemberAccess","referencedDeclaration":13777,"src":"2952:19:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":5169,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3008:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$5287","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$5287","typeString":"contract SubnetActorDiamond"}],"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3000:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5167,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:15","typeDescriptions":{}}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3000:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":5164,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"2974:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2976:8:15","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":13790,"src":"2974:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"id":5166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2985:14:15","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":14293,"src":"2974:25:15","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$16209_memory_ptr_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":5171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2974:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":5172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3015:6:15","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":14219,"src":"2974:47:15","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2974:49:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2952:71:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"2952:71:15"},{"expression":{"id":5181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5176,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"3033:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3035:12:15","memberName":"permissioned","nodeType":"MemberAccess","referencedDeclaration":13800,"src":"3033:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5179,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"3050:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3057:12:15","memberName":"permissioned","nodeType":"MemberAccess","referencedDeclaration":4971,"src":"3050:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3033:36:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5182,"nodeType":"ExpressionStatement","src":"3033:36:15"},{"expression":{"id":5190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":5183,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"3080:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3082:12:15","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"3080:14:15","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":5187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3095:11:15","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"3080:26:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5188,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"3109:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":5189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3116:21:15","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":4965,"src":"3109:28:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3080:57:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":5191,"nodeType":"ExpressionStatement","src":"3080:57:15"},{"expression":{"id":5199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":5192,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"3257:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3259:9:15","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"3257:11:15","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":5196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3269:23:15","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"3257:35:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5197,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"3295:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":5198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3306:28:15","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":12615,"src":"3295:39:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3257:77:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5200,"nodeType":"ExpressionStatement","src":"3257:77:15"},{"expression":{"id":5208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":5201,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"3492:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3494:9:15","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"3492:11:15","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":5205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3504:24:15","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"3492:36:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5206,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"3531:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":5207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3542:28:15","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":12615,"src":"3531:39:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3492:78:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5209,"nodeType":"ExpressionStatement","src":"3492:78:15"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4976,"mutability":"mutable","name":"_diamondCut","nameLocation":"1376:11:15","nodeType":"VariableDeclaration","scope":5211,"src":"1349:38:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":4974,"nodeType":"UserDefinedTypeName","pathNode":{"id":4973,"name":"IDiamond.FacetCut","nameLocations":["1349:8:15","1358:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"1349:17:15"},"referencedDeclaration":8664,"src":"1349:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":4975,"nodeType":"ArrayTypeName","src":"1349:19:15","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":4979,"mutability":"mutable","name":"params","nameLocation":"1414:6:15","nodeType":"VariableDeclaration","scope":5211,"src":"1389:31:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":4978,"nodeType":"UserDefinedTypeName","pathNode":{"id":4977,"name":"ConstructorParams","nameLocations":["1389:17:15"],"nodeType":"IdentifierPath","referencedDeclaration":4972,"src":"1389:17:15"},"referencedDeclaration":4972,"src":"1389:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$4972_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1348:73:15"},"returnParameters":{"id":4981,"nodeType":"ParameterList","parameters":[],"src":"1422:0:15"},"scope":5287,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5250,"nodeType":"FunctionDefinition","src":"3583:1239:15","nodes":[],"body":{"id":5249,"nodeType":"Block","src":"3613:1209:15","nodes":[],"statements":[{"assignments":[5218],"declarations":[{"constant":false,"id":5218,"mutability":"mutable","name":"ds","nameLocation":"3657:2:15","nodeType":"VariableDeclaration","scope":5249,"src":"3623:36:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5217,"nodeType":"UserDefinedTypeName","pathNode":{"id":5216,"name":"LibDiamond.DiamondStorage","nameLocations":["3623:10:15","3634:14:15"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"3623:25:15"},"referencedDeclaration":9590,"src":"3623:25:15","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5219,"nodeType":"VariableDeclarationStatement","src":"3623:36:15"},{"assignments":[5221],"declarations":[{"constant":false,"id":5221,"mutability":"mutable","name":"position","nameLocation":"3677:8:15","nodeType":"VariableDeclaration","scope":5249,"src":"3669:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3669:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5224,"initialValue":{"expression":{"id":5222,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"3688:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3699:24:15","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":9491,"src":"3688:35:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3669:54:15"},{"AST":{"nodeType":"YulBlock","src":"3819:43:15","statements":[{"nodeType":"YulAssignment","src":"3833:19:15","value":{"name":"position","nodeType":"YulIdentifier","src":"3844:8:15"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3833:7:15"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":5218,"isOffset":false,"isSlot":true,"src":"3833:7:15","suffix":"slot","valueSize":1},{"declaration":5221,"isOffset":false,"isSlot":false,"src":"3844:8:15","valueSize":1}],"id":5225,"nodeType":"InlineAssembly","src":"3810:52:15"},{"assignments":[5227],"declarations":[{"constant":false,"id":5227,"mutability":"mutable","name":"facet","nameLocation":"3923:5:15","nodeType":"VariableDeclaration","scope":5249,"src":"3915:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5226,"name":"address","nodeType":"ElementaryTypeName","src":"3915:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5234,"initialValue":{"expression":{"baseExpression":{"expression":{"id":5228,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"3931:2:15","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3934:31:15","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"3931:34:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":5232,"indexExpression":{"expression":{"id":5230,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3966:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3970:3:15","memberName":"sig","nodeType":"MemberAccess","src":"3966:7:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3931:43:15","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":5233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3975:12:15","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"3931:56:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3915:72:15"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5235,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"4001:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4018:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4010:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5236,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:15","typeDescriptions":{}}},"id":5239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4010:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4001:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5247,"nodeType":"IfStatement","src":"3997:82:15","trueBody":{"id":5246,"nodeType":"Block","src":"4022:57:15","statements":[{"errorCall":{"arguments":[{"expression":{"id":5242,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4060:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4064:3:15","memberName":"sig","nodeType":"MemberAccess","src":"4060:7:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5241,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4940,"src":"4043:16:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5245,"nodeType":"RevertStatement","src":"4036:32:15"}]}},{"AST":{"nodeType":"YulBlock","src":"4232:584:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4315:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4318:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4321:12:15"},"nodeType":"YulFunctionCall","src":"4321:14:15"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4302:12:15"},"nodeType":"YulFunctionCall","src":"4302:34:15"},"nodeType":"YulExpressionStatement","src":"4302:34:15"},{"nodeType":"YulVariableDeclaration","src":"4402:65:15","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4429:3:15"},"nodeType":"YulFunctionCall","src":"4429:5:15"},{"name":"facet","nodeType":"YulIdentifier","src":"4436:5:15"},{"kind":"number","nodeType":"YulLiteral","src":"4443:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4446:12:15"},"nodeType":"YulFunctionCall","src":"4446:14:15"},{"kind":"number","nodeType":"YulLiteral","src":"4462:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4465:1:15","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"4416:12:15"},"nodeType":"YulFunctionCall","src":"4416:51:15"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"4406:6:15","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4531:1:15","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4534:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4537:14:15"},"nodeType":"YulFunctionCall","src":"4537:16:15"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"4516:14:15"},"nodeType":"YulFunctionCall","src":"4516:38:15"},"nodeType":"YulExpressionStatement","src":"4516:38:15"},{"cases":[{"body":{"nodeType":"YulBlock","src":"4667:59:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4692:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4695:14:15"},"nodeType":"YulFunctionCall","src":"4695:16:15"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4685:6:15"},"nodeType":"YulFunctionCall","src":"4685:27:15"},"nodeType":"YulExpressionStatement","src":"4685:27:15"}]},"nodeType":"YulCase","src":"4660:66:15","value":{"kind":"number","nodeType":"YulLiteral","src":"4665:1:15","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"4747:59:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4772:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4775:14:15"},"nodeType":"YulFunctionCall","src":"4775:16:15"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"4765:6:15"},"nodeType":"YulFunctionCall","src":"4765:27:15"},"nodeType":"YulExpressionStatement","src":"4765:27:15"}]},"nodeType":"YulCase","src":"4739:67:15","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"4641:6:15"},"nodeType":"YulSwitch","src":"4634:172:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":5227,"isOffset":false,"isSlot":false,"src":"4436:5:15","valueSize":1}],"id":5248,"nodeType":"InlineAssembly","src":"4223:593:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"3592:9:15","parameters":{"id":5212,"nodeType":"ParameterList","parameters":[],"src":"3601:2:15"},"returnParameters":{"id":5213,"nodeType":"ParameterList","parameters":[],"src":"3613:0:15"},"scope":5287,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5258,"nodeType":"FunctionDefinition","src":"4889:56:15","nodes":[],"body":{"id":5257,"nodeType":"Block","src":"4917:28:15","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5254,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"4927:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4927:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5256,"nodeType":"ExpressionStatement","src":"4927:11:15"}]},"documentation":{"id":5251,"nodeType":"StructuredDocumentation","src":"4828:56:15","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5252,"nodeType":"ParameterList","parameters":[],"src":"4897:2:15"},"returnParameters":{"id":5253,"nodeType":"ParameterList","parameters":[],"src":"4917:0:15"},"scope":5287,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":5265,"nodeType":"FunctionDefinition","src":"5060:134:15","nodes":[],"body":{"id":5264,"nodeType":"Block","src":"5099:95:15","nodes":[],"statements":[]},"documentation":{"id":5259,"nodeType":"StructuredDocumentation","src":"4951:62:15","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[{"id":5262,"kind":"modifierInvocation","modifierName":{"id":5261,"name":"onlyGateway","nameLocations":["5087:11:15"],"nodeType":"IdentifierPath","referencedDeclaration":5286,"src":"5087:11:15"},"nodeType":"ModifierInvocation","src":"5087:11:15"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5260,"nodeType":"ParameterList","parameters":[],"src":"5067:2:15"},"returnParameters":{"id":5263,"nodeType":"ParameterList","parameters":[],"src":"5099:0:15"},"scope":5287,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":5279,"nodeType":"FunctionDefinition","src":"5242:133:15","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"5279:96:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5293:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5297:6:15","memberName":"sender","nodeType":"MemberAccess","src":"5293:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5270,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"5307:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":5271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5309:14:15","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"5307:16:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5293:30:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5277,"nodeType":"IfStatement","src":"5289:80:15","trueBody":{"id":5276,"nodeType":"Block","src":"5325:44:15","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5273,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"5346:10:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5275,"nodeType":"RevertStatement","src":"5339:19:15"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"5251:12:15","parameters":{"id":5266,"nodeType":"ParameterList","parameters":[],"src":"5263:2:15"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[],"src":"5279:0:15"},"scope":5287,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5286,"nodeType":"ModifierDefinition","src":"5381:65:15","nodes":[],"body":{"id":5285,"nodeType":"Block","src":"5404:42:15","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5281,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5279,"src":"5414:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5414:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5283,"nodeType":"ExpressionStatement","src":"5414:14:15"},{"id":5284,"nodeType":"PlaceholderStatement","src":"5438:1:15"}]},"name":"onlyGateway","nameLocation":"5390:11:15","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"5401:2:15"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5287],"name":"SubnetActorDiamond","nameLocation":"843:18:15","scope":5288,"usedErrors":[4940,6079,6089,6101,6103,6117,6151,9499,9504,9508,9512,9517,9523,9536,9540,9544,9548,9552,9556,9560]}],"license":"MIT OR Apache-2.0"},"id":15} \ No newline at end of file diff --git a/contracts/out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json b/contracts/out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json deleted file mode 100644 index 5002064998..0000000000 --- a/contracts/out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"activeValidatorsLimit","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"bootstrapped","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointAtEpoch","inputs":[{"name":"epoch","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointHashAtEpoch","inputs":[{"name":"epoch","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"consensus","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ConsensusType"}],"stateMutability":"view"},{"type":"function","name":"crossMsgsHash","inputs":[{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"genesisBalances","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisCircSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"genesisValidators","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getBootstrapNodes","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getConfigurationNumbers","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getParent","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getRelayerReward","inputs":[{"name":"relayer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getValidator","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"}],"outputs":[{"name":"validator","type":"tuple","internalType":"struct ValidatorInfo","components":[{"name":"confirmedCollateral","type":"uint256","internalType":"uint256"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipcGatewayAddr","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isActiveValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWaitingValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpCheckpointHeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"minActivationCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minCrossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minValidators","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"powerScale","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"}],"bytecode":{"object":"0x608080604052346100165761123b908161001c8239f35b600080fdfe60806040908082526004908136101561001757600080fd5b600091823560e01c91826306c4685314610ae557508163133f74ea14610a8c5781631904bb2e146109e05781631f3a0e41146109b95781632bc31eb31461096b5781633354c3e11461094857816335142c8c1461092157816338a210b3146108f05781633da332411461073957816340550a1c146106fa578163599c7bd1146106d55781636704287c146106b65781636cb2ecee1461067557816372d0a0e01461064d57816380f76021146105935781638ef3f76114610554578163903e69301461042657508063948628a9146104075780639754b29e146103935780639e33bd0214610374578063ad81e4d614610354578063b2bd295e1461031c578063c5ab2241146102f3578063cfca2824146102ca578063d081be03146102875763d92e8f121461014457600080fd5b3461028457806003193601126102845790600180549261016384610ce0565b61016f84519182610ca5565b848152828252602080820195837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6885b83831061022557505050508451948186019282875251809352808601818460051b8801019794915b8483106101d45787890388f35b9091929394958480610213839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610b4f565b9a9801969594919091019201906101c7565b96600385829b998b9798999b5161023b81610c3e565b85548152848601546001600160a01b031683820152885161026a816102638160028b01610cf7565b0382610ca5565b89820152815201920192019190989698979594939761019f565b80fd5b5090346102c65760203660031901126102c65760209161ffff9082906001600160a01b036102b3610b39565b1681526015855220541615159051908152f35b5080fd5b5090346102c657816003193601126102c65760095490516001600160a01b039091168152602090f35b5090346102c657816003193601126102c6576007548151911c6001600160401b03168152602090f35b5090346102c65760203660031901126102c65760209181906001600160a01b03610344610b39565b168152601c845220549051908152f35b5090346102c657816003193601126102c657601b549051910b8152602090f35b5090346102c657816003193601126102c6576020906006549051908152f35b50346102845780600319360112610284576103ac610f9f565b825191602080840190808552835180925280868601968360051b870101940192955b8287106103db5785850386f35b9091929382806103f7600193603f198a82030186528851610b4f565b96019201960195929190926103ce565b5090346102c657816003193601126102c6576020906002549051908152f35b9050346102c657816003193601126102c657919082549061044682610ce0565b9361045384519586610ca5565b828552601f19928361046482610ce0565b0190602091368389013761047781610ce0565b9261048487519485610ca5565b81845261049082610ce0565b8484019601368737845b8281106104ef57505050806104b88651978789988952880190610b8f565b928684038288015251928381520193925b8281106104d857505050500390f35b8351855286955093810193928101926001016104c9565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015416806105318388610db4565b5286526003875289862054610546828a610db4565b52019796959394929761049a565b8284346102c657816003193601126102c65760ff600d5416905191600182101561058057602083838152f35b634e487b7160e01b815260218452602490fd5b5050346102845780600319360112610284576105ad610cc6565b508151916105ba83610c6f565b600b546001600160401b031683528051600c8054808352908452602093848301917fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915b8682821061063057889061062c8888610619818a0382610ca5565b8385015251928284938452830190610bcc565b0390f35b83546001600160a01b0316855290930192600192830192016105fe565b8284346102c657816003193601126102c6576020906001600160401b03600554169051908152f35b505034610284576020366003190112610284575061062c61069c610697610b0a565b610dde565b839291925193849315158452806020850152830190610bf5565b8284346102c657816003193601126102c657602090600a549051908152f35b8284346102c657816003193601126102c65760209060ff60095460a01c169051908152f35b8284346102c65760203660031901126102c65760209161ffff9082906001600160a01b03610726610b39565b1681526012855220541615159051908152f35b83833461028457602092836003193601126102c6578035906001600160401b03908183116108ec57366023840112156108ec578201358181116108ec5760248301908060051b9360248536920101116108e8579093855193849288840196818986018b8a525260608086019386010193819681925b8484106107d8575050505050506107ce925003601f198101835282610ca5565b5190209051908152f35b9193959092949650605f198982030187526107f388836110b5565b803560de19823603018112156108e0579061084d8e61083c8f95948461083391019680875260e061082489806110b5565b9188015261012087019061111b565b918601866110b5565b848203603f1901606086015261111b565b8d608090850135818501528661086560608701610b25565b1660a08501528401359063ffffffff60e01b82168092036108e457908f92916108ae9060c0928387015261089c60a08801886110c9565b878303603f190160e0890152906110fa565b9401356101008401520135908115158092036108e0576001928e928380930152990197019401918896979593916107ae565b8580fd5b8780fd5b8480fd5b8380fd5b505034610284578060031936011261028457506017548151906001600160401b03908181168352831c166020820152f35b8284346102c657816003193601126102c65760209060ff600d5460081c1690519015158152f35b8284346102c657816003193601126102c65760209061ffff600e54169051908152f35b8284346102c65760203660031901126102c65780602092600161098c610b39565b6001600160401b03600554168352601d865283832090828060a01b03168352018452205415159051908152f35b8284346102c657816003193601126102c65760209060ff600d5460181c1690519015158152f35b8284346102c657602091826003193601126102845760028261062c92610a04610b39565b6060838051610a1281610c3e565b84815289810185905201526001600160a01b03168152601086522083519390610a3a85610c3e565b80548552610a63600182015491878701928352610a5c84518096819301610cf7565b0384610ca5565b818501928352815195869581875251908601525190840152516060808401526080830190610b4f565b5050346102845760203660031901126102845750610aab610697610b0a565b8251610ad481610ac660208201946020865287830190610bf5565b03601f198101835282610ca5565b519020825191151582526020820152f35b8390346102c657816003193601126102c6576020906001600160401b03600754168152f35b600435906001600160401b0382168203610b2057565b600080fd5b35906001600160401b0382168203610b2057565b600435906001600160a01b0382168203610b2057565b919082519283825260005b848110610b7b575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610b5a565b90815180825260208080930193019160005b828110610baf575050505090565b83516001600160a01b031685529381019392810192600101610ba1565b9060406020610bf2936001600160401b0381511684520151918160208201520190610b8f565b90565b90608080610c0c845160a0855260a0850190610bcc565b936001600160401b03806020830151166020860152604082015160408601526060820151166060850152015191015290565b606081019081106001600160401b03821117610c5957604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610c5957604052565b60a081019081106001600160401b03821117610c5957604052565b90601f801991011681019081106001600160401b03821117610c5957604052565b60405190610cd382610c6f565b6060602083600081520152565b6001600160401b038111610c595760051b60200190565b80546000939260018083169383821c938515610daa575b6020958686108114610d9457858552908115610d755750600114610d34575b5050505050565b90939495506000929192528360002092846000945b838610610d6157505050500101903880808080610d2d565b805485870183015294019385908201610d49565b60ff19168685015250505090151560051b010191503880808080610d2d565b634e487b7160e01b600052602260045260246000fd5b93607f1693610d0e565b8051821015610dc85760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906040805192610ded84610c8a565b610df5610cc6565b84526000908160806020968288820152828682015282606082015201526001600160401b038091168252818552828220835195610e3187610c8a565b845192610e3d84610c6f565b80835416845260018084019487519485858854918281520197895285892090895b818110610f8357505050600590610e79878798990389610ca5565b858301978852828c5284600282015416868d015260038101548a8d01528460048201541660608d0152015460808b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b818110610f6257505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415610f5957508293610f1e575b505050159190565b9080929350813d8311610f52575b610f368183610ca5565b810103126102c657519081151582036102845750388080610f16565b503d610f2c565b513d84823e3d90fd5b83516001600160a01b03168552879689965094850194909301928201610ee1565b82546001600160a01b03168a5298870198918501918501610e5e565b601f54610fab81610ce0565b906040610fba81519384610ca5565b818352601f19610fc983610ce0565b0160005b8181106110a4575050811561109f578051808382526020809201601f600052817fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8079160005b8588821061108957505061102892500382610ca5565b60005b84811061103a57505050505090565b6001906001600160a01b0361104f8285610db4565b5116600052601e845261026361106d86600020875192838092610cf7565b6110778289610db4565b526110828188610db4565b500161102b565b8454835260019485019486945092019101611012565b505090565b806060602080938801015201610fcd565b9035603e1982360301811215610b20570190565b9035601e1982360301811215610b205701602081359101916001600160401b038211610b20578136038313610b2057565b908060209392818452848401376000828201840152601f01601f1916010190565b9061112682806110b5565b906040815260808101926001600160401b03938461114385610b25565b16604084015260209384810135601e1982360301811215610b205701908482359201958211610b20578160051b36038613610b20578190604060608601525260a08301949060005b8181106111dd5750505080836111a29201906110b5565b908281850391015280359060ff8216809203610b2057836111d0604093928493610bf29752858101906110c9565b93909482015201916110fa565b90919586359060018060a01b038216809203610b20579081528501958501919060010161118b56fea26469706673582212202533d2a9e275ecaa9571ac39c837d36af41cbdac27a361162d45c9d002e3247f64736f6c63430008130033","sourceMap":"653:5632:54:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3854,"length":20}]}}},"deployedBytecode":{"object":"0x60806040908082526004908136101561001757600080fd5b600091823560e01c91826306c4685314610ae557508163133f74ea14610a8c5781631904bb2e146109e05781631f3a0e41146109b95781632bc31eb31461096b5781633354c3e11461094857816335142c8c1461092157816338a210b3146108f05781633da332411461073957816340550a1c146106fa578163599c7bd1146106d55781636704287c146106b65781636cb2ecee1461067557816372d0a0e01461064d57816380f76021146105935781638ef3f76114610554578163903e69301461042657508063948628a9146104075780639754b29e146103935780639e33bd0214610374578063ad81e4d614610354578063b2bd295e1461031c578063c5ab2241146102f3578063cfca2824146102ca578063d081be03146102875763d92e8f121461014457600080fd5b3461028457806003193601126102845790600180549261016384610ce0565b61016f84519182610ca5565b848152828252602080820195837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6885b83831061022557505050508451948186019282875251809352808601818460051b8801019794915b8483106101d45787890388f35b9091929394958480610213839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610b4f565b9a9801969594919091019201906101c7565b96600385829b998b9798999b5161023b81610c3e565b85548152848601546001600160a01b031683820152885161026a816102638160028b01610cf7565b0382610ca5565b89820152815201920192019190989698979594939761019f565b80fd5b5090346102c65760203660031901126102c65760209161ffff9082906001600160a01b036102b3610b39565b1681526015855220541615159051908152f35b5080fd5b5090346102c657816003193601126102c65760095490516001600160a01b039091168152602090f35b5090346102c657816003193601126102c6576007548151911c6001600160401b03168152602090f35b5090346102c65760203660031901126102c65760209181906001600160a01b03610344610b39565b168152601c845220549051908152f35b5090346102c657816003193601126102c657601b549051910b8152602090f35b5090346102c657816003193601126102c6576020906006549051908152f35b50346102845780600319360112610284576103ac610f9f565b825191602080840190808552835180925280868601968360051b870101940192955b8287106103db5785850386f35b9091929382806103f7600193603f198a82030186528851610b4f565b96019201960195929190926103ce565b5090346102c657816003193601126102c6576020906002549051908152f35b9050346102c657816003193601126102c657919082549061044682610ce0565b9361045384519586610ca5565b828552601f19928361046482610ce0565b0190602091368389013761047781610ce0565b9261048487519485610ca5565b81845261049082610ce0565b8484019601368737845b8281106104ef57505050806104b88651978789988952880190610b8f565b928684038288015251928381520193925b8281106104d857505050500390f35b8351855286955093810193928101926001016104c9565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015416806105318388610db4565b5286526003875289862054610546828a610db4565b52019796959394929761049a565b8284346102c657816003193601126102c65760ff600d5416905191600182101561058057602083838152f35b634e487b7160e01b815260218452602490fd5b5050346102845780600319360112610284576105ad610cc6565b508151916105ba83610c6f565b600b546001600160401b031683528051600c8054808352908452602093848301917fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915b8682821061063057889061062c8888610619818a0382610ca5565b8385015251928284938452830190610bcc565b0390f35b83546001600160a01b0316855290930192600192830192016105fe565b8284346102c657816003193601126102c6576020906001600160401b03600554169051908152f35b505034610284576020366003190112610284575061062c61069c610697610b0a565b610dde565b839291925193849315158452806020850152830190610bf5565b8284346102c657816003193601126102c657602090600a549051908152f35b8284346102c657816003193601126102c65760209060ff60095460a01c169051908152f35b8284346102c65760203660031901126102c65760209161ffff9082906001600160a01b03610726610b39565b1681526012855220541615159051908152f35b83833461028457602092836003193601126102c6578035906001600160401b03908183116108ec57366023840112156108ec578201358181116108ec5760248301908060051b9360248536920101116108e8579093855193849288840196818986018b8a525260608086019386010193819681925b8484106107d8575050505050506107ce925003601f198101835282610ca5565b5190209051908152f35b9193959092949650605f198982030187526107f388836110b5565b803560de19823603018112156108e0579061084d8e61083c8f95948461083391019680875260e061082489806110b5565b9188015261012087019061111b565b918601866110b5565b848203603f1901606086015261111b565b8d608090850135818501528661086560608701610b25565b1660a08501528401359063ffffffff60e01b82168092036108e457908f92916108ae9060c0928387015261089c60a08801886110c9565b878303603f190160e0890152906110fa565b9401356101008401520135908115158092036108e0576001928e928380930152990197019401918896979593916107ae565b8580fd5b8780fd5b8480fd5b8380fd5b505034610284578060031936011261028457506017548151906001600160401b03908181168352831c166020820152f35b8284346102c657816003193601126102c65760209060ff600d5460081c1690519015158152f35b8284346102c657816003193601126102c65760209061ffff600e54169051908152f35b8284346102c65760203660031901126102c65780602092600161098c610b39565b6001600160401b03600554168352601d865283832090828060a01b03168352018452205415159051908152f35b8284346102c657816003193601126102c65760209060ff600d5460181c1690519015158152f35b8284346102c657602091826003193601126102845760028261062c92610a04610b39565b6060838051610a1281610c3e565b84815289810185905201526001600160a01b03168152601086522083519390610a3a85610c3e565b80548552610a63600182015491878701928352610a5c84518096819301610cf7565b0384610ca5565b818501928352815195869581875251908601525190840152516060808401526080830190610b4f565b5050346102845760203660031901126102845750610aab610697610b0a565b8251610ad481610ac660208201946020865287830190610bf5565b03601f198101835282610ca5565b519020825191151582526020820152f35b8390346102c657816003193601126102c6576020906001600160401b03600754168152f35b600435906001600160401b0382168203610b2057565b600080fd5b35906001600160401b0382168203610b2057565b600435906001600160a01b0382168203610b2057565b919082519283825260005b848110610b7b575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610b5a565b90815180825260208080930193019160005b828110610baf575050505090565b83516001600160a01b031685529381019392810192600101610ba1565b9060406020610bf2936001600160401b0381511684520151918160208201520190610b8f565b90565b90608080610c0c845160a0855260a0850190610bcc565b936001600160401b03806020830151166020860152604082015160408601526060820151166060850152015191015290565b606081019081106001600160401b03821117610c5957604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610c5957604052565b60a081019081106001600160401b03821117610c5957604052565b90601f801991011681019081106001600160401b03821117610c5957604052565b60405190610cd382610c6f565b6060602083600081520152565b6001600160401b038111610c595760051b60200190565b80546000939260018083169383821c938515610daa575b6020958686108114610d9457858552908115610d755750600114610d34575b5050505050565b90939495506000929192528360002092846000945b838610610d6157505050500101903880808080610d2d565b805485870183015294019385908201610d49565b60ff19168685015250505090151560051b010191503880808080610d2d565b634e487b7160e01b600052602260045260246000fd5b93607f1693610d0e565b8051821015610dc85760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906040805192610ded84610c8a565b610df5610cc6565b84526000908160806020968288820152828682015282606082015201526001600160401b038091168252818552828220835195610e3187610c8a565b845192610e3d84610c6f565b80835416845260018084019487519485858854918281520197895285892090895b818110610f8357505050600590610e79878798990389610ca5565b858301978852828c5284600282015416868d015260038101548a8d01528460048201541660608d0152015460808b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b818110610f6257505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415610f5957508293610f1e575b505050159190565b9080929350813d8311610f52575b610f368183610ca5565b810103126102c657519081151582036102845750388080610f16565b503d610f2c565b513d84823e3d90fd5b83516001600160a01b03168552879689965094850194909301928201610ee1565b82546001600160a01b03168a5298870198918501918501610e5e565b601f54610fab81610ce0565b906040610fba81519384610ca5565b818352601f19610fc983610ce0565b0160005b8181106110a4575050811561109f578051808382526020809201601f600052817fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8079160005b8588821061108957505061102892500382610ca5565b60005b84811061103a57505050505090565b6001906001600160a01b0361104f8285610db4565b5116600052601e845261026361106d86600020875192838092610cf7565b6110778289610db4565b526110828188610db4565b500161102b565b8454835260019485019486945092019101611012565b505090565b806060602080938801015201610fcd565b9035603e1982360301811215610b20570190565b9035601e1982360301811215610b205701602081359101916001600160401b038211610b20578136038313610b2057565b908060209392818452848401376000828201840152601f01601f1916010190565b9061112682806110b5565b906040815260808101926001600160401b03938461114385610b25565b16604084015260209384810135601e1982360301811215610b205701908482359201958211610b20578160051b36038613610b20578190604060608601525260a08301949060005b8181106111dd5750505080836111a29201906110b5565b908281850391015280359060ff8216809203610b2057836111d0604093928493610bf29752858101906110c9565b93909482015201916110fa565b90919586359060018060a01b038216809203610b20579081528501958501919060010161118b56fea26469706673582212202533d2a9e275ecaa9571ac39c837d36af41cbdac27a361162d45c9d002e3247f64736f6c63430008130033","sourceMap":"653:5632:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1758:19;;653:5632;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;653:5632:54;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;:::i;:::-;;;;1317:17:50;653:5632:54;;;;;1317:33:50;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;1130:16;653:5632;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;1232:15;653:5632;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;-1:-1:-1;;653:5632:54;;;;;;;;-1:-1:-1;;;;;653:5632:54;;:::i;:::-;;;;6251:16;653:5632;;;;;;;;;;;;;;;;;;;;;;;;5258:12;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;3090:25;653:5632;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1868:19;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5076:22:54;;653:5632;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2193:9;2204:16;;;;;;653:5632;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;653:5632:54;;;;;;;;;;;;2193:9;653:5632;;;;;;;;;;;;;;;;;;;;;2290:19;;;;;:::i;:::-;653:5632;;;;;;;;;;2323:36;;;;:::i;:::-;653:5632;;2193:9;;;;;;;;;653:5632;;;;;;;;;;;;;;;2800:11;653:5632;;;;;;;;;;;;;;;;;;-1:-1:-1;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1032:10;653:5632;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2681:30:54;653:5632;;;;;;;;;;;;;;;;-1:-1:-1;;653:5632:54;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3203:16;653:5632;;;;;;;;;;;;;;;;;;;;;;;;1337:20;653:5632;;;;;;;;;;;;;;;;;;-1:-1:-1;;653:5632:54;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;:::i;:::-;;;;1317:17:50;653:5632:54;;;;;1317:33:50;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6025:20;;;;;;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;;6025:20;;;;;;;;;;5076:22;;6025:20;;;;;;:::i;:::-;653:5632;6015:31;;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;-1:-1:-1;;653:5632:54;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;653:5632:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1582:11;653:5632;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2894:14;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:14;653:5632;;;;;;;;;;;;;;;;-1:-1:-1;;653:5632:54;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4014:30:54;653:5632;;;;4061:18;653:5632;;;;;;;;;;;;;;4352:12:13;653:5632:54;;;;4352:24:13;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;2985:8;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:25;653:5632;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;3408:25;653:5632;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;653:5632:54;;;;;5008:32;653:5632;;:::i;5008:32::-;653:5632;;5076:22;;653:5632;;5076:22;;653:5632;;;;;;;;;:::i;:::-;5076:22;;;;;;;;;:::i;:::-;653:5632;5066:33;;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2559:21:54;653:5632;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;653:5632:54;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5076:22;;;653:5632;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;653:5632:54;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;:::o;:::-;;5076:22;;;653:5632;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;653:5632:54;;;;:::o;:::-;-1:-1:-1;;;;;653:5632:54;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;653:5632:54;;;;;-1:-1:-1;653:5632:54;;;-1:-1:-1;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;653:5632:54;;;;;-1:-1:-1;;;653:5632:54;;;;;;;;-1:-1:-1;653:5632:54;;;;;;;;;;;-1:-1:-1;653:5632:54;;;;;-1:-1:-1;653:5632:54;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4345:280;;653:5632;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;653:5632:54;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4552:29;;;653:5632;4552:29;;653:5632;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4552:29;;;;;;;:27;;:29;;;;;;;;;;;;653:5632;4551:30;;;;4591:27;4345:280;:::o;4552:29::-;;;;;;;;;;;;;;;;;:::i;:::-;;;653:5632;;;;;;;;;;;;;4552:29;;;;;;;;;;;;653:5632;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;-1:-1:-1;653:5632:54;;;;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;;;;;5337:471;5428:17;653:5632;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;653:5632:54;;;:::i;:::-;;-1:-1:-1;653:5632:54;;;;;;5517:6;;;;5513:49;;653:5632;;;;;;;;;;5428:17;-1:-1:-1;653:5632:54;;;;-1:-1:-1;653:5632:54;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5649:5:54;;;;;;5789:12;;;;;5337:471;:::o;5638:9::-;653:5632;;-1:-1:-1;;;;;5700:9:54;653:5632;5700:9;;:::i;:::-;653:5632;;-1:-1:-1;653:5632:54;5683:16;653:5632;;;;;-1:-1:-1;653:5632:54;;;;;;;;:::i;:::-;5672:38;;;;:::i;:::-;;;;;;:::i;:::-;;653:5632;5638:9;;653:5632;;;;;;;;;;;;-1:-1:-1;653:5632:54;;;;;;5513:49;5539:12;;;:::o;653:5632::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;653:5632:54;;;;;;5076:22;653:5632;-1:-1:-1;;653:5632:54;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;653:5632:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3826,"length":20}]}}},"methodIdentifiers":{"activeValidatorsLimit()":"3354c3e1","bootstrapped()":"35142c8c","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpointAtEpoch(uint64)":"6cb2ecee","bottomUpCheckpointHashAtEpoch(uint64)":"133f74ea","consensus()":"8ef3f761","crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"3da33241","genesisBalances()":"903e6930","genesisCircSupply()":"948628a9","genesisValidators()":"d92e8f12","getBootstrapNodes()":"9754b29e","getConfigurationNumbers()":"38a210b3","getParent()":"80f76021","getRelayerReward(address)":"b2bd295e","getValidator(address)":"1904bb2e","hasSubmittedInLastBottomUpCheckpointHeight(address)":"2bc31eb3","ipcGatewayAddr()":"cfca2824","isActiveValidator(address)":"40550a1c","isWaitingValidator(address)":"d081be03","killed()":"1f3a0e41","lastBottomUpCheckpointHeight()":"72d0a0e0","majorityPercentage()":"599c7bd1","minActivationCollateral()":"9e33bd02","minCrossMsgFee()":"6704287c","minValidators()":"c5ab2241","powerScale()":"ad81e4d6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeValidatorsLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bootstrapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"crossMsgsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBalances\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisCircSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBootstrapNodes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfigurationNumbers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"getRelayerReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"confirmedCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorInfo\",\"name\":\"validator\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isActiveValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isWaitingValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minCrossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"powerScale\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"params\":{\"messages\":\"- cross-messages to hash\"}},\"getRelayerReward(address)\":{\"params\":{\"relayer\":\"- relayer address\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash\"},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"This exists for testing purposes.\"},\"getBootstrapNodes()\":{\"notice\":\"returns the bootstrap nodes addresses\"},\"getParent()\":{\"notice\":\"get the parent subnet id\"},\"getRelayerReward(address)\":{\"notice\":\"Returns the current reward for the relayer\"},\"getValidator(address)\":{\"notice\":\"Get the information of a validator\"},\"isActiveValidator(address)\":{\"notice\":\"Checks if the validator address is an active validator\"},\"isWaitingValidator(address)\":{\"notice\":\"Checks if the validator is a waiting validator\"},\"powerScale()\":{\"notice\":\"returns the power scale in number of decimals from whole FIL\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x77edef7bb1eee9417c5356f22b94f3cd9f26dc89b3fb73d6e12577fb0fd7e830\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d05c7715048d8a08f0f8ab1c5618d17fdf9fd7d3d48afd1ddbeac73b88adb4d\",\"dweb:/ipfs/QmZQQjv12wB7rtgF7LvajuRCd3rjHhiYLshJpzP7MNNfFz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"activeValidatorsLimit","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bootstrapped","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"epoch","type":"uint64"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointAtEpoch","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint64","name":"epoch","type":"uint64"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointHashAtEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"consensus","outputs":[{"internalType":"enum ConsensusType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"crossMsgsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisCircSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisValidators","outputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBootstrapNodes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfigurationNumbers","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"stateMutability":"view","type":"function","name":"getRelayerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getValidator","outputs":[{"internalType":"struct ValidatorInfo","name":"validator","type":"tuple","components":[{"internalType":"uint256","name":"confirmedCollateral","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipcGatewayAddr","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isActiveValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isWaitingValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpCheckpointHeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minActivationCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minCrossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minValidators","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"powerScale","outputs":[{"internalType":"int8","name":"","type":"int8"}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpointAtEpoch(uint64)":{"params":{"epoch":"- the epoch to check"},"returns":{"checkpoint":"- the checkpoint struct","exists":"- whether the checkpoint exists"}},"bottomUpCheckpointHashAtEpoch(uint64)":{"params":{"epoch":"- the epoch to check"},"returns":{"_0":"exists - whether the checkpoint exists","_1":"hash - the hash of the checkpoint"}},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"params":{"messages":"- cross-messages to hash"}},"getRelayerReward(address)":{"params":{"relayer":"- relayer address"}}},"version":1},"userdoc":{"kind":"user","methods":{"bottomUpCheckpointAtEpoch(uint64)":{"notice":"returns the committed bottom-up checkpoint at specific epoch"},"bottomUpCheckpointHashAtEpoch(uint64)":{"notice":"returns the historical committed bottom-up checkpoint hash"},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"This exists for testing purposes."},"getBootstrapNodes()":{"notice":"returns the bootstrap nodes addresses"},"getParent()":{"notice":"get the parent subnet id"},"getRelayerReward(address)":{"notice":"Returns the current reward for the relayer"},"getValidator(address)":{"notice":"Get the information of a validator"},"isActiveValidator(address)":{"notice":"Checks if the validator address is an active validator"},"isWaitingValidator(address)":{"notice":"Checks if the validator is a waiting validator"},"powerScale()":{"notice":"returns the power scale in number of decimals from whole FIL"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorGetterFacet.sol":"SubnetActorGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x77edef7bb1eee9417c5356f22b94f3cd9f26dc89b3fb73d6e12577fb0fd7e830","urls":["bzz-raw://5d05c7715048d8a08f0f8ab1c5618d17fdf9fd7d3d48afd1ddbeac73b88adb4d","dweb:/ipfs/QmZQQjv12wB7rtgF7LvajuRCd3rjHhiYLshJpzP7MNNfFz"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","id":16841,"exportedSymbols":{"Address":[1625],"BottomUpCheckpoint":[16133],"ConsensusType":[6033],"CrossMsg":[16155],"EnumerableSet":[4602],"LibStaking":[13299],"SubnetActorGetterFacet":[16840],"SubnetActorStorage":[13839],"SubnetID":[16209],"SubnetIDHelper":[14630],"Validator":[16334],"ValidatorInfo":[16292]},"nodeType":"SourceUnit","src":"46:6240:54","nodes":[{"id":16343,"nodeType":"PragmaDirective","src":"46:23:54","nodes":[],"literals":["solidity","0.8",".19"]},{"id":16345,"nodeType":"ImportDirective","src":"71:57:54","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":6034,"symbolAliases":[{"foreign":{"id":16344,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"79:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16348,"nodeType":"ImportDirective","src":"129:71:54","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":16346,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"137:18:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16347,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"157:8:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16350,"nodeType":"ImportDirective","src":"201:47:54","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":16349,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"209:8:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16354,"nodeType":"ImportDirective","src":"249:73:54","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":16351,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"257:8:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16352,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16292,"src":"267:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16353,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"282:9:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16356,"nodeType":"ImportDirective","src":"323:68:54","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":16355,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"331:18:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16358,"nodeType":"ImportDirective","src":"392:57:54","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":16357,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"400:14:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16360,"nodeType":"ImportDirective","src":"450:65:54","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":16359,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"458:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16362,"nodeType":"ImportDirective","src":"516:85:54","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":16361,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"524:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16364,"nodeType":"ImportDirective","src":"602:49:54","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":16841,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":16363,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"610:10:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16840,"nodeType":"ContractDefinition","src":"653:5632:54","nodes":[{"id":16368,"nodeType":"UsingForDirective","src":"691:49:54","nodes":[],"global":false,"libraryName":{"id":16365,"name":"EnumerableSet","nameLocations":["697:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":4602,"src":"697:13:54"},"typeName":{"id":16367,"nodeType":"UserDefinedTypeName","pathNode":{"id":16366,"name":"EnumerableSet.AddressSet","nameLocations":["715:13:54","729:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"715:24:54"},"referencedDeclaration":4315,"src":"715:24:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":16372,"nodeType":"UsingForDirective","src":"745:34:54","nodes":[],"global":false,"libraryName":{"id":16369,"name":"SubnetIDHelper","nameLocations":["751:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"751:14:54"},"typeName":{"id":16371,"nodeType":"UserDefinedTypeName","pathNode":{"id":16370,"name":"SubnetID","nameLocations":["770:8:54"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"770:8:54"},"referencedDeclaration":16209,"src":"770:8:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":16375,"nodeType":"UsingForDirective","src":"784:34:54","nodes":[],"global":false,"libraryName":{"id":16373,"name":"Address","nameLocations":["790:7:54"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"790:7:54"},"typeName":{"id":16374,"name":"address","nodeType":"ElementaryTypeName","src":"802:15:54","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":16378,"nodeType":"VariableDeclaration","src":"877:29:54","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"905:1:54","scope":16840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":16377,"nodeType":"UserDefinedTypeName","pathNode":{"id":16376,"name":"SubnetActorStorage","nameLocations":["877:18:54"],"nodeType":"IdentifierPath","referencedDeclaration":13839,"src":"877:18:54"},"referencedDeclaration":13839,"src":"877:18:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":16389,"nodeType":"FunctionDefinition","src":"954:95:54","nodes":[],"body":{"id":16388,"nodeType":"Block","src":"1015:34:54","nodes":[],"statements":[{"expression":{"expression":{"id":16385,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1032:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1034:8:54","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":13790,"src":"1032:10:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":16384,"id":16387,"nodeType":"Return","src":"1025:17:54"}]},"documentation":{"id":16379,"nodeType":"StructuredDocumentation","src":"913:36:54","text":"@notice get the parent subnet id"},"functionSelector":"80f76021","implemented":true,"kind":"function","modifiers":[],"name":"getParent","nameLocation":"963:9:54","parameters":{"id":16380,"nodeType":"ParameterList","parameters":[],"src":"972:2:54"},"returnParameters":{"id":16384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16389,"src":"998:15:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":16382,"nodeType":"UserDefinedTypeName","pathNode":{"id":16381,"name":"SubnetID","nameLocations":["998:8:54"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"998:8:54"},"referencedDeclaration":16209,"src":"998:8:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"997:17:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16398,"nodeType":"FunctionDefinition","src":"1055:98:54","nodes":[],"body":{"id":16397,"nodeType":"Block","src":"1113:40:54","nodes":[],"statements":[{"expression":{"expression":{"id":16394,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1130:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1132:14:54","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"1130:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16393,"id":16396,"nodeType":"Return","src":"1123:23:54"}]},"functionSelector":"cfca2824","implemented":true,"kind":"function","modifiers":[],"name":"ipcGatewayAddr","nameLocation":"1064:14:54","parameters":{"id":16390,"nodeType":"ParameterList","parameters":[],"src":"1078:2:54"},"returnParameters":{"id":16393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16398,"src":"1104:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16391,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:9:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16407,"nodeType":"FunctionDefinition","src":"1159:95:54","nodes":[],"body":{"id":16406,"nodeType":"Block","src":"1215:39:54","nodes":[],"statements":[{"expression":{"expression":{"id":16403,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1232:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1234:13:54","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":13775,"src":"1232:15:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":16402,"id":16405,"nodeType":"Return","src":"1225:22:54"}]},"functionSelector":"c5ab2241","implemented":true,"kind":"function","modifiers":[],"name":"minValidators","nameLocation":"1168:13:54","parameters":{"id":16399,"nodeType":"ParameterList","parameters":[],"src":"1181:2:54"},"returnParameters":{"id":16402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16407,"src":"1207:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16400,"name":"uint64","nodeType":"ElementaryTypeName","src":"1207:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1206:8:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16416,"nodeType":"FunctionDefinition","src":"1260:104:54","nodes":[],"body":{"id":16415,"nodeType":"Block","src":"1320:44:54","nodes":[],"statements":[{"expression":{"expression":{"id":16412,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1337:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1339:18:54","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":13783,"src":"1337:20:54","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":16411,"id":16414,"nodeType":"Return","src":"1330:27:54"}]},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"1269:18:54","parameters":{"id":16408,"nodeType":"ParameterList","parameters":[],"src":"1287:2:54"},"returnParameters":{"id":16411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16416,"src":"1313:5:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16409,"name":"uint8","nodeType":"ElementaryTypeName","src":"1313:5:54","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1312:7:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16426,"nodeType":"FunctionDefinition","src":"1370:114:54","nodes":[],"body":{"id":16425,"nodeType":"Block","src":"1434:50:54","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":16421,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1451:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1453:12:54","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"1451:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":16423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1466:11:54","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":16295,"src":"1451:26:54","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":16420,"id":16424,"nodeType":"Return","src":"1444:33:54"}]},"functionSelector":"3354c3e1","implemented":true,"kind":"function","modifiers":[],"name":"activeValidatorsLimit","nameLocation":"1379:21:54","parameters":{"id":16417,"nodeType":"ParameterList","parameters":[],"src":"1400:2:54"},"returnParameters":{"id":16420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16426,"src":"1426:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16418,"name":"uint16","nodeType":"ElementaryTypeName","src":"1426:6:54","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1425:8:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16442,"nodeType":"FunctionDefinition","src":"1490:173:54","nodes":[],"body":{"id":16441,"nodeType":"Block","src":"1564:99:54","nodes":[],"statements":[{"expression":{"components":[{"expression":{"expression":{"id":16433,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1582:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1584:9:54","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"1582:11:54","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":16435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1594:23:54","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16247,"src":"1582:35:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":16436,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1619:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1621:9:54","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":13811,"src":"1619:11:54","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$16257_storage","typeString":"struct StakingChangeLog storage ref"}},"id":16438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1631:24:54","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16250,"src":"1619:36:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":16439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1581:75:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":16432,"id":16440,"nodeType":"Return","src":"1574:82:54"}]},"functionSelector":"38a210b3","implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"1499:23:54","parameters":{"id":16427,"nodeType":"ParameterList","parameters":[],"src":"1522:2:54"},"returnParameters":{"id":16432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16442,"src":"1548:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16428,"name":"uint64","nodeType":"ElementaryTypeName","src":"1548:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16442,"src":"1556:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16430,"name":"uint64","nodeType":"ElementaryTypeName","src":"1556:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1547:16:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16453,"nodeType":"FunctionDefinition","src":"1669:115:54","nodes":[],"body":{"id":16452,"nodeType":"Block","src":"1741:43:54","nodes":[],"statements":[{"expression":{"expression":{"id":16449,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1758:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1760:17:54","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"1758:19:54","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"functionReturnParameters":16448,"id":16451,"nodeType":"Return","src":"1751:26:54"}]},"functionSelector":"d92e8f12","implemented":true,"kind":"function","modifiers":[],"name":"genesisValidators","nameLocation":"1678:17:54","parameters":{"id":16443,"nodeType":"ParameterList","parameters":[],"src":"1695:2:54"},"returnParameters":{"id":16448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16453,"src":"1721:18:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":16445,"nodeType":"UserDefinedTypeName","pathNode":{"id":16444,"name":"Validator","nameLocations":["1721:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"1721:9:54"},"referencedDeclaration":16334,"src":"1721:9:54","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":16446,"nodeType":"ArrayTypeName","src":"1721:11:54","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"1720:20:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16462,"nodeType":"FunctionDefinition","src":"1790:104:54","nodes":[],"body":{"id":16461,"nodeType":"Block","src":"1851:43:54","nodes":[],"statements":[{"expression":{"expression":{"id":16458,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"1868:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1870:17:54","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":13754,"src":"1868:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16457,"id":16460,"nodeType":"Return","src":"1861:26:54"}]},"functionSelector":"948628a9","implemented":true,"kind":"function","modifiers":[],"name":"genesisCircSupply","nameLocation":"1799:17:54","parameters":{"id":16454,"nodeType":"ParameterList","parameters":[],"src":"1816:2:54"},"returnParameters":{"id":16457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16462,"src":"1842:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16455,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1841:9:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16538,"nodeType":"FunctionDefinition","src":"1900:574:54","nodes":[],"body":{"id":16537,"nodeType":"Block","src":"1986:488:54","nodes":[],"statements":[{"assignments":[16472],"declarations":[{"constant":false,"id":16472,"mutability":"mutable","name":"numAddresses","nameLocation":"2004:12:54","nodeType":"VariableDeclaration","scope":16537,"src":"1996:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16471,"name":"uint256","nodeType":"ElementaryTypeName","src":"1996:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16476,"initialValue":{"expression":{"expression":{"id":16473,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2019:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:18:54","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"2019:20:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":16475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2040:6:54","memberName":"length","nodeType":"MemberAccess","src":"2019:27:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1996:50:54"},{"assignments":[16481],"declarations":[{"constant":false,"id":16481,"mutability":"mutable","name":"addresses","nameLocation":"2073:9:54","nodeType":"VariableDeclaration","scope":16537,"src":"2056:26:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16479,"name":"address","nodeType":"ElementaryTypeName","src":"2056:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16480,"nodeType":"ArrayTypeName","src":"2056:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":16487,"initialValue":{"arguments":[{"id":16485,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16472,"src":"2099:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2085:13:54","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":16482,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16483,"nodeType":"ArrayTypeName","src":"2089:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":16486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2085:27:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2056:56:54"},{"assignments":[16492],"declarations":[{"constant":false,"id":16492,"mutability":"mutable","name":"balances","nameLocation":"2139:8:54","nodeType":"VariableDeclaration","scope":16537,"src":"2122:25:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16490,"name":"uint256","nodeType":"ElementaryTypeName","src":"2122:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16491,"nodeType":"ArrayTypeName","src":"2122:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":16498,"initialValue":{"arguments":[{"id":16496,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16472,"src":"2164:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2150:13:54","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":16493,"name":"uint256","nodeType":"ElementaryTypeName","src":"2154:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16494,"nodeType":"ArrayTypeName","src":"2154:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":16497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2150:27:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2122:55:54"},{"body":{"id":16531,"nodeType":"Block","src":"2224:206:54","statements":[{"assignments":[16506],"declarations":[{"constant":false,"id":16506,"mutability":"mutable","name":"addr","nameLocation":"2246:4:54","nodeType":"VariableDeclaration","scope":16531,"src":"2238:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16505,"name":"address","nodeType":"ElementaryTypeName","src":"2238:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16511,"initialValue":{"baseExpression":{"expression":{"id":16507,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2253:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2255:18:54","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"2253:20:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":16510,"indexExpression":{"id":16509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16500,"src":"2274:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2253:23:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2238:38:54"},{"expression":{"id":16516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16512,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16481,"src":"2290:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":16514,"indexExpression":{"id":16513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16500,"src":"2300:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2290:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16515,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16506,"src":"2305:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2290:19:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16517,"nodeType":"ExpressionStatement","src":"2290:19:54"},{"expression":{"id":16525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16518,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16492,"src":"2323:8:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":16520,"indexExpression":{"id":16519,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16500,"src":"2332:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2323:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":16521,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2337:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2339:14:54","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"2337:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16524,"indexExpression":{"id":16523,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16506,"src":"2354:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2337:22:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2323:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16526,"nodeType":"ExpressionStatement","src":"2323:36:54"},{"id":16530,"nodeType":"UncheckedBlock","src":"2374:46:54","statements":[{"expression":{"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2402:3:54","subExpression":{"id":16527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16500,"src":"2404:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16529,"nodeType":"ExpressionStatement","src":"2402:3:54"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16502,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16500,"src":"2204:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16503,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16472,"src":"2208:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2204:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16532,"initializationExpression":{"assignments":[16500],"declarations":[{"constant":false,"id":16500,"mutability":"mutable","name":"i","nameLocation":"2201:1:54","nodeType":"VariableDeclaration","scope":16532,"src":"2193:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2193:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16501,"nodeType":"VariableDeclarationStatement","src":"2193:9:54"},"nodeType":"ForStatement","src":"2188:242:54"},{"expression":{"components":[{"id":16533,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16481,"src":"2447:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":16534,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16492,"src":"2458:8:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":16535,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2446:21:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"functionReturnParameters":16470,"id":16536,"nodeType":"Return","src":"2439:28:54"}]},"functionSelector":"903e6930","implemented":true,"kind":"function","modifiers":[],"name":"genesisBalances","nameLocation":"1909:15:54","parameters":{"id":16463,"nodeType":"ParameterList","parameters":[],"src":"1924:2:54"},"returnParameters":{"id":16470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16538,"src":"1950:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16464,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16465,"nodeType":"ArrayTypeName","src":"1950:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":16469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16538,"src":"1968:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1968:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16468,"nodeType":"ArrayTypeName","src":"1968:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1949:36:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16547,"nodeType":"FunctionDefinition","src":"2480:107:54","nodes":[],"body":{"id":16546,"nodeType":"Block","src":"2542:45:54","nodes":[],"statements":[{"expression":{"expression":{"id":16543,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2559:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2561:19:54","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":13772,"src":"2559:21:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":16542,"id":16545,"nodeType":"Return","src":"2552:28:54"}]},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"2489:19:54","parameters":{"id":16539,"nodeType":"ParameterList","parameters":[],"src":"2508:2:54"},"returnParameters":{"id":16542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16547,"src":"2534:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16540,"name":"uint64","nodeType":"ElementaryTypeName","src":"2534:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2533:8:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16556,"nodeType":"FunctionDefinition","src":"2593:125:54","nodes":[],"body":{"id":16555,"nodeType":"Block","src":"2664:54:54","nodes":[],"statements":[{"expression":{"expression":{"id":16552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2681:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2683:28:54","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"2681:30:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":16551,"id":16554,"nodeType":"Return","src":"2674:37:54"}]},"functionSelector":"72d0a0e0","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpCheckpointHeight","nameLocation":"2602:28:54","parameters":{"id":16548,"nodeType":"ParameterList","parameters":[],"src":"2630:2:54"},"returnParameters":{"id":16551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16556,"src":"2656:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16549,"name":"uint64","nodeType":"ElementaryTypeName","src":"2656:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2655:8:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16566,"nodeType":"FunctionDefinition","src":"2724:94:54","nodes":[],"body":{"id":16565,"nodeType":"Block","src":"2783:35:54","nodes":[],"statements":[{"expression":{"expression":{"id":16562,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2800:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2802:9:54","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":13794,"src":"2800:11:54","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"functionReturnParameters":16561,"id":16564,"nodeType":"Return","src":"2793:18:54"}]},"functionSelector":"8ef3f761","implemented":true,"kind":"function","modifiers":[],"name":"consensus","nameLocation":"2733:9:54","parameters":{"id":16557,"nodeType":"ParameterList","parameters":[],"src":"2742:2:54"},"returnParameters":{"id":16561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16566,"src":"2768:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"},"typeName":{"id":16559,"nodeType":"UserDefinedTypeName","pathNode":{"id":16558,"name":"ConsensusType","nameLocations":["2768:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":6033,"src":"2768:13:54"},"referencedDeclaration":6033,"src":"2768:13:54","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$6033","typeString":"enum ConsensusType"}},"visibility":"internal"}],"src":"2767:15:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16575,"nodeType":"FunctionDefinition","src":"2824:91:54","nodes":[],"body":{"id":16574,"nodeType":"Block","src":"2877:38:54","nodes":[],"statements":[{"expression":{"expression":{"id":16571,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2894:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:12:54","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"2894:14:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16570,"id":16573,"nodeType":"Return","src":"2887:21:54"}]},"functionSelector":"35142c8c","implemented":true,"kind":"function","modifiers":[],"name":"bootstrapped","nameLocation":"2833:12:54","parameters":{"id":16567,"nodeType":"ParameterList","parameters":[],"src":"2845:2:54"},"returnParameters":{"id":16570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16575,"src":"2871:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16568,"name":"bool","nodeType":"ElementaryTypeName","src":"2871:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2870:6:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16584,"nodeType":"FunctionDefinition","src":"2921:79:54","nodes":[],"body":{"id":16583,"nodeType":"Block","src":"2968:32:54","nodes":[],"statements":[{"expression":{"expression":{"id":16580,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"2985:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2987:6:54","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":13803,"src":"2985:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16579,"id":16582,"nodeType":"Return","src":"2978:15:54"}]},"functionSelector":"1f3a0e41","implemented":true,"kind":"function","modifiers":[],"name":"killed","nameLocation":"2930:6:54","parameters":{"id":16576,"nodeType":"ParameterList","parameters":[],"src":"2936:2:54"},"returnParameters":{"id":16579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16584,"src":"2962:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16577,"name":"bool","nodeType":"ElementaryTypeName","src":"2962:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2961:6:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16593,"nodeType":"FunctionDefinition","src":"3006:116:54","nodes":[],"body":{"id":16592,"nodeType":"Block","src":"3073:49:54","nodes":[],"statements":[{"expression":{"expression":{"id":16589,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3090:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3092:23:54","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":13769,"src":"3090:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16588,"id":16591,"nodeType":"Return","src":"3083:32:54"}]},"functionSelector":"9e33bd02","implemented":true,"kind":"function","modifiers":[],"name":"minActivationCollateral","nameLocation":"3015:23:54","parameters":{"id":16585,"nodeType":"ParameterList","parameters":[],"src":"3038:2:54"},"returnParameters":{"id":16588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16593,"src":"3064:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16586,"name":"uint256","nodeType":"ElementaryTypeName","src":"3064:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3063:9:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16602,"nodeType":"FunctionDefinition","src":"3128:98:54","nodes":[],"body":{"id":16601,"nodeType":"Block","src":"3186:40:54","nodes":[],"statements":[{"expression":{"expression":{"id":16598,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3203:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3205:14:54","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":13786,"src":"3203:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16597,"id":16600,"nodeType":"Return","src":"3196:23:54"}]},"functionSelector":"6704287c","implemented":true,"kind":"function","modifiers":[],"name":"minCrossMsgFee","nameLocation":"3137:14:54","parameters":{"id":16594,"nodeType":"ParameterList","parameters":[],"src":"3151:2:54"},"returnParameters":{"id":16597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16602,"src":"3177:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16595,"name":"uint256","nodeType":"ElementaryTypeName","src":"3177:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3176:9:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16620,"nodeType":"FunctionDefinition","src":"3283:175:54","nodes":[],"body":{"id":16619,"nodeType":"Block","src":"3386:72:54","nodes":[],"statements":[{"expression":{"id":16617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16609,"src":"3396:9:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_memory_ptr","typeString":"struct ValidatorInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":16612,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3408:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3410:12:54","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"3408:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":16614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3423:10:54","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":16304,"src":"3408:25:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$16292_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":16616,"indexExpression":{"id":16615,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16605,"src":"3434:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3408:43:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage","typeString":"struct ValidatorInfo storage ref"}},"src":"3396:55:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_memory_ptr","typeString":"struct ValidatorInfo memory"}},"id":16618,"nodeType":"ExpressionStatement","src":"3396:55:54"}]},"documentation":{"id":16603,"nodeType":"StructuredDocumentation","src":"3232:46:54","text":"@notice Get the information of a validator"},"functionSelector":"1904bb2e","implemented":true,"kind":"function","modifiers":[],"name":"getValidator","nameLocation":"3292:12:54","parameters":{"id":16606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16605,"mutability":"mutable","name":"validatorAddress","nameLocation":"3313:16:54","nodeType":"VariableDeclaration","scope":16620,"src":"3305:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16604,"name":"address","nodeType":"ElementaryTypeName","src":"3305:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3304:26:54"},"returnParameters":{"id":16610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16609,"mutability":"mutable","name":"validator","nameLocation":"3375:9:54","nodeType":"VariableDeclaration","scope":16620,"src":"3354:30:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_memory_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":16608,"nodeType":"UserDefinedTypeName","pathNode":{"id":16607,"name":"ValidatorInfo","nameLocations":["3354:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":16292,"src":"3354:13:54"},"referencedDeclaration":16292,"src":"3354:13:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$16292_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"src":"3353:32:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16634,"nodeType":"FunctionDefinition","src":"3535:138:54","nodes":[],"body":{"id":16633,"nodeType":"Block","src":"3610:63:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":16630,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16623,"src":"3656:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16628,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"3627:10:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":16629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:17:54","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":12648,"src":"3627:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3627:39:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16627,"id":16632,"nodeType":"Return","src":"3620:46:54"}]},"documentation":{"id":16621,"nodeType":"StructuredDocumentation","src":"3464:66:54","text":"@notice Checks if the validator address is an active validator"},"functionSelector":"40550a1c","implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"3544:17:54","parameters":{"id":16624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16623,"mutability":"mutable","name":"validator","nameLocation":"3570:9:54","nodeType":"VariableDeclaration","scope":16634,"src":"3562:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16622,"name":"address","nodeType":"ElementaryTypeName","src":"3562:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3561:19:54"},"returnParameters":{"id":16627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16634,"src":"3604:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16625,"name":"bool","nodeType":"ElementaryTypeName","src":"3604:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3603:6:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16648,"nodeType":"FunctionDefinition","src":"3742:140:54","nodes":[],"body":{"id":16647,"nodeType":"Block","src":"3818:64:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":16644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16637,"src":"3865:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16642,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"3835:10:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":16643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3846:18:54","memberName":"isWaitingValidator","nodeType":"MemberAccess","referencedDeclaration":12671,"src":"3835:29:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3835:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16641,"id":16646,"nodeType":"Return","src":"3828:47:54"}]},"documentation":{"id":16635,"nodeType":"StructuredDocumentation","src":"3679:58:54","text":"@notice Checks if the validator is a waiting validator"},"functionSelector":"d081be03","implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"3751:18:54","parameters":{"id":16638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16637,"mutability":"mutable","name":"validator","nameLocation":"3778:9:54","nodeType":"VariableDeclaration","scope":16648,"src":"3770:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16636,"name":"address","nodeType":"ElementaryTypeName","src":"3770:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3769:19:54"},"returnParameters":{"id":16641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16648,"src":"3812:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16639,"name":"bool","nodeType":"ElementaryTypeName","src":"3812:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3811:6:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16669,"nodeType":"FunctionDefinition","src":"3888:226:54","nodes":[],"body":{"id":16668,"nodeType":"Block","src":"3988:126:54","nodes":[],"statements":[{"assignments":[16656],"declarations":[{"constant":false,"id":16656,"mutability":"mutable","name":"height","nameLocation":"4005:6:54","nodeType":"VariableDeclaration","scope":16668,"src":"3998:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16655,"name":"uint64","nodeType":"ElementaryTypeName","src":"3998:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":16659,"initialValue":{"expression":{"id":16657,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"4014:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4016:28:54","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"4014:30:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3998:46:54"},{"expression":{"arguments":[{"id":16665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16650,"src":"4097:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":16660,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"4061:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4063:16:54","memberName":"rewardedRelayers","nodeType":"MemberAccess","referencedDeclaration":13829,"src":"4061:18:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":16663,"indexExpression":{"id":16662,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16656,"src":"4080:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4061:26:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":16664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4088:8:54","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":4396,"src":"4061:35:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":16666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16654,"id":16667,"nodeType":"Return","src":"4054:53:54"}]},"functionSelector":"2bc31eb3","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpCheckpointHeight","nameLocation":"3897:42:54","parameters":{"id":16651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16650,"mutability":"mutable","name":"validator","nameLocation":"3948:9:54","nodeType":"VariableDeclaration","scope":16669,"src":"3940:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16649,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3939:19:54"},"returnParameters":{"id":16654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16669,"src":"3982:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16652,"name":"bool","nodeType":"ElementaryTypeName","src":"3982:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3981:6:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16700,"nodeType":"FunctionDefinition","src":"4345:280:54","nodes":[],"body":{"id":16699,"nodeType":"Block","src":"4480:145:54","nodes":[],"statements":[{"expression":{"id":16685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16680,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"4490:10:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":16681,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"4503:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4505:20:54","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":13746,"src":"4503:22:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":16684,"indexExpression":{"id":16683,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16672,"src":"4526:5:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4503:29:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"4490:42:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":16686,"nodeType":"ExpressionStatement","src":"4490:42:54"},{"expression":{"id":16693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16687,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16675,"src":"4542:6:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4551:30:54","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":16688,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"4552:10:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":16689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4563:8:54","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"4552:19:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":16690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4572:7:54","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"4552:27:54","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$16209_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$16209_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":16691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4552:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4542:39:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16694,"nodeType":"ExpressionStatement","src":"4542:39:54"},{"expression":{"components":[{"id":16695,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16675,"src":"4599:6:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16696,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"4607:10:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":16697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4598:20:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":16679,"id":16698,"nodeType":"Return","src":"4591:27:54"}]},"documentation":{"id":16670,"nodeType":"StructuredDocumentation","src":"4120:220:54","text":"@notice returns the committed bottom-up checkpoint at specific epoch\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct"},"functionSelector":"6cb2ecee","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointAtEpoch","nameLocation":"4354:25:54","parameters":{"id":16673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16672,"mutability":"mutable","name":"epoch","nameLocation":"4396:5:54","nodeType":"VariableDeclaration","scope":16700,"src":"4389:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16671,"name":"uint64","nodeType":"ElementaryTypeName","src":"4389:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4379:28:54"},"returnParameters":{"id":16679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16675,"mutability":"mutable","name":"exists","nameLocation":"4434:6:54","nodeType":"VariableDeclaration","scope":16700,"src":"4429:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16674,"name":"bool","nodeType":"ElementaryTypeName","src":"4429:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16678,"mutability":"mutable","name":"checkpoint","nameLocation":"4468:10:54","nodeType":"VariableDeclaration","scope":16700,"src":"4442:36:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":16677,"nodeType":"UserDefinedTypeName","pathNode":{"id":16676,"name":"BottomUpCheckpoint","nameLocations":["4442:18:54"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"4442:18:54"},"referencedDeclaration":16133,"src":"4442:18:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"4428:51:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":16729,"nodeType":"FunctionDefinition","src":"4853:254:54","nodes":[],"body":{"id":16728,"nodeType":"Block","src":"4944:163:54","nodes":[],"statements":[{"assignments":[16711,16714],"declarations":[{"constant":false,"id":16711,"mutability":"mutable","name":"exists","nameLocation":"4960:6:54","nodeType":"VariableDeclaration","scope":16728,"src":"4955:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16710,"name":"bool","nodeType":"ElementaryTypeName","src":"4955:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16714,"mutability":"mutable","name":"checkpoint","nameLocation":"4994:10:54","nodeType":"VariableDeclaration","scope":16728,"src":"4968:36:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":16713,"nodeType":"UserDefinedTypeName","pathNode":{"id":16712,"name":"BottomUpCheckpoint","nameLocations":["4968:18:54"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"4968:18:54"},"referencedDeclaration":16133,"src":"4968:18:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":16718,"initialValue":{"arguments":[{"id":16716,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16703,"src":"5034:5:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":16715,"name":"bottomUpCheckpointAtEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16700,"src":"5008:25:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"function (uint64) view returns (bool,struct BottomUpCheckpoint memory)"}},"id":16717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5008:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"nodeType":"VariableDeclarationStatement","src":"4954:86:54"},{"expression":{"components":[{"id":16719,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16711,"src":"5058:6:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":16723,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16714,"src":"5087:10:54","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":16721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5076:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5080:6:54","memberName":"encode","nodeType":"MemberAccess","src":"5076:10:54","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16720,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5066:9:54","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16726,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5057:43:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":16709,"id":16727,"nodeType":"Return","src":"5050:50:54"}]},"documentation":{"id":16701,"nodeType":"StructuredDocumentation","src":"4631:217:54","text":"@notice returns the historical committed bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint"},"functionSelector":"133f74ea","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointHashAtEpoch","nameLocation":"4862:29:54","parameters":{"id":16704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16703,"mutability":"mutable","name":"epoch","nameLocation":"4899:5:54","nodeType":"VariableDeclaration","scope":16729,"src":"4892:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16702,"name":"uint64","nodeType":"ElementaryTypeName","src":"4892:6:54","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4891:14:54"},"returnParameters":{"id":16709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16729,"src":"4929:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16705,"name":"bool","nodeType":"ElementaryTypeName","src":"4929:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16729,"src":"4935:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4935:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4928:15:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16739,"nodeType":"FunctionDefinition","src":"5190:87:54","nodes":[],"body":{"id":16738,"nodeType":"Block","src":"5241:36:54","nodes":[],"statements":[{"expression":{"expression":{"id":16735,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"5258:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5260:10:54","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":13818,"src":"5258:12:54","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"functionReturnParameters":16734,"id":16737,"nodeType":"Return","src":"5251:19:54"}]},"documentation":{"id":16730,"nodeType":"StructuredDocumentation","src":"5113:72:54","text":"@notice returns the power scale in number of decimals from whole FIL"},"functionSelector":"ad81e4d6","implemented":true,"kind":"function","modifiers":[],"name":"powerScale","nameLocation":"5199:10:54","parameters":{"id":16731,"nodeType":"ParameterList","parameters":[],"src":"5209:2:54"},"returnParameters":{"id":16734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16739,"src":"5235:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":16732,"name":"int8","nodeType":"ElementaryTypeName","src":"5235:4:54","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"5234:6:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16807,"nodeType":"FunctionDefinition","src":"5337:471:54","nodes":[],"body":{"id":16806,"nodeType":"Block","src":"5406:402:54","nodes":[],"statements":[{"assignments":[16747],"declarations":[{"constant":false,"id":16747,"mutability":"mutable","name":"n","nameLocation":"5424:1:54","nodeType":"VariableDeclaration","scope":16806,"src":"5416:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16746,"name":"uint256","nodeType":"ElementaryTypeName","src":"5416:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16752,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":16748,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"5428:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5430:15:54","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":13838,"src":"5428:17:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":16750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5446:6:54","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":4411,"src":"5428:24:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":16751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5428:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5416:38:54"},{"assignments":[16757],"declarations":[{"constant":false,"id":16757,"mutability":"mutable","name":"nodes","nameLocation":"5480:5:54","nodeType":"VariableDeclaration","scope":16806,"src":"5464:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16755,"name":"string","nodeType":"ElementaryTypeName","src":"5464:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16756,"nodeType":"ArrayTypeName","src":"5464:8:54","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":16763,"initialValue":{"arguments":[{"id":16761,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16747,"src":"5501:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5488:12:54","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":16758,"name":"string","nodeType":"ElementaryTypeName","src":"5492:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16759,"nodeType":"ArrayTypeName","src":"5492:8:54","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":16762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5464:39:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16764,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16747,"src":"5517:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5522:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5517:6:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16770,"nodeType":"IfStatement","src":"5513:49:54","trueBody":{"id":16769,"nodeType":"Block","src":"5525:37:54","statements":[{"expression":{"id":16767,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"5546:5:54","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":16745,"id":16768,"nodeType":"Return","src":"5539:12:54"}]}},{"assignments":[16775],"declarations":[{"constant":false,"id":16775,"mutability":"mutable","name":"owners","nameLocation":"5588:6:54","nodeType":"VariableDeclaration","scope":16806,"src":"5571:23:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16773,"name":"address","nodeType":"ElementaryTypeName","src":"5571:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16774,"nodeType":"ArrayTypeName","src":"5571:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":16780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":16776,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"5597:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5599:15:54","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":13838,"src":"5597:17:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":16778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5615:6:54","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":4468,"src":"5597:24:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":16779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5597:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5571:52:54"},{"body":{"id":16802,"nodeType":"Block","src":"5658:122:54","statements":[{"expression":{"id":16796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16787,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"5672:5:54","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16789,"indexExpression":{"id":16788,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16782,"src":"5678:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5672:8:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":16790,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"5683:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:14:54","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":13834,"src":"5683:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":16795,"indexExpression":{"baseExpression":{"id":16792,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16775,"src":"5700:6:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":16794,"indexExpression":{"id":16793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16782,"src":"5707:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5700:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5683:27:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"5672:38:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16797,"nodeType":"ExpressionStatement","src":"5672:38:54"},{"id":16801,"nodeType":"UncheckedBlock","src":"5724:46:54","statements":[{"expression":{"id":16799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5752:3:54","subExpression":{"id":16798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16782,"src":"5754:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16800,"nodeType":"ExpressionStatement","src":"5752:3:54"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16784,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16782,"src":"5649:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16785,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16747,"src":"5653:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5649:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16803,"initializationExpression":{"assignments":[16782],"declarations":[{"constant":false,"id":16782,"mutability":"mutable","name":"i","nameLocation":"5646:1:54","nodeType":"VariableDeclaration","scope":16803,"src":"5638:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16781,"name":"uint256","nodeType":"ElementaryTypeName","src":"5638:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16783,"nodeType":"VariableDeclarationStatement","src":"5638:9:54"},"nodeType":"ForStatement","src":"5633:147:54"},{"expression":{"id":16804,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"5796:5:54","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":16745,"id":16805,"nodeType":"Return","src":"5789:12:54"}]},"documentation":{"id":16740,"nodeType":"StructuredDocumentation","src":"5283:49:54","text":"@notice returns the bootstrap nodes addresses"},"functionSelector":"9754b29e","implemented":true,"kind":"function","modifiers":[],"name":"getBootstrapNodes","nameLocation":"5346:17:54","parameters":{"id":16741,"nodeType":"ParameterList","parameters":[],"src":"5363:2:54"},"returnParameters":{"id":16745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16807,"src":"5389:15:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16742,"name":"string","nodeType":"ElementaryTypeName","src":"5389:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16743,"nodeType":"ArrayTypeName","src":"5389:8:54","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"5388:17:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":16825,"nodeType":"FunctionDefinition","src":"5913:140:54","nodes":[],"body":{"id":16824,"nodeType":"Block","src":"5998:55:54","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":16820,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16812,"src":"6036:8:54","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":16818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6025:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6029:6:54","memberName":"encode","nodeType":"MemberAccess","src":"6025:10:54","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16817,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6015:9:54","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16816,"id":16823,"nodeType":"Return","src":"6008:38:54"}]},"documentation":{"id":16808,"nodeType":"StructuredDocumentation","src":"5814:94:54","text":"@notice This exists for testing purposes.\n @param messages - cross-messages to hash"},"functionSelector":"3da33241","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgsHash","nameLocation":"5922:13:54","parameters":{"id":16813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16812,"mutability":"mutable","name":"messages","nameLocation":"5956:8:54","nodeType":"VariableDeclaration","scope":16825,"src":"5936:28:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":16810,"nodeType":"UserDefinedTypeName","pathNode":{"id":16809,"name":"CrossMsg","nameLocations":["5936:8:54"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"5936:8:54"},"referencedDeclaration":16155,"src":"5936:8:54","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":16811,"nodeType":"ArrayTypeName","src":"5936:10:54","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"5935:30:54"},"returnParameters":{"id":16816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16825,"src":"5989:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5989:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5988:9:54"},"scope":16840,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":16839,"nodeType":"FunctionDefinition","src":"6159:124:54","nodes":[],"body":{"id":16838,"nodeType":"Block","src":"6234:49:54","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":16833,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"6251:1:54","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6253:14:54","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"6251:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16836,"indexExpression":{"id":16835,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16828,"src":"6268:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6251:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16832,"id":16837,"nodeType":"Return","src":"6244:32:54"}]},"documentation":{"id":16826,"nodeType":"StructuredDocumentation","src":"6059:95:54","text":"@notice Returns the current reward for the relayer\n @param relayer - relayer address"},"functionSelector":"b2bd295e","implemented":true,"kind":"function","modifiers":[],"name":"getRelayerReward","nameLocation":"6168:16:54","parameters":{"id":16829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16828,"mutability":"mutable","name":"relayer","nameLocation":"6193:7:54","nodeType":"VariableDeclaration","scope":16839,"src":"6185:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16827,"name":"address","nodeType":"ElementaryTypeName","src":"6185:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6184:17:54"},"returnParameters":{"id":16832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16839,"src":"6225:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16830,"name":"uint256","nodeType":"ElementaryTypeName","src":"6225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6224:9:54"},"scope":16840,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[16840],"name":"SubnetActorGetterFacet","nameLocation":"662:22:54","scope":16841,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":54} \ No newline at end of file diff --git a/contracts/out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json b/contracts/out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json deleted file mode 100644 index 839946ff8f..0000000000 --- a/contracts/out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint64","internalType":"uint64"},{"name":"reward","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointMessagesHash","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MethodNotAllowed","inputs":[]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotStakedBefore","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x608080604052346100165761415d908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146112ac5750806310fd4261146111515780632e17de781461112c5780633a4b66f11461111057806341c0e1b5146110745780634e71d92d14610ee85780636170b1621461092857806366783c9b14610847578063a8284de31461027f578063cc2dc2b914610202578063d66d9e19146101bf578063ed7c4da11461010b5763f9002bb1146100b057600080fd5b6040366003190112610108576004356001600160401b0381168103610103576009546001600160a01b031633036100f1576100ee9060243590613ba2565b80f35b60405163e7e601db60e01b8152600490fd5b600080fd5b80fd5b503461010857806003193601126101085760008051602061410883398151915260018154146101ad5780600183925573__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a95782602491604051928380926382985e0b60e01b82523360048301525af490811561019e578391610187575b50505580f35b61019090611373565b61019b578138610181565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b50346101085780600319360112610108576101d861363a565b60008051602061410883398151915260018154146101ad578060018392556101fe6139a4565b5580f35b5034610108576060366003190112610108576001600160401b0360043581811161027b573660238201121561027b576102459036906024816004013591016114a0565b60443591821161027b573660238301121561027b576102716100ee9236906024816004013591016114f6565b9060243590613c7a565b8280fd5b5034610108576080366003190112610108576001600160401b03600435116101085760a060043536036003190112610108576024356001600160401b038111610843576102d0903690600401611445565b91906044356001600160401b03811161027b576102f1903690600401611445565b6064356001600160401b0381116106bb57610310903690600401611445565b9261031f602460043501611589565b926001600160401b03600554166001600160401b0360075416946001600160401b038061034c88856115cb565b169116141580610823575b610811576040516020810190602082526103888161037a8d60408301908d611747565b03601f1981018352826113d2565b51902060846004350135036107ff576040516020808201526103b68161037a6040820160043560040161187b565b60208151910120946001600160401b03806103df6103d8602460043501611589565b93856115cb565b169116146000146106bf5750916104006104089261040e96959436916114a0565b9336916114f6565b91613c7a565b6001600160401b03610424602460043501611589565b168252816020526040822092600435600401356042196004353603018112156106b757600435016001600160401b0361045f60048301611589565b166001600160401b0319865416178555602481013590602219813603018212156106bb5701936001600160401b036004860135116106b757600485013560051b360360248601136106b757600160401b6004860135116106a35760019485820180546004830135825580600484013510610684575b5085526020852060248201865b600484013581106106585750505050839450600281016001600160401b0361050d602460043501611589565b166001600160401b03198254161790556044600435013560038201556001600160401b0361053f606460043501611589565b1660048201906001600160401b03198254161790556005608460043501359101556001600160401b03610576602460043501611589565b168352601d60205261058c6040842033906119dc565b506001600160401b036105a3602460043501611589565b166001600160401b0319600554161760055560018060a01b036009541691823b156106535761060d92849283604051809681958294637a2b59cf60e11b8452604060048501526105fb6044850160043560040161187b565b84810360031901602486015291611747565b03925af1801561064857610634575b50506100ee61062f606460043501611589565b611c56565b61063d90611373565b61010857803861061c565b6040513d84823e3d90fd5b505050fd5b8135916001600160a01b03831683036106805760049160208b920193818601550190506104e1565b8880fd5b8187526020872061069d918101906004850135016118da565b386104d4565b634e487b7160e01b84526041600452602484fd5b8380fd5b8480fd5b9550505050929350506001600160401b036106de602460043501611589565b16146106e9575b5080f35b6001600160401b036106ff602460043501611589565b168252816020526040822060405160208101916020835260a06040830152816101208101916001600160401b0381541660e0830152600190818101916040610100850152825480955261014084019289526020892090895b8681106107de5750505060028101546001600160401b0390811660608501526003820154608085015260048201541660a08401526005015460c083015203601f19810183526107a79150826113d2565b519020146107b25780f35b6001600160401b036107c8602460043501611589565b168152601d6020526106e56040822033906119dc565b82546001600160a01b03168552879550602090940193918101918101610757565b604051632d7f750360e21b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b50806001600160401b0361083b602460043501611589565b161415610357565b5080fd5b50346101085760203660031901126101085760043560008051602061410883398151915260018154146101ad576001815581156109165760ff600d5460081c16610904573383526003602052816040842054106108f2576101fe83923384526003602052604084206108ba828254611fea565b90556108c881600254611fea565b60025533845260036020526040842054156108e4575b33613166565b6108ed33614000565b6108de565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b50602036600319011261010857600435906001600160401b0382116101085736602383011215610108576001600160401b03826004013511610108576024368184600401358501011161084357600160008051602061410883398151915254146101ad576001600080516020614108833981519152556109a661363a565b600d5460ff8160081c1680918192610eda575b50610ec8573415610eb65760418460040135148015610ea4576109db90613021565b836004013560011161027b576109fd366004860135600019016025870161140e565b80516020909101206001600160a01b03163303610e9257610c845733600090815260106020526040902060029390840190610a468160040135610a408454611a61565b84611b31565b83601f826004013511600114610c0e578385918360040135610c01575b5050816004013560011b91600019906004013560031b1c19161790555b610a8a343361321b565b600f54600654811015610ab1575b505090505b806000805160206141088339815191525580f35b61ffff601154166001600160401b0360075460401c1611610a985761010061ff0019600d541617600d556040519360208501602086526001548091526040860160408260051b88010191600187527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69187905b828210610bb657505050508585967f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a1610b6e60018060a01b036009541691548093611f6a565b92813b156106bb5784926040519485938492637903ab2760e11b845260048401525af1801561064857610ba2575b80610a98565b610bab90611373565b610108578038610b9c565b9091929360206003610bf36001938d603f1990820301865288548152848060a01b03858a0154168482015260609081604082015201898901611a9b565b960192019201909291610b24565b8301013590508338610a63565b828552602085208592916004830135601f19165b808510610c675760019450836004013511610c48575b505060040135811b019055610a80565b8201850135600019600484013560031b60f8161c191690553880610c38565b838201870135835560209485019460019093019290910190610c22565b610c9536846004013583860161140e565b926001600160401b0360175416604051610cae816113b7565b600281526020810195865233604082015281600052601860205260406000209581516003811015610e7d5760ff80198954169116178755519586516001600160401b038111610e6857610d1181610d086001850154611a61565b60018501611b31565b6020601f8211600114610de6579080600293926000805160206140e8833981519152999a600092610ddb575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610d868261159d565b166001600160401b03196017541617601755610dc360405193849360028552336020860152608060408601526080850191816004013591016116bd565b9060608301520390a1610dd63433613430565b610a9d565b015190503880610d3d565b6001830160005260206000209860005b601f1984168110610e505750916000805160206140e883398151915298996001926002959483601f19811610610e37575b505050811b016001820155610d55565b015160001960f88460031b161c19169055388080610e27565b828201518b556001909a019960209283019201610df6565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b604051634be9251d60e11b8152600490fd5b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6040516341f8b8eb60e11b8152600490fd5b60ff915060101c16386109b9565b5034610108578060031936011261010857600190600080516020614108833981519152828154146101ad57828155336000908152601a602052604090209283549061ffff9081831692831561106257829060101c16918391808795818a01915b610fdc575b50505086610fbe937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515610fc5575b610fa68133613166565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601a60205260409020859055610f9c565b90919394838116968288101561105957876000526020809185825260406000206040516110088161139c565b8982549283835201549384910152431061104e578594938896889461102f86958a95611f6a565b9c60005252600082604082208281550155011696600019011694610f48565b985050509493610f4d565b96509493610f4d565b6040516364b0557f60e01b8152600490fd5b503461010857806003193601126101085761108d61363a565b61ffff6110a38160145416826011541690611f8a565b166110fe57600d805463ff0000001916630100000017905560095481906001600160a01b0316803b1561019b5781906004604051809481936341c0e1b560e01b83525af18015610648576110f5575080f35b6100ee90611373565b604051636b62255160e11b8152600490fd5b50806003193601126101085761112461363a565b6100ee61365b565b50346101085760203660031901126101085761114661363a565b6100ee6004356136b8565b50346101085760209081600319360112610108576001600160401b039160043583811161027b573660238201121561027b5761119790369060248160040135910161140e565b923383526012825261ffff604084205416156112945783511561128257338352601e8252604083209184519182116106a3576111dd826111d78554611a61565b85611b31565b80601f831160011461121e5750839482939492611213575b50508160011b916000199060031b1c19161790555b6106e533611975565b0151905038806111f5565b90601f198316958486528286209286905b88821061126a57505083600195969710611251575b505050811b01905561120a565b015160001960f88460031b161c19169055388080611244565b8060018596829496860151815501950193019061122f565b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610843573415611364575060ff600d5460081c1661090457338152600360205260408120541561130b575b3381526003602052604081206112f7348254611f6a565b905561130534600254611f6a565b60025580f35b600454600160401b8110156113505761132d81600161134b93016004556118f1565b81546001600160a01b0360039290921b91821b19163390911b179055565b6112e0565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b03811161138657604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761138657604052565b606081019081106001600160401b0382111761138657604052565b90601f801991011681019081106001600160401b0382111761138657604052565b6001600160401b03811161138657601f01601f191660200190565b92919261141a826113f3565b9161142860405193846113d2565b829481845281830111610103578281602093846000960137010152565b9181601f84011215610103578235916001600160401b038311610103576020808501948460051b01011161010357565b6001600160401b0381116113865760051b60200190565b35906001600160a01b038216820361010357565b92916114ab82611475565b916114b960405193846113d2565b829481845260208094019160051b810192831161010357905b8282106114df5750505050565b8380916114eb8461148c565b8152019101906114d2565b9291909261150384611475565b9161151160405193846113d2565b829480845260208094019060051b8301928284116101035780915b84831061153b57505050505050565b82356001600160401b03811161010357820184601f8201121561010357869161156a868385809535910161140e565b81520192019161152c565b35906001600160401b038216820361010357565b356001600160401b03811681036101035790565b9060016001600160401b03809316019182116115b557565b634e487b7160e01b600052601160045260246000fd5b9190916001600160401b03808094169116019182116115b557565b9035603e1982360301811215610103570190565b6001600160401b039190604082018361161283611575565b16835260209182810135601e19823603018112156101035701928284359401948411610103578360051b36038513610103576040818401529083905260600192919060005b828110611665575050505090565b909192938280600192838060a01b0361167d8961148c565b16815201950193929101611657565b9035601e19823603018112156101035701602081359101916001600160401b03821161010357813603831361010357565b908060209392818452848401376000828201840152601f01601f1916010190565b6117076116fc6116ee83806115e6565b6040855260408501906115fa565b9160208101906115e6565b91602081830391015281359160ff831680930361010357611734604091611744948452602081019061168c565b91909281602082015201916116bd565b90565b90918092808252602080920191808260051b86010194846000915b848310611773575050505050505090565b90919293949596601f1982820301875261178d88846115e6565b90813560de1983360301811215610103578201916040908183526117b184806115e6565b6117c760e09182858701526101208601906116de565b926117d48a8701876115e6565b6001600160401b036118096117f7603f1997606094898b830301868c01526116de565b926080948a0135858a01528901611575565b169160a092838801528701359263ffffffff60e01b8416809403610103578b9561183f61184f9460c096878b01528a018a61168c565b92909189850301908901526116bd565b940135610100840152013590811515809203610103578601529684019584019493926001019190611762565b9060808061189a61188c85806115e6565b60a0855260a08501906115fa565b936001600160401b03806118b060208401611575565b166020860152604082013560408601526118cc60608301611575565b166060850152013591015290565b8181106118e5575050565b600081556001016118da565b6004548110156119285760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b601f5481101561192857601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8070190600090565b60008181526020805260408120546119d757601f54600160401b8110156113505790826119c46119ad84600160409601601f5561193e565b819391549060031b91821b91600019901b19161790565b9055601f54928152602080522055600190565b905090565b91906001830160009082825280602052604082205415600014611a5b57845494600160401b861015611a475760018601808255861015611a3357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b90600182811c92168015611a91575b6020831014611a7b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611a70565b9060009291805491611aac83611a61565b918282526001938481169081600014611b0e5750600114611ace575b50505050565b90919394506000526020928360002092846000945b838610611afa575050505001019038808080611ac8565b805485870183015294019385908201611ae3565b9294505050602093945060ff191683830152151560051b01019038808080611ac8565b9190601f8111611b4057505050565b611b6c926000526020600020906020601f840160051c83019310611b6e575b601f0160051c01906118da565b565b9091508190611b5f565b90808214611c5257611b8a8154611a61565b906001600160401b038211611386578190611baf82611ba98654611a61565b86611b31565b600090601f8311600114611be657600092611bdb575b50508160011b916000199060031b1c1916179055565b015490503880611bc5565b81526020808220858352818320935090601f1985169083905b828210611c39575050908460019594939210611c20575b505050811b019055565b015460001960f88460031b161c19169055388080611c16565b8495819295850154815560018091019601940190611bff565b5050565b6017546001600160401b0382811692908083168410611c815760405163040aaa0560e11b8152600490fd5b808360401c168410611ac85780604093841c165b848282161115611cfc57505091602091611ccf7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf639461159d565b67ffffffffffffffff60401b60175491831b169067ffffffffffffffff60401b19161760175551908152a1565b611d19816001600160401b03166000526018602052604060002090565b60028181015482546001600160a01b03949293918516919060ff166003811015611f55578695818603611dab5750506001600160a01b039091166000908152601060205260409020611d7091600101908401611b78565b611d8d816001600160401b03166000526018602052604060002090565b91600090818455600193611da2858201611ff7565b01550116611c95565b919394955091885193611dcd85611dc6816001809501611a9b565b03866113d2565b602080868051810103126101035781818c9701519514600014611f0a578490611df68285612040565b601954611e039043611f6a565b92875190611e108261139c565b8482528282018481526001600160a01b0387166000908152601a602052604090209091909283549161ffff9384848180961695869160101c1690611e5391611f8a565b169c60009d8e5282870188528d209251835551910155611e7290611f77565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a16009541690813b1561027b578291602483928a5195869384926345f5448560e01b845260048401525af1908115611eff57509084939291611ef0575b50611d70565b611ef990611373565b38611eea565b8751903d90823e3d90fd5b505082935091611f1a9192611fa0565b6009541690813b15610103578651916316989f6f60e21b83528260048160009485945af1908115611eff57509084939291611ef05750611d70565b60246000634e487b7160e01b81526021600452fd5b919082018092116115b557565b90600161ffff809316019182116115b557565b91909161ffff808094169116019182116115b557565b90611b6c91611fe260018060a01b03821692836000526010602052611fca81604060002054611f6a565b93600052601060205283604060002055600f54611f6a565b600f556120c3565b919082039182116115b557565b6120018154611a61565b908161200b575050565b81601f6000931160011461201d575055565b90808391825261203c601f60208420940160051c8401600185016118da565b5555565b906120a46120ac9260018060a01b038116906000828152601060205261206a856040832054611fea565b92815260106020526040812060018101848154811590816120ba575b50156120b15750908260029261209f9483555501611ff7565b612430565b600f54611fea565b600f55565b92505055612430565b90501538612086565b919060018060a01b03928381169360008581526020956012875261ffff916040978389832054166123145783600e54168460115416106122e05786612106612a61565b9190911061225a5750828252601581528389832054166121795750505050506121747f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946121548361275e565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61218886959994989796612f78565b92825260109081815284832054935b6001808b831611156122245781617fff911c1690818552601683528b87862054168552838352858786205410156121d7576121d290826130d7565b612197565b505093516001600160a01b0390951685525050505060208101919091529092507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91508060408101612174565b50505050505061217491929395507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9450612154565b9596506121749450906015899493927ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75999a93612295612c30565b8352522054166122d2575b6122a984612bbe565b6122b28361275e565b516001600160a01b03928316815292909116602083015281906040820190565b6122db8461294b565b6122a0565b50505050506121747f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461215483612bbe565b612325869598979699949399612f41565b988252601090818152848320549861233c8b612b4d565b8560115416905b8681168281116123f857828110156123db57508061236361236992611f77565b90612eef565b9c909c5b8c111561238c5761237e908d61303e565b6123878c612b4d565b612343565b505094516001600160a01b0390961686525050505060208201929092529193507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197925081905060408101612174565b869d919d526013845282888720541686528484528786205461236d565b505050505050505061217491929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612154565b9160018060a01b0392838116926000918483526020946015865261ffff9060409482868220541661261f57818152601288528286822054161561260e5784156125895761247c84612f41565b918152601080895286822054925b60018086831611156125785781617fff911c169081845260138b528b89852054168452828b52848985205411156124ca576124c5908261303e565b61248a565b5050505050919395509193505b6014541615612573576124e8612a61565b906124f1612aab565b90921061253a57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612174565b915091506121747ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759361256b612c30565b6122a06127e4565b505050565b5050505050919395509193506124d7565b50916125bc919597507f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b94969350612d79565b8451908152a1601454166125cd5750565b6121747f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd916125fa612aab565b9290916126056127e4565b61215483612bbe565b8551632a55ca5360e01b8152600490fd5b90939596869893959815612725579261fffe92949361263d87612f78565b9483526010918282528a8420549580976001968792831b168160145416925b6126b1575b50509a516001600160a01b039098168852505050506020840194909452509293507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd925090508060408101612174565b81811683811161271f578e9080851115612703575050806126d46126da92611f77565b90612b64565b9990995b8910156126fe576126ef908a6130d7565b6126f889612b4d565b8761265c565b612661565b885260168652872054841687528585528d8720549099906126de565b50612661565b955050505090936127577f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949561294b565b51908152a1565b611b6c90604061ffff6127748160145416611f77565b9260018060a01b031660009181835260156020528383209085169061ffff199082828254161790558184526016602052848420836001600160601b0360a01b825416179055601454161760145581526010602052205490612af5565b61ffff90811660001901919082116115b557565b61ffff8060145416801561293957600161280082821115613021565b6000818152601660208181526040808420805487865282862080546001600160a01b0392831680895260158752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b0319908116909217909355898952845416909117909255939691949392916128969189612887836127d0565b16906014541617601455612f9d565b8483528581528184842054168352601091828252848420549686809960028160145416925b6128ce575b505050505050505050505050565b81811683811161293357838110156129175750806126d46128ee92611f77565b9b909b5b8b101561291257612903908c6130d7565b61290c8b612b4d565b896128bb565b6128c0565b889c919c528386528489892054168852868652888820546128f2565b506128c0565b6040516340d9b01160e01b8152600490fd5b61295490612f78565b61ffff80601454169061296782846130d7565b80612971836127d0565b1661ffff19601454161760145561298782612f9d565b80831680921461257357919061fffe906000818152601691602083815260018060a01b0360409481868620541685526010938484526129c9878720548a612af5565b85528083528186862054168552838352858520549780996001988992831b168160145416925b612a0157505050505050505050505050565b8181168381116129335783811015612a455750806126d4612a2192611f77565b9b909b5b8b101561291257612a36908c6130d7565b612a3f8b612b4d565b896129ef565b889c919c52838652848989205416885286865288882054612a25565b61ffff6011541615612939577f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d546001600160a01b03166000818152601060205260409020549091565b61ffff6014541615612939577f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49546001600160a01b03166000818152601060205260409020549091565b9190915b60018061ffff83161115612b475781617fff911c169083600083815260209060168252601060409260018060a01b03848420541683525220541015612b4757612b4290826130d7565b612af9565b50509050565b60011b906201fffe61fffe8316921682036115b557565b91909161ffff92604060008584168152601660205260018060a01b03808383205416825260106020528282205496841682526016602052828220541681526010602052205490818510612bb75750509190565b9350919050565b611b6c90604061ffff612bd48160115416611f77565b9260018060a01b031660009181835260126020528383209085169061ffff199082828254161790558184526013602052848420836001600160601b0360a01b825416179055601154161760115581526010602052205490612e9d565b61ffff80601154168015612939576001612c4c82821115613021565b6000818152601360208181526040808420805487865282862080546001600160a01b0392831680895260128752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b031990811690921790935589895284541690911790925593969194939291612ce29189612cd3836127d0565b16906011541617601155612fdf565b8483528581528184842054168352601091828252848420549686809960028160115416925b612d1957505050505050505050505050565b8181168381116129335783811015612d5d575080612363612d3992611f77565b9b909b5b8b111561291257612d4e908c61303e565b612d578b612b4d565b89612d07565b889c919c52838652848989205416885286865288882054612d3d565b612d8290612f41565b9061ffff90816011541691612d97838561303e565b80612da1846127d0565b1661ffff196011541617601155612db783612fdf565b808416809314612e975760009280845260139360209185835260018060a01b03926040938085852054168452601092838352612df6868620548b612e9d565b845287825280858520541684528282528484205497612e148a612b4d565b8760115416905b888116828111612e885782811015612e6c575080612363612e3b92611f77565b9b909b5b8b1115612e5e57612e50908c61303e565b612e598b612b4d565b612e1b565b505050505050505050915050565b879c919c52828552838888205416875285855287872054612e3f565b50505050505050505050915050565b50915050565b9190915b60018061ffff83161115612b475781617fff911c169083600083815260209060138252601060409260018060a01b03848420541683525220541115612b4757612eea908261303e565b612ea1565b919061ffff604060008286168152601360205260018060a01b0380838320541682526010602052828220549385168252601360205282822054168152601060205220549384821115612bb75750509190565b6001600160a01b031660009081526012602052604090205461ffff16908115612f6657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526015602052604090205461ffff16908115612f6657565b61ffff16600090815260166020908152604080832080546001600160a01b031981169091556001600160a01b0316835260159091529020805461ffff19169055565b61ffff16600090815260136020908152604080832080546001600160a01b031981169091556001600160a01b0316835260129091529020805461ffff19169055565b1561302857565b634e487b7160e01b600052600160045260246000fd5b61306361ffff80806011541693169361305984861115613021565b1691821115613021565b6000828152601360208181526040808420805486865282862080546001600160a01b0392831680895260128752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6130f261ffff80806014541693169361305984861115613021565b6000828152601660208181526040808420805486865282862080546001600160a01b0392831680895260158752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b8147106131c8576000918291829182916001600160a01b03165af13d156131c3573d613191816113f3565b9061319f60405192836113d2565b8152600060203d92013e5b156131b157565b604051630a12f52160e11b8152600490fd5b6131aa565b60405163cd78605960e01b8152306004820152602490fd5b600154811015611928576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b906132309061322a8184613409565b82611fa0565b60ff600d5460081c16156132415750565b60018054600082815b8381106133d8575b50501561325e57505050565b6001600160a01b038316600090815260106020526040902080546132b29490916002016040519261328e846113b7565b83526020936132b98585019260018060a01b03809516845260405198898092611a9b565b03886113d2565b60408401968752600160401b8110156113865780866132da920187556131e0565b9290926133c2576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b03831161138657613327836133218754611a61565b87611b31565b81601f84116001146133605750928293918392600094613355575b50501b916000199060031b1c1916179055565b015192503880613342565b919083601f1981168760005284600020946000905b888383106133a8575050501061338f57505050811b019055565b015160001960f88460031b161c19169055388080611c16565b858701518855909601959485019487935090810190613375565b634e487b7160e01b600052600060045260246000fd5b816133e2826131e0565b5001546001600160a01b038781169116146133ff5701839061324a565b5090508238613252565b60018060a01b0316600052601060205261342c6001604060002001918254611f6a565b9055565b919060409283516020838183015280825261344a8261139c565b6001600160401b03806017541691875197613464896113b7565b600092838a52828a0199868b528281019060018060a01b0390818a169c8d845288885260188752858820915160038110156136265760ff801984541691161782556001808301915190815191878311613612576134c583611ba98654611a61565b89908b601f85116001146135a45793600295938193829360809d9c9b9a999794613599575b50501b916000199060031b1c19161790555b019151166001600160601b0360a01b82541617905561351a8661159d565b166001600160401b03196017541617601755805199848b52838b01528901528351938460808a0152825b858110613585575050508683819360a093846000805160206140e883398151915297611b6c9b9c0101526060830152601f80199101168101030190a1613409565b8181018301518a820160a001528201613544565b0151925038806134ea565b50848c528a8c209293929190601f1984168d5b8d8282106135fe5750509160809b9a999897959391856002989694106135e5575b505050811b0190556134fc565b015160001960f88460031b161c191690553880806135d8565b8385015186559487019493840193016135b7565b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b89526021600452602489fd5b60ff600d5460181c1661364957565b60405163248c8efb60e11b8152600490fd5b600d5460ff8160101c16610ec8573415610eb65733600090815260106020526040902060010154156136a65760081c60ff161561369c57611b6c3433613430565b611b6c343361321b565b60405163528fc16560e01b8152600490fd5b600d5460ff8160101c16610ec857811561372a57336000908152601060205260409020600101548015611294578210156137195760081c60ff161561370157611b6c903361378f565b8061370f611b6c923361373c565b6108de8133612040565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b0316600081815260106020526040902060010154909180821061377d5761376991611fea565b906000526010602052600160406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526137a88461139c565b6001600160401b03806017541690604051916137c3836113b7565b60018352602083019187835260018060a01b0393848616604082015260009383855260186020526040852090825160038110156139905760ff8019845416911617825551805184811161397c57908291600189940191613827826111d78554611a61565b602090601f831160011461390f57918060029492604096948c92613904575b50508160011b916000199060031b1c19161790555b01920151166001600160601b0360a01b82541617905561387a8261159d565b166001600160401b0319601754161760175560405192600184528416602084015260806040840152865191826080850152805b8381106138ee5750611b6c969750928260a0926000805160206140e883398151915295848496850101526060830152601f80199101168101030190a161373c565b80602080928b01015160a08288010152016138ad565b015190503880613846565b838a5260208a209190601f1984168b5b8181106139615750926001928592604098966002989610613948575b505050811b01905561385b565b015160001960f88460031b161c1916905538808061393b565b8284015185558d98506001909401936020938401930161391f565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b87526021600452602487fd5b600d5460ff8160081c169081613a99575b50610ec857336000908152601060205260409020600101548015611294576139dc33613aa7565b50600090338252601e60205281604081206139f78154611a61565b80613a5c575b50505060ff600d5460081c1615613a1957611b6c91503361378f565b6040611b6c923381526003602052205480613a3a575b5061370f813361373c565b80613a4a613a5692600254611fea565b6002556108de33614000565b38613a2f565b82601f8211600114613a74575050555b8138806139fd565b9091808252613a92601f60208420940160051c8401600185016118da565b5555613a6c565b60ff915060101c16386139b5565b600081815260208080526040822054919290918015613b885760001990808201818111613b7457601f5490838201918211613b6057808203613b2e575b505050601f548015613b1a57810190613afc8261193e565b909182549160031b1b19169055601f55825280526040812055600190565b634e487b7160e01b85526031600452602485fd5b613b4c613b3d6119ad9361193e565b90549060031b1c92839261193e565b905585528380526040852055388080613ae4565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b86526011600452602486fd5b50505090565b80518210156119285760209160051b010190565b8115611c52576001600160401b0390818060075416911603908082116115b557600091168152602090601d8252604090818120928251808583829754938481520190855283852092855b85828210613c6457505050613c03925003856113d2565b8351948515613c5c57858110613c5c5785900493825b868110613c295750505050505050565b6001906001600160a01b03613c3e8285613b8e565b51168552601c8452858520613c54888254611f6a565b905501613c19565b505050505050565b855484526001958601958a955093019201613bec565b91825191613c8783611475565b93604094613c97865191826113d2565b848152601f19613ca686611475565b0194602095368784013760005b818110613d9857505060009461ffff8060115416600192839182945b613d42575b505050505060ff60095460a01c16948581029581870414901517156115b5576064613d00950491613e25565b9015613d0a575050565b6007811015613d2c5760ff602492519163282ef1c160e01b8352166004820152fd5b634e487b7160e01b600052602160045260246000fd5b90919293988a858b16838111613d9057600090815260138552908120546001600160a01b031681526010602052604090208493929186918591613d86915490611f6a565b9b01169493613ccf565b505098613cd4565b6001600160a01b0380613dab8387613b8e565b51166000526012885261ffff89600020541615613e015790613def600192613dd38388613b8e565b51166001600160a01b0316600090815260106020526040902090565b54613dfa8286613b8e565b5201613cb3565b8890613e0f60249387613b8e565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415613f275782518514801590613f1c575b613f0f579392919085945b848610613e6d575050505050501015613e6557600090600690565b600190600090565b909192939495613e87613e808884613b8e565b5184613f34565b509060049182811015613efa57613ee8576001600160a01b0380613eab8b89613b8e565b5116911603613ed85750613ecc600191613ec58988613b8e565b5190611f6a565b96019493929190613e4a565b9897505050505050505060009190565b50505050505050505050600090600590565b602183634e487b7160e01b6000525260246000fd5b5050505050905090600190565b508351851415613e3f565b5050505050905090600290565b8151919060418303613f6557613f5e92506020820151906060604084015193015160001a90613f70565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613ff457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613fe85780516001600160a01b03811615613fdf57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60049081549160005b8381106140165750505050565b61401f816118f1565b90546003916001600160a01b039190831b1c811685821614614045575050600101614009565b9293509390600019918281019081116140d2579061407684614069614095946118f1565b905490891b1c16916118f1565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156140bd5701926140a8846118f1565b81939154921b1b191690555538808080611ac8565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212203dfa282c03c855825f2f747e364790adc22061eee596cce766ecde76bd24e95c64736f6c63430008130033","sourceMap":"1272:15736:55:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":344,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146112ac5750806310fd4261146111515780632e17de781461112c5780633a4b66f11461111057806341c0e1b5146110745780634e71d92d14610ee85780636170b1621461092857806366783c9b14610847578063a8284de31461027f578063cc2dc2b914610202578063d66d9e19146101bf578063ed7c4da11461010b5763f9002bb1146100b057600080fd5b6040366003190112610108576004356001600160401b0381168103610103576009546001600160a01b031633036100f1576100ee9060243590613ba2565b80f35b60405163e7e601db60e01b8152600490fd5b600080fd5b80fd5b503461010857806003193601126101085760008051602061410883398151915260018154146101ad5780600183925573__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a95782602491604051928380926382985e0b60e01b82523360048301525af490811561019e578391610187575b50505580f35b61019090611373565b61019b578138610181565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b50346101085780600319360112610108576101d861363a565b60008051602061410883398151915260018154146101ad578060018392556101fe6139a4565b5580f35b5034610108576060366003190112610108576001600160401b0360043581811161027b573660238201121561027b576102459036906024816004013591016114a0565b60443591821161027b573660238301121561027b576102716100ee9236906024816004013591016114f6565b9060243590613c7a565b8280fd5b5034610108576080366003190112610108576001600160401b03600435116101085760a060043536036003190112610108576024356001600160401b038111610843576102d0903690600401611445565b91906044356001600160401b03811161027b576102f1903690600401611445565b6064356001600160401b0381116106bb57610310903690600401611445565b9261031f602460043501611589565b926001600160401b03600554166001600160401b0360075416946001600160401b038061034c88856115cb565b169116141580610823575b610811576040516020810190602082526103888161037a8d60408301908d611747565b03601f1981018352826113d2565b51902060846004350135036107ff576040516020808201526103b68161037a6040820160043560040161187b565b60208151910120946001600160401b03806103df6103d8602460043501611589565b93856115cb565b169116146000146106bf5750916104006104089261040e96959436916114a0565b9336916114f6565b91613c7a565b6001600160401b03610424602460043501611589565b168252816020526040822092600435600401356042196004353603018112156106b757600435016001600160401b0361045f60048301611589565b166001600160401b0319865416178555602481013590602219813603018212156106bb5701936001600160401b036004860135116106b757600485013560051b360360248601136106b757600160401b6004860135116106a35760019485820180546004830135825580600484013510610684575b5085526020852060248201865b600484013581106106585750505050839450600281016001600160401b0361050d602460043501611589565b166001600160401b03198254161790556044600435013560038201556001600160401b0361053f606460043501611589565b1660048201906001600160401b03198254161790556005608460043501359101556001600160401b03610576602460043501611589565b168352601d60205261058c6040842033906119dc565b506001600160401b036105a3602460043501611589565b166001600160401b0319600554161760055560018060a01b036009541691823b156106535761060d92849283604051809681958294637a2b59cf60e11b8452604060048501526105fb6044850160043560040161187b565b84810360031901602486015291611747565b03925af1801561064857610634575b50506100ee61062f606460043501611589565b611c56565b61063d90611373565b61010857803861061c565b6040513d84823e3d90fd5b505050fd5b8135916001600160a01b03831683036106805760049160208b920193818601550190506104e1565b8880fd5b8187526020872061069d918101906004850135016118da565b386104d4565b634e487b7160e01b84526041600452602484fd5b8380fd5b8480fd5b9550505050929350506001600160401b036106de602460043501611589565b16146106e9575b5080f35b6001600160401b036106ff602460043501611589565b168252816020526040822060405160208101916020835260a06040830152816101208101916001600160401b0381541660e0830152600190818101916040610100850152825480955261014084019289526020892090895b8681106107de5750505060028101546001600160401b0390811660608501526003820154608085015260048201541660a08401526005015460c083015203601f19810183526107a79150826113d2565b519020146107b25780f35b6001600160401b036107c8602460043501611589565b168152601d6020526106e56040822033906119dc565b82546001600160a01b03168552879550602090940193918101918101610757565b604051632d7f750360e21b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b50806001600160401b0361083b602460043501611589565b161415610357565b5080fd5b50346101085760203660031901126101085760043560008051602061410883398151915260018154146101ad576001815581156109165760ff600d5460081c16610904573383526003602052816040842054106108f2576101fe83923384526003602052604084206108ba828254611fea565b90556108c881600254611fea565b60025533845260036020526040842054156108e4575b33613166565b6108ed33614000565b6108de565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b50602036600319011261010857600435906001600160401b0382116101085736602383011215610108576001600160401b03826004013511610108576024368184600401358501011161084357600160008051602061410883398151915254146101ad576001600080516020614108833981519152556109a661363a565b600d5460ff8160081c1680918192610eda575b50610ec8573415610eb65760418460040135148015610ea4576109db90613021565b836004013560011161027b576109fd366004860135600019016025870161140e565b80516020909101206001600160a01b03163303610e9257610c845733600090815260106020526040902060029390840190610a468160040135610a408454611a61565b84611b31565b83601f826004013511600114610c0e578385918360040135610c01575b5050816004013560011b91600019906004013560031b1c19161790555b610a8a343361321b565b600f54600654811015610ab1575b505090505b806000805160206141088339815191525580f35b61ffff601154166001600160401b0360075460401c1611610a985761010061ff0019600d541617600d556040519360208501602086526001548091526040860160408260051b88010191600187527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69187905b828210610bb657505050508585967f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a1610b6e60018060a01b036009541691548093611f6a565b92813b156106bb5784926040519485938492637903ab2760e11b845260048401525af1801561064857610ba2575b80610a98565b610bab90611373565b610108578038610b9c565b9091929360206003610bf36001938d603f1990820301865288548152848060a01b03858a0154168482015260609081604082015201898901611a9b565b960192019201909291610b24565b8301013590508338610a63565b828552602085208592916004830135601f19165b808510610c675760019450836004013511610c48575b505060040135811b019055610a80565b8201850135600019600484013560031b60f8161c191690553880610c38565b838201870135835560209485019460019093019290910190610c22565b610c9536846004013583860161140e565b926001600160401b0360175416604051610cae816113b7565b600281526020810195865233604082015281600052601860205260406000209581516003811015610e7d5760ff80198954169116178755519586516001600160401b038111610e6857610d1181610d086001850154611a61565b60018501611b31565b6020601f8211600114610de6579080600293926000805160206140e8833981519152999a600092610ddb575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610d868261159d565b166001600160401b03196017541617601755610dc360405193849360028552336020860152608060408601526080850191816004013591016116bd565b9060608301520390a1610dd63433613430565b610a9d565b015190503880610d3d565b6001830160005260206000209860005b601f1984168110610e505750916000805160206140e883398151915298996001926002959483601f19811610610e37575b505050811b016001820155610d55565b015160001960f88460031b161c19169055388080610e27565b828201518b556001909a019960209283019201610df6565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b604051634be9251d60e11b8152600490fd5b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6040516341f8b8eb60e11b8152600490fd5b60ff915060101c16386109b9565b5034610108578060031936011261010857600190600080516020614108833981519152828154146101ad57828155336000908152601a602052604090209283549061ffff9081831692831561106257829060101c16918391808795818a01915b610fdc575b50505086610fbe937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515610fc5575b610fa68133613166565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601a60205260409020859055610f9c565b90919394838116968288101561105957876000526020809185825260406000206040516110088161139c565b8982549283835201549384910152431061104e578594938896889461102f86958a95611f6a565b9c60005252600082604082208281550155011696600019011694610f48565b985050509493610f4d565b96509493610f4d565b6040516364b0557f60e01b8152600490fd5b503461010857806003193601126101085761108d61363a565b61ffff6110a38160145416826011541690611f8a565b166110fe57600d805463ff0000001916630100000017905560095481906001600160a01b0316803b1561019b5781906004604051809481936341c0e1b560e01b83525af18015610648576110f5575080f35b6100ee90611373565b604051636b62255160e11b8152600490fd5b50806003193601126101085761112461363a565b6100ee61365b565b50346101085760203660031901126101085761114661363a565b6100ee6004356136b8565b50346101085760209081600319360112610108576001600160401b039160043583811161027b573660238201121561027b5761119790369060248160040135910161140e565b923383526012825261ffff604084205416156112945783511561128257338352601e8252604083209184519182116106a3576111dd826111d78554611a61565b85611b31565b80601f831160011461121e5750839482939492611213575b50508160011b916000199060031b1c19161790555b6106e533611975565b0151905038806111f5565b90601f198316958486528286209286905b88821061126a57505083600195969710611251575b505050811b01905561120a565b015160001960f88460031b161c19169055388080611244565b8060018596829496860151815501950193019061122f565b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610843573415611364575060ff600d5460081c1661090457338152600360205260408120541561130b575b3381526003602052604081206112f7348254611f6a565b905561130534600254611f6a565b60025580f35b600454600160401b8110156113505761132d81600161134b93016004556118f1565b81546001600160a01b0360039290921b91821b19163390911b179055565b6112e0565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b03811161138657604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761138657604052565b606081019081106001600160401b0382111761138657604052565b90601f801991011681019081106001600160401b0382111761138657604052565b6001600160401b03811161138657601f01601f191660200190565b92919261141a826113f3565b9161142860405193846113d2565b829481845281830111610103578281602093846000960137010152565b9181601f84011215610103578235916001600160401b038311610103576020808501948460051b01011161010357565b6001600160401b0381116113865760051b60200190565b35906001600160a01b038216820361010357565b92916114ab82611475565b916114b960405193846113d2565b829481845260208094019160051b810192831161010357905b8282106114df5750505050565b8380916114eb8461148c565b8152019101906114d2565b9291909261150384611475565b9161151160405193846113d2565b829480845260208094019060051b8301928284116101035780915b84831061153b57505050505050565b82356001600160401b03811161010357820184601f8201121561010357869161156a868385809535910161140e565b81520192019161152c565b35906001600160401b038216820361010357565b356001600160401b03811681036101035790565b9060016001600160401b03809316019182116115b557565b634e487b7160e01b600052601160045260246000fd5b9190916001600160401b03808094169116019182116115b557565b9035603e1982360301811215610103570190565b6001600160401b039190604082018361161283611575565b16835260209182810135601e19823603018112156101035701928284359401948411610103578360051b36038513610103576040818401529083905260600192919060005b828110611665575050505090565b909192938280600192838060a01b0361167d8961148c565b16815201950193929101611657565b9035601e19823603018112156101035701602081359101916001600160401b03821161010357813603831361010357565b908060209392818452848401376000828201840152601f01601f1916010190565b6117076116fc6116ee83806115e6565b6040855260408501906115fa565b9160208101906115e6565b91602081830391015281359160ff831680930361010357611734604091611744948452602081019061168c565b91909281602082015201916116bd565b90565b90918092808252602080920191808260051b86010194846000915b848310611773575050505050505090565b90919293949596601f1982820301875261178d88846115e6565b90813560de1983360301811215610103578201916040908183526117b184806115e6565b6117c760e09182858701526101208601906116de565b926117d48a8701876115e6565b6001600160401b036118096117f7603f1997606094898b830301868c01526116de565b926080948a0135858a01528901611575565b169160a092838801528701359263ffffffff60e01b8416809403610103578b9561183f61184f9460c096878b01528a018a61168c565b92909189850301908901526116bd565b940135610100840152013590811515809203610103578601529684019584019493926001019190611762565b9060808061189a61188c85806115e6565b60a0855260a08501906115fa565b936001600160401b03806118b060208401611575565b166020860152604082013560408601526118cc60608301611575565b166060850152013591015290565b8181106118e5575050565b600081556001016118da565b6004548110156119285760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b601f5481101561192857601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8070190600090565b60008181526020805260408120546119d757601f54600160401b8110156113505790826119c46119ad84600160409601601f5561193e565b819391549060031b91821b91600019901b19161790565b9055601f54928152602080522055600190565b905090565b91906001830160009082825280602052604082205415600014611a5b57845494600160401b861015611a475760018601808255861015611a3357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b90600182811c92168015611a91575b6020831014611a7b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611a70565b9060009291805491611aac83611a61565b918282526001938481169081600014611b0e5750600114611ace575b50505050565b90919394506000526020928360002092846000945b838610611afa575050505001019038808080611ac8565b805485870183015294019385908201611ae3565b9294505050602093945060ff191683830152151560051b01019038808080611ac8565b9190601f8111611b4057505050565b611b6c926000526020600020906020601f840160051c83019310611b6e575b601f0160051c01906118da565b565b9091508190611b5f565b90808214611c5257611b8a8154611a61565b906001600160401b038211611386578190611baf82611ba98654611a61565b86611b31565b600090601f8311600114611be657600092611bdb575b50508160011b916000199060031b1c1916179055565b015490503880611bc5565b81526020808220858352818320935090601f1985169083905b828210611c39575050908460019594939210611c20575b505050811b019055565b015460001960f88460031b161c19169055388080611c16565b8495819295850154815560018091019601940190611bff565b5050565b6017546001600160401b0382811692908083168410611c815760405163040aaa0560e11b8152600490fd5b808360401c168410611ac85780604093841c165b848282161115611cfc57505091602091611ccf7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf639461159d565b67ffffffffffffffff60401b60175491831b169067ffffffffffffffff60401b19161760175551908152a1565b611d19816001600160401b03166000526018602052604060002090565b60028181015482546001600160a01b03949293918516919060ff166003811015611f55578695818603611dab5750506001600160a01b039091166000908152601060205260409020611d7091600101908401611b78565b611d8d816001600160401b03166000526018602052604060002090565b91600090818455600193611da2858201611ff7565b01550116611c95565b919394955091885193611dcd85611dc6816001809501611a9b565b03866113d2565b602080868051810103126101035781818c9701519514600014611f0a578490611df68285612040565b601954611e039043611f6a565b92875190611e108261139c565b8482528282018481526001600160a01b0387166000908152601a602052604090209091909283549161ffff9384848180961695869160101c1690611e5391611f8a565b169c60009d8e5282870188528d209251835551910155611e7290611f77565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a16009541690813b1561027b578291602483928a5195869384926345f5448560e01b845260048401525af1908115611eff57509084939291611ef0575b50611d70565b611ef990611373565b38611eea565b8751903d90823e3d90fd5b505082935091611f1a9192611fa0565b6009541690813b15610103578651916316989f6f60e21b83528260048160009485945af1908115611eff57509084939291611ef05750611d70565b60246000634e487b7160e01b81526021600452fd5b919082018092116115b557565b90600161ffff809316019182116115b557565b91909161ffff808094169116019182116115b557565b90611b6c91611fe260018060a01b03821692836000526010602052611fca81604060002054611f6a565b93600052601060205283604060002055600f54611f6a565b600f556120c3565b919082039182116115b557565b6120018154611a61565b908161200b575050565b81601f6000931160011461201d575055565b90808391825261203c601f60208420940160051c8401600185016118da565b5555565b906120a46120ac9260018060a01b038116906000828152601060205261206a856040832054611fea565b92815260106020526040812060018101848154811590816120ba575b50156120b15750908260029261209f9483555501611ff7565b612430565b600f54611fea565b600f55565b92505055612430565b90501538612086565b919060018060a01b03928381169360008581526020956012875261ffff916040978389832054166123145783600e54168460115416106122e05786612106612a61565b9190911061225a5750828252601581528389832054166121795750505050506121747f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946121548361275e565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61218886959994989796612f78565b92825260109081815284832054935b6001808b831611156122245781617fff911c1690818552601683528b87862054168552838352858786205410156121d7576121d290826130d7565b612197565b505093516001600160a01b0390951685525050505060208101919091529092507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91508060408101612174565b50505050505061217491929395507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9450612154565b9596506121749450906015899493927ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75999a93612295612c30565b8352522054166122d2575b6122a984612bbe565b6122b28361275e565b516001600160a01b03928316815292909116602083015281906040820190565b6122db8461294b565b6122a0565b50505050506121747f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461215483612bbe565b612325869598979699949399612f41565b988252601090818152848320549861233c8b612b4d565b8560115416905b8681168281116123f857828110156123db57508061236361236992611f77565b90612eef565b9c909c5b8c111561238c5761237e908d61303e565b6123878c612b4d565b612343565b505094516001600160a01b0390961686525050505060208201929092529193507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197925081905060408101612174565b869d919d526013845282888720541686528484528786205461236d565b505050505050505061217491929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612154565b9160018060a01b0392838116926000918483526020946015865261ffff9060409482868220541661261f57818152601288528286822054161561260e5784156125895761247c84612f41565b918152601080895286822054925b60018086831611156125785781617fff911c169081845260138b528b89852054168452828b52848985205411156124ca576124c5908261303e565b61248a565b5050505050919395509193505b6014541615612573576124e8612a61565b906124f1612aab565b90921061253a57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612174565b915091506121747ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759361256b612c30565b6122a06127e4565b505050565b5050505050919395509193506124d7565b50916125bc919597507f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b94969350612d79565b8451908152a1601454166125cd5750565b6121747f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd916125fa612aab565b9290916126056127e4565b61215483612bbe565b8551632a55ca5360e01b8152600490fd5b90939596869893959815612725579261fffe92949361263d87612f78565b9483526010918282528a8420549580976001968792831b168160145416925b6126b1575b50509a516001600160a01b039098168852505050506020840194909452509293507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd925090508060408101612174565b81811683811161271f578e9080851115612703575050806126d46126da92611f77565b90612b64565b9990995b8910156126fe576126ef908a6130d7565b6126f889612b4d565b8761265c565b612661565b885260168652872054841687528585528d8720549099906126de565b50612661565b955050505090936127577f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949561294b565b51908152a1565b611b6c90604061ffff6127748160145416611f77565b9260018060a01b031660009181835260156020528383209085169061ffff199082828254161790558184526016602052848420836001600160601b0360a01b825416179055601454161760145581526010602052205490612af5565b61ffff90811660001901919082116115b557565b61ffff8060145416801561293957600161280082821115613021565b6000818152601660208181526040808420805487865282862080546001600160a01b0392831680895260158752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b0319908116909217909355898952845416909117909255939691949392916128969189612887836127d0565b16906014541617601455612f9d565b8483528581528184842054168352601091828252848420549686809960028160145416925b6128ce575b505050505050505050505050565b81811683811161293357838110156129175750806126d46128ee92611f77565b9b909b5b8b101561291257612903908c6130d7565b61290c8b612b4d565b896128bb565b6128c0565b889c919c528386528489892054168852868652888820546128f2565b506128c0565b6040516340d9b01160e01b8152600490fd5b61295490612f78565b61ffff80601454169061296782846130d7565b80612971836127d0565b1661ffff19601454161760145561298782612f9d565b80831680921461257357919061fffe906000818152601691602083815260018060a01b0360409481868620541685526010938484526129c9878720548a612af5565b85528083528186862054168552838352858520549780996001988992831b168160145416925b612a0157505050505050505050505050565b8181168381116129335783811015612a455750806126d4612a2192611f77565b9b909b5b8b101561291257612a36908c6130d7565b612a3f8b612b4d565b896129ef565b889c919c52838652848989205416885286865288882054612a25565b61ffff6011541615612939577f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d546001600160a01b03166000818152601060205260409020549091565b61ffff6014541615612939577f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49546001600160a01b03166000818152601060205260409020549091565b9190915b60018061ffff83161115612b475781617fff911c169083600083815260209060168252601060409260018060a01b03848420541683525220541015612b4757612b4290826130d7565b612af9565b50509050565b60011b906201fffe61fffe8316921682036115b557565b91909161ffff92604060008584168152601660205260018060a01b03808383205416825260106020528282205496841682526016602052828220541681526010602052205490818510612bb75750509190565b9350919050565b611b6c90604061ffff612bd48160115416611f77565b9260018060a01b031660009181835260126020528383209085169061ffff199082828254161790558184526013602052848420836001600160601b0360a01b825416179055601154161760115581526010602052205490612e9d565b61ffff80601154168015612939576001612c4c82821115613021565b6000818152601360208181526040808420805487865282862080546001600160a01b0392831680895260128752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b031990811690921790935589895284541690911790925593969194939291612ce29189612cd3836127d0565b16906011541617601155612fdf565b8483528581528184842054168352601091828252848420549686809960028160115416925b612d1957505050505050505050505050565b8181168381116129335783811015612d5d575080612363612d3992611f77565b9b909b5b8b111561291257612d4e908c61303e565b612d578b612b4d565b89612d07565b889c919c52838652848989205416885286865288882054612d3d565b612d8290612f41565b9061ffff90816011541691612d97838561303e565b80612da1846127d0565b1661ffff196011541617601155612db783612fdf565b808416809314612e975760009280845260139360209185835260018060a01b03926040938085852054168452601092838352612df6868620548b612e9d565b845287825280858520541684528282528484205497612e148a612b4d565b8760115416905b888116828111612e885782811015612e6c575080612363612e3b92611f77565b9b909b5b8b1115612e5e57612e50908c61303e565b612e598b612b4d565b612e1b565b505050505050505050915050565b879c919c52828552838888205416875285855287872054612e3f565b50505050505050505050915050565b50915050565b9190915b60018061ffff83161115612b475781617fff911c169083600083815260209060138252601060409260018060a01b03848420541683525220541115612b4757612eea908261303e565b612ea1565b919061ffff604060008286168152601360205260018060a01b0380838320541682526010602052828220549385168252601360205282822054168152601060205220549384821115612bb75750509190565b6001600160a01b031660009081526012602052604090205461ffff16908115612f6657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526015602052604090205461ffff16908115612f6657565b61ffff16600090815260166020908152604080832080546001600160a01b031981169091556001600160a01b0316835260159091529020805461ffff19169055565b61ffff16600090815260136020908152604080832080546001600160a01b031981169091556001600160a01b0316835260129091529020805461ffff19169055565b1561302857565b634e487b7160e01b600052600160045260246000fd5b61306361ffff80806011541693169361305984861115613021565b1691821115613021565b6000828152601360208181526040808420805486865282862080546001600160a01b0392831680895260128752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6130f261ffff80806014541693169361305984861115613021565b6000828152601660208181526040808420805486865282862080546001600160a01b0392831680895260158752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b8147106131c8576000918291829182916001600160a01b03165af13d156131c3573d613191816113f3565b9061319f60405192836113d2565b8152600060203d92013e5b156131b157565b604051630a12f52160e11b8152600490fd5b6131aa565b60405163cd78605960e01b8152306004820152602490fd5b600154811015611928576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b906132309061322a8184613409565b82611fa0565b60ff600d5460081c16156132415750565b60018054600082815b8381106133d8575b50501561325e57505050565b6001600160a01b038316600090815260106020526040902080546132b29490916002016040519261328e846113b7565b83526020936132b98585019260018060a01b03809516845260405198898092611a9b565b03886113d2565b60408401968752600160401b8110156113865780866132da920187556131e0565b9290926133c2576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b03831161138657613327836133218754611a61565b87611b31565b81601f84116001146133605750928293918392600094613355575b50501b916000199060031b1c1916179055565b015192503880613342565b919083601f1981168760005284600020946000905b888383106133a8575050501061338f57505050811b019055565b015160001960f88460031b161c19169055388080611c16565b858701518855909601959485019487935090810190613375565b634e487b7160e01b600052600060045260246000fd5b816133e2826131e0565b5001546001600160a01b038781169116146133ff5701839061324a565b5090508238613252565b60018060a01b0316600052601060205261342c6001604060002001918254611f6a565b9055565b919060409283516020838183015280825261344a8261139c565b6001600160401b03806017541691875197613464896113b7565b600092838a52828a0199868b528281019060018060a01b0390818a169c8d845288885260188752858820915160038110156136265760ff801984541691161782556001808301915190815191878311613612576134c583611ba98654611a61565b89908b601f85116001146135a45793600295938193829360809d9c9b9a999794613599575b50501b916000199060031b1c19161790555b019151166001600160601b0360a01b82541617905561351a8661159d565b166001600160401b03196017541617601755805199848b52838b01528901528351938460808a0152825b858110613585575050508683819360a093846000805160206140e883398151915297611b6c9b9c0101526060830152601f80199101168101030190a1613409565b8181018301518a820160a001528201613544565b0151925038806134ea565b50848c528a8c209293929190601f1984168d5b8d8282106135fe5750509160809b9a999897959391856002989694106135e5575b505050811b0190556134fc565b015160001960f88460031b161c191690553880806135d8565b8385015186559487019493840193016135b7565b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b89526021600452602489fd5b60ff600d5460181c1661364957565b60405163248c8efb60e11b8152600490fd5b600d5460ff8160101c16610ec8573415610eb65733600090815260106020526040902060010154156136a65760081c60ff161561369c57611b6c3433613430565b611b6c343361321b565b60405163528fc16560e01b8152600490fd5b600d5460ff8160101c16610ec857811561372a57336000908152601060205260409020600101548015611294578210156137195760081c60ff161561370157611b6c903361378f565b8061370f611b6c923361373c565b6108de8133612040565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b0316600081815260106020526040902060010154909180821061377d5761376991611fea565b906000526010602052600160406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526137a88461139c565b6001600160401b03806017541690604051916137c3836113b7565b60018352602083019187835260018060a01b0393848616604082015260009383855260186020526040852090825160038110156139905760ff8019845416911617825551805184811161397c57908291600189940191613827826111d78554611a61565b602090601f831160011461390f57918060029492604096948c92613904575b50508160011b916000199060031b1c19161790555b01920151166001600160601b0360a01b82541617905561387a8261159d565b166001600160401b0319601754161760175560405192600184528416602084015260806040840152865191826080850152805b8381106138ee5750611b6c969750928260a0926000805160206140e883398151915295848496850101526060830152601f80199101168101030190a161373c565b80602080928b01015160a08288010152016138ad565b015190503880613846565b838a5260208a209190601f1984168b5b8181106139615750926001928592604098966002989610613948575b505050811b01905561385b565b015160001960f88460031b161c1916905538808061393b565b8284015185558d98506001909401936020938401930161391f565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b87526021600452602487fd5b600d5460ff8160081c169081613a99575b50610ec857336000908152601060205260409020600101548015611294576139dc33613aa7565b50600090338252601e60205281604081206139f78154611a61565b80613a5c575b50505060ff600d5460081c1615613a1957611b6c91503361378f565b6040611b6c923381526003602052205480613a3a575b5061370f813361373c565b80613a4a613a5692600254611fea565b6002556108de33614000565b38613a2f565b82601f8211600114613a74575050555b8138806139fd565b9091808252613a92601f60208420940160051c8401600185016118da565b5555613a6c565b60ff915060101c16386139b5565b600081815260208080526040822054919290918015613b885760001990808201818111613b7457601f5490838201918211613b6057808203613b2e575b505050601f548015613b1a57810190613afc8261193e565b909182549160031b1b19169055601f55825280526040812055600190565b634e487b7160e01b85526031600452602485fd5b613b4c613b3d6119ad9361193e565b90549060031b1c92839261193e565b905585528380526040852055388080613ae4565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b86526011600452602486fd5b50505090565b80518210156119285760209160051b010190565b8115611c52576001600160401b0390818060075416911603908082116115b557600091168152602090601d8252604090818120928251808583829754938481520190855283852092855b85828210613c6457505050613c03925003856113d2565b8351948515613c5c57858110613c5c5785900493825b868110613c295750505050505050565b6001906001600160a01b03613c3e8285613b8e565b51168552601c8452858520613c54888254611f6a565b905501613c19565b505050505050565b855484526001958601958a955093019201613bec565b91825191613c8783611475565b93604094613c97865191826113d2565b848152601f19613ca686611475565b0194602095368784013760005b818110613d9857505060009461ffff8060115416600192839182945b613d42575b505050505060ff60095460a01c16948581029581870414901517156115b5576064613d00950491613e25565b9015613d0a575050565b6007811015613d2c5760ff602492519163282ef1c160e01b8352166004820152fd5b634e487b7160e01b600052602160045260246000fd5b90919293988a858b16838111613d9057600090815260138552908120546001600160a01b031681526010602052604090208493929186918591613d86915490611f6a565b9b01169493613ccf565b505098613cd4565b6001600160a01b0380613dab8387613b8e565b51166000526012885261ffff89600020541615613e015790613def600192613dd38388613b8e565b51166001600160a01b0316600090815260106020526040902090565b54613dfa8286613b8e565b5201613cb3565b8890613e0f60249387613b8e565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415613f275782518514801590613f1c575b613f0f579392919085945b848610613e6d575050505050501015613e6557600090600690565b600190600090565b909192939495613e87613e808884613b8e565b5184613f34565b509060049182811015613efa57613ee8576001600160a01b0380613eab8b89613b8e565b5116911603613ed85750613ecc600191613ec58988613b8e565b5190611f6a565b96019493929190613e4a565b9897505050505050505060009190565b50505050505050505050600090600590565b602183634e487b7160e01b6000525260246000fd5b5050505050905090600190565b508351851415613e3f565b5050505050905090600290565b8151919060418303613f6557613f5e92506020820151906060604084015193015160001a90613f70565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613ff457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613fe85780516001600160a01b03811615613fdf57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60049081549160005b8381106140165750505050565b61401f816118f1565b90546003916001600160a01b039190831b1c811685821614614045575050600101614009565b9293509390600019918281019081116140d2579061407684614069614095946118f1565b905490891b1c16916118f1565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156140bd5701926140a8846118f1565b81939154921b1b191690555538808080611ac8565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212203dfa282c03c855825f2f747e364790adc22061eee596cce766ecde76bd24e95c64736f6c63430008130033","sourceMap":"1272:15736:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;3915:16:44;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;3901:10:44;:30;3897:80;;4170:1;1272:15736:55;;;4170:1:44;;:::i;:::-;1272:15736:55;;3897:80:44;1272:15736:55;;-1:-1:-1;;;3954:12:44;;1272:15736:55;;3954:12:44;1272:15736:55;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:41;1272:15736:55;;582:20:41;578:50;;1272:15736:55;477:1:41;1272:15736:55;;;12861:10;:44;;;;;1272:15736;;;;;;;;;;;;12861:44;;12894:10;1272:15736;12861:44;;1272:15736;12861:44;;;;;;;;;;;1272:15736;;;;;;12861:44;;;;:::i;:::-;1272:15736;;12861:44;;;;1272:15736;;;12861:44;1272:15736;;;;;;;;;12861:44;1272:15736;;;578:50:41;1272:15736:55;;-1:-1:-1;;;611:17:41;;1272:15736:55;;611:17:41;1272:15736:55;;;;;;;;;;;;;4184:61:44;;:::i;:::-;-1:-1:-1;;;;;;;;;;;477:1:41;1272:15736:55;;582:20:41;578:50;;1272:15736:55;477:1:41;1272:15736:55;;;667:1:41;;:::i;:::-;1272:15736:55;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;:::i;:::-;;2692:22;1272:15736;;;2692:22;;:::i;:::-;1272:15736;-1:-1:-1;;;;;2718:30:55;1272:15736;;-1:-1:-1;;;;;2751:21:55;1272:15736;;2718:54;-1:-1:-1;;;;;2718:54:55;;;;;:::i;:::-;1272:15736;;;2692:80;;:152;;;1272:15736;2675:236;;1272:15736;;;2934:20;;1272:15736;;;;2934:20;1272:15736;;;;;;;;;:::i;:::-;2934:20;1272:15736;;2934:20;;;;;;:::i;:::-;1272:15736;2924:31;;2959:28;1272:15736;;2959:28;1272:15736;2924:63;2920:132;;1272:15736;;;3096:22;;;1272:15736;3096:22;1272:15736;;;;;;;;;;:::i;3096:22::-;1272:15736;;;3096:22;;3086:33;1272:15736;-1:-1:-1;;;;;1272:15736:55;3160:54;3134:22;1272:15736;;;2692:22;3134;:::i;:::-;3160:54;;;:::i;:::-;1272:15736;;;3134:80;3130:2146;1272:15736;;;;;;;;3314:104;1272:15736;;;;;;:::i;:::-;;;;;:::i;:::-;3314:104;;:::i;:::-;-1:-1:-1;;;;;3696:22:55;1272:15736;;;2692:22;3696;:::i;:::-;1272:15736;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;:::i;:::-;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;2718:30;1272:15736;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;3130:2146;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;2692:22;1272:15736;:::i;:::-;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;2718:30;2959:28;1272:15736;;2959:28;1272:15736;;;;-1:-1:-1;;;;;3821:22:55;1272:15736;;;2692:22;3821;:::i;:::-;1272:15736;;;3802:18;1272:15736;;8399:50:13;1272:15736:55;;;3849:10;8399:50:13;;:::i;:::-;;-1:-1:-1;;;;;3908:22:55;1272:15736;;;2692:22;3908;:::i;:::-;1272:15736;-1:-1:-1;;;;;1272:15736:55;2718:30;1272:15736;;;2718:30;1272:15736;;;;;;3987:16;1272:15736;;3978:73;;;;;;1272:15736;;;;;;;;;;;;;;;;3978:73;;1272:15736;;3978:73;;1272:15736;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1272:15736:55;;;;;;;:::i;:::-;3978:73;;;;;;;;;;1272:15736;;;4156:34;;1272:15736;;;;4156:34;:::i;:::-;;:::i;3978:73::-;;;;:::i;:::-;1272:15736;;3978:73;;;;;1272:15736;;;;;;;;;3978:73;1272:15736;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;;;;;;;;;3130:2146;1272:15736;;;;;;;;;-1:-1:-1;;;;;4212:22:55;1272:15736;;;2692:22;4212;:::i;:::-;1272:15736;4212:56;4208:1068;;3130:2146;;1272:15736;;4208:1068;-1:-1:-1;;;;;5035:22:55;1272:15736;;;2692:22;5035;:::i;:::-;1272:15736;;;;;;;;;;;;5001:58;;1272:15736;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;2718:30;1272:15736;;;;;;5001:58;-1:-1:-1;;5001:58:55;;;;;;-1:-1:-1;5001:58:55;;:::i;:::-;1272:15736;4991:69;;5078:36;5074:192;;1272:15736;;5074:192;-1:-1:-1;;;;;5212:22:55;1272:15736;;;2692:22;5212;:::i;:::-;1272:15736;;;5193:18;1272:15736;;8399:50:13;1272:15736:55;;;5240:10;8399:50:13;;:::i;1272:15736:55:-;;;-1:-1:-1;;;;;1272:15736:55;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;2920:132;1272:15736;;-1:-1:-1;;;3010:31:55;;1272:15736;;3010:31;2675:236;1272:15736;;-1:-1:-1;;;2876:24:55;;1272:15736;;2876:24;2692:152;1272:15736;;-1:-1:-1;;;;;2788:22:55;1272:15736;;;2692:22;2788;:::i;:::-;1272:15736;2788:56;;2692:152;;1272:15736;;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;-1:-1:-1;;;;;;;;;;;1272:15736:55;;;582:20:41;578:50;;1272:15736:55;;;6210:11;;6206:65;;1272:15736;6285:14;1272:15736;;;;6281:79;;6391:10;1272:15736;;;;;;;;;;6374:37;6370:93;;6700:6;6391:10;;;1272:15736;;;;;;;;6473:38;1272:15736;;;6473:38;:::i;:::-;1272:15736;;6521:29;1272:15736;6521:19;1272:15736;6521:29;:::i;:::-;:19;1272:15736;6391:10;1272:15736;;;;;;;;;6565:33;6561:99;;1272:15736;6391:10;6700:6;:::i;6561:99::-;6638:10;6391;6638;:::i;:::-;6561:99;;6370:93;1272:15736;;-1:-1:-1;;;6434:18:55;;1272:15736;;6434:18;6281:79;1272:15736;;-1:-1:-1;;;6322:27:55;;1272:15736;;6322:27;6206:65;1272:15736;;-1:-1:-1;;;6244:16:55;;1272:15736;;6244:16;1272:15736;-1:-1:-1;1272:15736:55;;-1:-1:-1;;1272:15736:55;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;477:1:41;-1:-1:-1;;;;;;;;;;;1272:15736:55;582:20:41;578:50;;477:1;-1:-1:-1;;;;;;;;;;;1272:15736:55;4184:61:44;;:::i;:::-;7197:14:55;1272:15736;;;;;;7197:32;;;;;;1272:15736;7193:88;;;7294:9;:14;7290:70;;7394:2;1272:15736;;;;7374:22;;;7370:197;;16316:30;;;:::i;:::-;1272:15736;;;;477:1:41;1272:15736:55;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;:::i;:::-;;;;;;;16373:24;-1:-1:-1;;;;;1272:15736:55;7667:10;7647:30;7643:89;;1272:15736;;7667:10;1272:15736;;;;7399:21:42;1272:15736:55;;;;;7399:21:42;;7667:10:55;7399:21:42;:41;1272:15736:55;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;;;;;;8110:9;7294;7667:10;8110:9;:::i;:::-;4769:35:42;1272:15736:55;8239:25;1272:15736;8220:44;;;8216:525;;1272:15736;7742:1149;;;;;1272:15736;-1:-1:-1;;;;;;;;;;;1272:15736:55;;;8216:525;1272:15736;4985:27:42;1272:15736:55;;-1:-1:-1;;;;;8326:15:55;1272:15736;;;;-1:-1:-1;8216:525:55;8284:443;1272:15736;;;7197:14;1272:15736;;;7197:14;1272:15736;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;8413:39;;;;;;;;;;;;8603:37;1272:15736;;;;;8569:16;1272:15736;;;;8603:37;;;:::i;:::-;8560:148;;;;;;1272:15736;;;;;;;;;;;;8560:148;;1272:15736;8560:148;;1272:15736;8560:148;;;;;;;;1272:15736;8284:443;8216:525;;8560:148;;;;:::i;:::-;1272:15736;;8560:148;;;;1272:15736;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;477:1:41;1272:15736:55;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;7742:1149;1272:15736;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;19228:11:42;1272:15736:55;;;;;;;:::i;:::-;661:28:43;1272:15736:55;;;2774:63:43;;1272:15736:55;;;7667:10;1272:15736;2774:63:43;;1272:15736:55;;;;2735:15:43;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;477:1:41;1272:15736:55;;;;:::i;:::-;477:1:41;1272:15736:55;;;:::i;:::-;;;;;;;;;;;661:28:43;1272:15736:55;;-1:-1:-1;;;;;;;;;;;1272:15736:55;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;2774:63:43;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;-1:-1:-1;;;;;2882:23:43;;;:::i;:::-;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;19228:11:42;1272:15736:55;;;19228:11:42;1272:15736:55;;;;;;;661:28:43;1272:15736:55;;7667:10;1272:15736;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:43;;;8870:9:55;7294;7667:10;8870:9;:::i;:::-;7742:1149;;1272:15736;;;;-1:-1:-1;1272:15736:55;;;;;477:1:41;1272:15736:55;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;-1:-1:-1;;;;;;;;;;;1272:15736:55;;477:1:41;1272:15736:55;661:28:43;1272:15736:55;;;;;;;;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;1272:15736:55;;;;;;;;;;;;;;;;;;;7394:2;1272:15736;;;;;;;;;;;;;;;;7643:89;1272:15736;;-1:-1:-1;;;7700:21:55;;1272:15736;;7700:21;7370:197;1272:15736;;-1:-1:-1;;;7532:24:55;;1272:15736;;7532:24;7290:70;1272:15736;;-1:-1:-1;;;7331:18:55;;1272:15736;;7331:18;7193:88;1272:15736;;-1:-1:-1;;;7252:18:55;;1272:15736;;7252:18;7197:32;1272:15736;;;;;;7197:32;;;1272:15736;;;;;;;;;;;;;477:1:41;247:48;-1:-1:-1;;;;;;;;;;;1272:15736:55;;;582:20:41;578:50;;1272:15736:55;;;12730:10;1272:15736;;;;3737:13:42;1272:15736:55;;;;;;;;;;;;;;1856:16:42;;;1852:78;;1272:15736:55;;;;;1974:25:42;;2009:14;;;2098:13;;;;2033:477;477:1:41;;;2033:477:42;1272:15736:55;;;;20199:36:42;1272:15736:55;20199:36:42;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;3786:14:42;3782:76;;2033:477;3897:6;12730:10:55;;3897:6:42;:::i;:::-;1272:15736:55;;;12730:10;1272:15736;;;;;;;;;;;;;;;;;20199:36:42;;;;1272:15736:55;;;3782:76:42;12730:10:55;1272:15736;;;;3737:13:42;1272:15736:55;;;;;12730:10;;1272:15736;3782:76:42;;2033:477;1272:15736:55;;;;;;;2040:10:42;;;;;;;1272:15736:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2283:12:42;-1:-1:-1;2259:76:42;;2349:24;;;;;;;;;;;;;:::i;:::-;1272:15736:55;;;;;;;;;;;;;;;;;;;;;2033:477:42;;;2259:76;2315:5;;;;;;;;2040:10;;;;;;;1852:78;1272:15736:55;;-1:-1:-1;;;1895:24:42;;1272:15736:55;;1895:24:42;1272:15736:55;;;;;;;;;;;;;4184:61:44;;:::i;:::-;1272:15736:55;15815:86:42;1272:15736:55;15815:32:42;1272:15736:55;;;15860:31:42;1272:15736:55;;15815:86:42;;:::i;:::-;1272:15736:55;12417:97;;12524:8;1272:15736;;-1:-1:-1;;1272:15736:55;;;;;12558:16;1272:15736;;;-1:-1:-1;;;;;1272:15736:55;12549:33;;;;;1272:15736;;;;;;;;;;;;12549:33;;;;;;;;;;1272:15736;;;12549:33;;;;:::i;12417:97::-;1272:15736;;-1:-1:-1;;;12477:26:55;;1272:15736;;12477:26;1272:15736;;;;;;;;;;4184:61:44;;:::i;:::-;4237:1;;:::i;1272:15736:55:-;;;;;;;-1:-1:-1;;1272:15736:55;;;;4184:61:44;;:::i;:::-;4237:1;1272:15736:55;;4237:1:44;:::i;1272:15736:55:-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13064:10;;1272:15736;;1317:17:50;1272:15736:55;;;;;;;;1317:33:50;13026:107:55;;1272:15736;;13146:29;13142:81;;13064:10;1272:15736;;13232:16;1272:15736;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:13;13064:10:55;8399:50:13;:::i;1272:15736:55:-;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13142:81;1272:15736;;-1:-1:-1;;;13198:14:55;;1272:15736;;13198:14;13026:107;1272:15736;;-1:-1:-1;;;13098:24:55;;13064:10;1272:15736;13098:24;;1272:15736;;;13098:24;1272:15736;;;;;;;;;;;5558:9;:14;5554:68;;1272:15736;;5636:14;1272:15736;;;;5632:79;;5742:10;1272:15736;;;;;;;;;5725:33;5721:101;;1272:15736;5742:10;1272:15736;;;;;;;;5832:41;5558:9;1272:15736;;5832:41;:::i;:::-;1272:15736;;5883:32;5558:9;5883:19;1272:15736;5883:32;:::i;:::-;:19;1272:15736;;;5721:101;1272:15736;;-1:-1:-1;;;1272:15736:55;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;5742:10;1272:15736;;;;;;;;5721:101;;1272:15736;-1:-1:-1;;;1272:15736:55;;;;;;;;5554:68;-1:-1:-1;;;5595:16:55;;1272:15736;;5595:16;1272:15736;-1:-1:-1;;;;;1272:15736:55;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;:::o;:::-;-1:-1:-1;;;;;1272:15736:55;;;;;;-1:-1:-1;;1272:15736:55;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1272:15736:55;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;:::o;:::-;;-1:-1:-1;;;;;1272:15736:55;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;-1:-1:-1;;1272:15736:55;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1272:15736:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;-1:-1:-1;1272:15736:55;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;-1:-1:-1;1272:15736:55;:::o;2215:404:13:-;-1:-1:-1;1272:15736:55;;;4352:12:13;1272:15736:55;;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;;;4352:12:13;1272:15736:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:13;1272:15736:55;;;;4352:12:13;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;4352:24:13;2294:319;1272:15736:55;;;;;;-1:-1:-1;;;1272:15736:55;;;;;4352:12:13;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:13;2548:11;:::o;1272:15736:55:-;-1:-1:-1;;;1272:15736:55;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;2294:319:13;-1:-1:-1;2590:12:13;-1:-1:-1;;2590:12:13:o;1272:15736:55:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1272:15736:55;;;;-1:-1:-1;1272:15736:55;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1272:15736:55;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20907:1621:42:-;21089:11;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;;;;;;;;21115:56:42;;1272:15736:55;;;;-1:-1:-1;;;21194:28:42;;;;;21111:221;1272:15736:55;;;;;21243:56:42;;21239:93;;1272:15736:55;;;;;;21424:24:42;1272:15736:55;;;;21424:24:42;;;;22433:23;;;1272:15736:55;22433:23:42;;22472:49;22433:23;;:::i;:::-;-1:-1:-1;;;21089:11:42;1272:15736:55;;;;;;-1:-1:-1;;;1272:15736:55;;;21089:11:42;1272:15736:55;;;;;22472:49:42;20907:1621::o;21406:16::-;3139:36:43;;-1:-1:-1;;;;;1272:15736:55;;;3139:15:43;1272:15736:55;;;;;;;3139:36:43;21553:16:42;;;;1272:15736:55;;;-1:-1:-1;;;;;1272:15736:55;21553:16:42;;1272:15736:55;;;;21553:16:42;1272:15736:55;;;;;;;;21588:41:42;;;;;21553:16;;-1:-1:-1;;;;;;;1272:15736:55;;;;;;;7399:21:42;1272:15736:55;;;;;;;;21697:14:42;;;21649:45;1272:15736:55;:::i;:::-;3297:36:43;;-1:-1:-1;;;;;1272:15736:55;;;3139:15:43;1272:15736:55;;;;;;;3297:36:43;3704:45:44;;1272:15736:55;;;;;;;;;;;:::i;:::-;;;;;21406:16:42;;21584:694;1272:15736:55;;;;;;;;;;;;;;21778:14:42;;;1272:15736:55;:::i;:::-;;;;:::i;:::-;21767:37:42;1272:15736:55;;;;21767:37:42;;1272:15736:55;;;;21767:37:42;;;;;1272:15736:55;21827:38:42;;21823:441;3139:15:43;;;21931:6:42;;;;;;:::i;:::-;21960:14;1272:15736:55;3226:35:42;;:12;:35;:::i;:::-;1272:15736:55;;;;;;;:::i;:::-;;;;3303:54:42;;;1272:15736:55;;;-1:-1:-1;;;;;1272:15736:55;;;;;;3737:13:42;1272:15736:55;;;;;3303:54:42;;1272:15736:55;;;;;;;;;;;;;;;;;;;1352:22:42;;;;:::i;:::-;1272:15736:55;3704:45:44;;1272:15736:55;;;1385:13:42;;;1272:15736:55;;;;;;;;;;;;1441:10:42;;;:::i;:::-;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;3422:85:42;;;22038:16;1272:15736:55;;22029:47:42;;;;;;1272:15736:55;;;;;;;;;;;;;;;22029:47:42;;;;;1272:15736:55;22029:47:42;;;;;;;;;;;;;;;21823:441;;21584:694;;22029:47;;;;:::i;:::-;;;;;1272:15736:55;;;;;;;;;;21823:441:42;22164:6;;;;;;;;;;:::i;:::-;22202:16;1272:15736:55;;22193:52:42;;;;;;1272:15736:55;;;;;;22193:52:42;;3704:45:44;22193:52:42;3704:45:44;;22193:52:42;;;;;;;;;;;;;;;;;;21823:441;21584:694;;1272:15736:55;;3704:45:44;1272:15736:55;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;8382:408:42:-;;8768:13;8382:408;8649:39;1272:15736:55;;;;;;;;;-1:-1:-1;1272:15736:55;8511:15:42;1272:15736:55;;8511:55:42;1272:15736:55;;-1:-1:-1;1272:15736:55;;8511:55:42;:::i;:::-;1272:15736:55;-1:-1:-1;1272:15736:55;8511:15:42;1272:15736:55;;;;-1:-1:-1;1272:15736:55;;8649:29:42;1272:15736:55;8649:39:42;:::i;:::-;:29;1272:15736:55;8768:13:42;:::i;1272:15736:55:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;8796:623:42:-;;9347:13;9373:39;8796:623;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;8926:15:42;1272:15736:55;;8926:55:42;1272:15736:55;;;;;8926:55:42;:::i;:::-;1272:15736:55;;;8926:15:42;1272:15736:55;;;;;;9017:42:42;;1272:15736:55;;;9074:18:42;;:42;;;;8796:623;-1:-1:-1;9070:199:42;;;1272:15736:55;;;8926:15:42;1272:15736:55;;;;;;;;:::i;:::-;9347:13:42;:::i;:::-;9373:29;1272:15736:55;9373:39:42;:::i;:::-;:29;1272:15736:55;8796:623:42:o;9070:199::-;1272:15736:55;;;;9347:13:42;:::i;9074:42::-;9096:20;;;9074:42;;;9514:2248;;;1272:15736:55;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;1317:17:50;1272:15736:55;;;;;;;;;;;;9630:231:42;;1272:15736:55;22123:14:42;1272:15736:55;;;9634:21:42;1272:15736:55;;-1:-1:-1;10031:267:42;;10888:31;;;:::i;:::-;10933:35;;;;10929:462;;1272:15736:55;;;;1317:17:50;1272:15736:55;;;;;;;;11401:234:42;;11681:11;;;;;11708:47;;11681:11;;;;;:::i;:::-;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;11708:47:42;;;;9514:2248::o;11401:234::-;3223:36:48;;;;;;;;;:::i;:::-;1272:15736:55;;;5270:21:42;1272:15736:55;;;;;;;;3396:3:48;4737:452;1272:15736:55;;;;;4744:7:48;;;;1272:15736:55;;;;;;;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;6878:7:48;5017:43;5013:87;;5145:3;;;;:::i;:::-;4737:452;;5013:87;-1:-1:-1;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;-1:-1:-1;;;;1272:15736:55;;;;;;;5080:5:48;;-1:-1:-1;11543:61:42;;-1:-1:-1;1272:15736:55;;;;11543:61:42;1272:15736:55;4744:7:48;;;;;;;11543:61:42;4744:7:48;;;;;11543:61:42;4744:7:48;;;;10929:462:42;11010:4;;;11312:48;11010:4;;;1317:17:50;11010:4:42;;;;11312:48;11010:4;;;;;:::i;:::-;1272:15736:55;;;;;;11030:140:42;;10929:462;11219:11;;;:::i;:::-;11281:10;;;:::i;:::-;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;11030:140:42;11143:11;;;:::i;:::-;11030:140;;10031:267;10190:11;;;;;10221:46;;10190:11;;;;;:::i;9630:231::-;2960:36:49;;;;;;;;;;;:::i;:::-;1272:15736:55;;;5270:21:42;1272:15736:55;;;;;;;;3133:3:49;5016:7;3133:3;5016:7;:::i;:::-;1272:15736:55;9634:21:42;1272:15736:55;;5107:792:49;;1272:15736:55;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;:::-;5269:187;;:::i;:::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;5695:85;-1:-1:-1;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;-1:-1:-1;;;;1272:15736:55;;;;;;;5760:5:49;;-1:-1:-1;9770:60:42;;-1:-1:-1;1272:15736:55;;-1:-1:-1;1272:15736:55;;;9770:60:42;1272:15736:55;5146:437:49;1272:15736:55;;;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;;;5146:437:49;;5114:16;;;;;;;;;9770:60:42;5114:16:49;;;;;9770:60:42;5114:16:49;;;;11858:2071:42;;1272:15736:55;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;1317:17:50;1272:15736:55;;;;;;;;;;;;11973:431:42;;1272:15736:55;;;1317:17:50;1272:15736:55;;;;;;;;1317:33:50;12438:106:42;;12608:18;;12604:523;;3361:36:49;;;:::i;:::-;1272:15736:55;;;5270:21:42;1272:15736:55;;;;;;;3534:3:49;4411:462;1272:15736:55;;;;;4418:7:49;;;;1272:15736:55;;;;;;;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;6540:7:49;4702:42;4698:86;;4829:3;;;;:::i;:::-;4411:462;;4698:86;4764:5;;;;;;;;;;;;4411:462;11977:22:42;1272:15736:55;;13208:37:42;13204:74;;13342:31;;:::i;:::-;13439:32;;;:::i;:::-;13485:42;;;13481:368;;-1:-1:-1;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;13864:58:42;;1272:15736:55;;;;13864:58:42;1272:15736:55;13481:368:42;13569:4;;;;13766:52;;13569:4;;;:::i;:::-;13615;;:::i;13204:74::-;13261:7;;;:::o;4418::49:-;;;;;;;;;;;;;;;12604:523:42;12686:9;;;;;;;12715:30;12686:9;;;;;:::i;:::-;1272:15736:55;;;;;12715:30:42;11977:22;1272:15736:55;;12760:336:42;;13110:7;:::o;12760:336::-;13037:44;;12866:32;;;:::i;:::-;12943:4;;;;;:::i;:::-;13001:12;;;:::i;12438:106::-;1272:15736:55;;-1:-1:-1;;;12507:26:42;;1317:17:50;;12507:26:42;11973:431;12039:18;;;;;;;;;;12035:190;;3687:36:48;1272:15736:55;3687:36:48;;;;;;:::i;:::-;1272:15736:55;;;5270:21:42;1272:15736:55;;;;;;;;3860:3:48;;1272:15736:55;;;;;;;;;11977:22:42;1272:15736:55;;5446:792:48;1272:15736:55;;;5446:792:48;-1:-1:-1;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;-1:-1:-1;;;;1272:15736:55;;;;;;;-1:-1:-1;1272:15736:55;;-1:-1:-1;12314:59:42;;-1:-1:-1;1272:15736:55;-1:-1:-1;1272:15736:55;;;;12314:59:42;1272:15736:55;5446:792:48;1272:15736:55;;;5453:16:48;;;;;5489:15;;-1:-1:-1;;;5489:15:48;;;5763:12;;;;5608:186;5763:12;;:::i;:::-;5608:186;;:::i;:::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;6033:86;6099:5;;5485:436;1272:15736:55;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;;5485:436:48;;5453:16;;;;12035:190:42;12122:9;;;;;;;;12155:31;12122:9;;;:::i;:::-;1272:15736:55;;;;12155:31:42;12204:7::o;998:459:48:-;1429:19;998:459;1272:15736:55;;1119:19:48;1272:15736:55;11034:22:42;1272:15736:55;;1119:19:48;:::i;:::-;1272:15736:55;;;;;;;-1:-1:-1;1272:15736:55;;;;1149:23:48;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;1200:23:48;1272:15736:55;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;11034:22:42;1272:15736:55;;;11034:22:42;1272:15736:55;;;5270:21:42;1272:15736:55;;;;1429:19:48;;:::i;1272:15736:55:-;;;;;-1:-1:-1;;1272:15736:55;;;;;;;:::o;1587:415:48:-;1272:15736:55;;11977:22:42;1272:15736:55;;1044:14:50;;1040:61;;1272:15736:55;2137:25:50;2144:17;;;;2137:25;:::i;:::-;1272:15736:55;;;;2224:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;2307:17:50;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;2224:17:50;;1272:15736:55;;;;;1841:4:48;;1808:8;;1272:15736:55;1808:8:48;:::i;:::-;1272:15736:55;;11977:22:42;1272:15736:55;;;11977:22:42;1272:15736:55;1841:4:48;:::i;:::-;1272:15736:55;;;;;;;;;;;;;;5270:21:42;1272:15736:55;;;;;;;;5201:1043:48;;;5314:26;1966:17:50;1272:15736:55;11977:22:42;1272:15736:55;;5446:792:48;1272:15736:55;;;5446:792:48;1587:415;;;;;;;;;;;;:::o;5446:792::-;1272:15736:55;;;5453:16:48;;;;;5489:15;;;;;;5763:12;;;5608:186;5763:12;;:::i;5608:186::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;6033:86;6099:5;;5485:436;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;5485:436:48;;5453:16;;;;1040:61:50;1272:15736:55;;-1:-1:-1;;;1081:9:50;;;;;2137:807:48;2266:36;2137:807;2266:36;:::i;:::-;1272:15736:55;;11034:22:42;1272:15736:55;;2377:4:48;;;;;:::i;:::-;2438:8;;;;:::i;:::-;1272:15736:55;;;11034:22:42;1272:15736:55;;;11034:22:42;1272:15736:55;2471:4:48;;;:::i;:::-;1272:15736:55;;;2491:11:48;;;2487:48;;-1:-1:-1;;1272:15736:55;-1:-1:-1;;1272:15736:55;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;;;5270:21:42;1272:15736:55;;;;2736:3:48;1272:15736:55;;;;2736:3:48;;:::i;:::-;1272:15736:55;;;;;;;;;;;;;;;;;;;;2932:3:48;;1272:15736:55;;;;;;;;;11034:22:42;1272:15736:55;;5446:792:48;1272:15736:55;;;2137:807:48;;;;;;;;;;;;:::o;5446:792::-;1272:15736:55;;;5453:16:48;;;;;5489:15;;;;;;5763:12;;;5608:186;5763:12;;:::i;5608:186::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;5485:436;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;5485:436:48;;4002:309;1272:15736:55;9634:21:42;1272:15736:55;;1044:14:50;1040:61;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;-1:-1:-1;1272:15736:55;;;5270:21:42;1272:15736:55;;;;;;;;4002:309:48:o;:::-;1272:15736:55;11977:22:42;1272:15736:55;;1044:14:50;1040:61;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;-1:-1:-1;1272:15736:55;;;5270:21:42;1272:15736:55;;;;;;;;4002:309:48:o;4563:632::-;;;;4737:452;4750:1;1272:15736:55;;;;4744:7:48;;;;1272:15736:55;;;;;-1:-1:-1;;;1272:15736:55;;;;;1966:17:50;1272:15736:55;;5270:21:42;1272:15736:55;;;;;;;;;;;;;;;;;6878:7:48;5017:43;5013:87;;5145:3;;;;:::i;:::-;4737:452;;5013:87;5080:5;;;;4563:632::o;1272:15736:55:-;;;;;;;;;;;;;;:::o;6305:470:48:-;;;;1272:15736:55;-1:-1:-1;1272:15736:55;-1:-1:-1;1272:15736:55;;;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;5270:21:42;1272:15736:55;;;;;;;;;;;1966:17:50;1272:15736:55;;;;;;;;;5270:21:42;1272:15736:55;;;;6878:7:48;;;;6653:85;;6747:21;;;6305:470;:::o;6653:85::-;6706:21;-1:-1:-1;6706:21:48;;-1:-1:-1;6706:21:48:o;924:459:49:-;1355:19;924:459;1272:15736:55;;1045:19:49;1272:15736:55;9634:21:42;1272:15736:55;;1045:19:49;:::i;:::-;1272:15736:55;;;;;;;-1:-1:-1;1272:15736:55;;;;1075:23:49;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;1126:23:49;1272:15736:55;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;9634:21:42;1272:15736:55;;;9634:21:42;1272:15736:55;;;5270:21:42;1272:15736:55;;;;1355:19:49;;:::i;1450:415::-;1272:15736:55;;9634:21:42;1272:15736:55;;1044:14:50;;1040:61;;1272:15736:55;2137:25:50;2144:17;;;;2137:25;:::i;:::-;1272:15736:55;;;;2224:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;2307:17:50;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;2224:17:50;;1272:15736:55;;;;;1704:4:49;;1671:8;;1272:15736:55;1671:8:49;:::i;:::-;1272:15736:55;;9634:21:42;1272:15736:55;;;9634:21:42;1272:15736:55;1704:4:49;:::i;:::-;1272:15736:55;;;;;;;;;;;;;;5270:21:42;1272:15736:55;;;;;;;;4885:1020:49;;;4998:25;1966:17:50;1272:15736:55;9634:21:42;1272:15736:55;;5107:792:49;1272:15736:55;;;1450:415:49;;;;;;;;;;;;:::o;5107:792::-;1272:15736:55;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;5269:187::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;;5146:437;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;5146:437:49;;1937:807;2066:36;1937:807;2066:36;:::i;:::-;1272:15736:55;;;;12443:21:42;1272:15736:55;;2177:4:49;;;;;:::i;:::-;2238:8;;;;:::i;:::-;1272:15736:55;;;12443:21:42;1272:15736:55;;;12443:21:42;1272:15736:55;2271:4:49;;;:::i;:::-;1272:15736:55;;;2291:11:49;;;2287:48;;-1:-1:-1;1272:15736:55;;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;5270:21:42;1272:15736:55;;;;2536:3:49;1272:15736:55;;;;2536:3:49;;:::i;:::-;1272:15736:55;;;;;;;;;;;;;;;;;;;;2732:3:49;5016:7;2732:3;5016:7;:::i;:::-;1272:15736:55;12443:21:42;1272:15736:55;;5107:792:49;;1272:15736:55;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;5269:187::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;5695:85;5760:5;;;;;;;;;;;;1937:807::o;5146:437::-;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;5146:437:49;;5114:16;;;;;;;;;;;;;;1937:807::o;2287:48::-;2318:7;;;;:::o;4237:642::-;;;;4411:462;4424:1;1272:15736:55;;;;4418:7:49;;;;1272:15736:55;;;;;-1:-1:-1;;;1272:15736:55;;;;;1966:17:50;1272:15736:55;;5270:21:42;1272:15736:55;;;;;;;;;;;;;;;;;6540:7:49;4702:42;4698:86;;4829:3;;;;:::i;:::-;4411:462;;5967:471;;;1272:15736:55;;-1:-1:-1;1272:15736:55;;;;;1966:17:50;1272:15736:55;;;;;;;;;;;;;;;5270:21:42;1272:15736:55;;;;;;;;;;;1966:17:50;1272:15736:55;;;;;;;;;5270:21:42;1272:15736:55;;;;6540:7:49;;;;6320:33;6316:85;;6410:21;;;5967:471;:::o;1363:226:50:-;-1:-1:-1;;;;;1272:15736:55;-1:-1:-1;1272:15736:55;;;1474:17:50;1272:15736:55;;;;;;;;;1516:8:50;;1512:71;;1363:226::o;1512:71::-;1272:15736:55;;-1:-1:-1;;;1547:25:50;;;;;1363:226;-1:-1:-1;;;;;1272:15736:55;-1:-1:-1;1272:15736:55;;;1474:17:50;1272:15736:55;;;;;;;;;1516:8:50;;1512:71;;1363:226::o;1595:184::-;1272:15736:55;;-1:-1:-1;1272:15736:55;;;1671:17:50;1272:15736:55;;;;;;;;;;-1:-1:-1;;;;;;1272:15736:55;;;;;-1:-1:-1;;;;;1272:15736:55;;;1749:17:50;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;1595:184:50:o;:::-;1272:15736:55;;-1:-1:-1;1272:15736:55;;;1671:17:50;1272:15736:55;;;;;;;;;;-1:-1:-1;;;;;;1272:15736:55;;;;;-1:-1:-1;;;;;1272:15736:55;;;1749:17:50;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;1595:184:50:o;1272:15736:55:-;;;;:::o;:::-;;;;;;;;;;;;2057:412:50;2172:25;1272:15736:55;;;9634:21:42;1272:15736:55;;;;2144:17:50;2137:25;2144:17;;;;2137:25;:::i;:::-;1272:15736:55;2179:17:50;;;;2172:25;:::i;:::-;-1:-1:-1;1272:15736:55;;;2224:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;2307:17:50;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;2057:412:50:o;:::-;2172:25;1272:15736:55;;;11405:22:42;1272:15736:55;;;;2144:17:50;2137:25;2144:17;;;;2137:25;:::i;2172:::-;-1:-1:-1;1272:15736:55;;;2224:17:50;1272:15736:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;2307:17:50;1272:15736:55;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;2057:412:50:o;1530:331:6:-;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;1272:15736:55;1749:33:6;;1272:15736:55;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:6;1272:15736:55;;;;;;1796:8:6;1792:63;;1530:331::o;1792:63::-;1272:15736:55;;-1:-1:-1;;;1827:17:6;;;;;1272:15736:55;;;1611:109:6;1272:15736:55;;-1:-1:-1;;;1668:41:6;;1623:4;1668:41;;;1272:15736:55;;;1668:41:6;1272:15736:55;17506:19:42;1272:15736:55;;;;;;;;17506:19:42;-1:-1:-1;1272:15736:55;;;;;-1:-1:-1;1272:15736:55;:::o;16914:1335:42:-;;17295:6;16914:1335;17172:6;;;;:::i;:::-;17295;;:::i;:::-;1272:15736:55;17318:14:42;1272:15736:55;;;;17317:15:42;17313:930;;16914:1335;:::o;17313:930::-;17506:19;1272:15736:55;;3704:45:44;17506:19:42;3704:45:44;17562:10:42;;;;;;17546:270;17833:17;;;17829:404;;17313:930;;16914:1335;:::o;17829:404::-;-1:-1:-1;;;;;1272:15736:55;;;;;;7399:21:42;1272:15736:55;;;;;;;;;;;17891:25:42;18107:45;1272:15736:55;;;;;;:::i;:::-;;;17988:183:42;;1272:15736:55;17988:183:42;;;1272:15736:55;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;17988:183:42;;1272:15736:55;;;-1:-1:-1;;;1272:15736:55;;;;;;;;;;;;;:::i;:::-;;;;;;17891:25:42;1272:15736:55;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;3704:45:44;1272:15736:55;;;;;;;;;;;;;;;;;;;13261:7:42:o;1272:15736:55:-;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;;;3704:45:44;1272:15736:55;;3704:45:44;1272:15736:55;;3704:45:44;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;3704:45:44;1272:15736:55;3704:45:44;1272:15736:55;;;3704:45:44;1272:15736:55;17551:9:42;17598:22;;;;:::i;:::-;-1:-1:-1;17598:27:42;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;;;;;17598:40:42;17594:137;;1272:15736:55;17551:9:42;;;;17594:137;17662:23;;;17707:5;;;;7765:175;1272:15736:55;;;;;;-1:-1:-1;1272:15736:55;7875:21:42;1272:15736:55;;7875:58:42;1272:15736:55;;-1:-1:-1;1272:15736:55;7875:48:42;1272:15736:55;;;7875:58:42;:::i;:::-;1272:15736:55;;7765:175:42:o;19328:256::-;;;1272:15736:55;;;;1953:18:43;;;;;1272:15736:55;1953:18:43;;;;;;:::i;:::-;-1:-1:-1;;;;;1272:15736:55;19475:11:42;1272:15736:55;;;;;;;;;:::i;:::-;-1:-1:-1;1272:15736:55;;;;2774:63:43;;;1272:15736:55;;;;2774:63:43;;;1272:15736:55;;;;;;;;;;;;;;;;;2735:15:43;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;2882:23:43;;;:::i;:::-;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;19475:11:42;1272:15736:55;;;19475:11:42;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1272:15736:55;19570:6:42;1272:15736:55;;;;;;;;;;;;;;;;;2187:195:43;;;;19570:6:42;:::i;1272:15736:55:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;-1:-1:-1;1272:15736:55;;;;;;;;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;3989:118:44;1272:15736:55;4038:8:44;1272:15736:55;;;;4034:67:44;;3989:118::o;4034:67::-;1272:15736:55;;-1:-1:-1;;;4069:21:44;;;;;8972:627:55;9170:14;1272:15736;;;;;;9166:70;;9249:9;:14;9245:70;;9351:10;1272:15736;;;;7399:21:42;1272:15736:55;;;;;15306:52:42;;1272:15736:55;15306:57:42;9325:88:55;;1272:15736;;;;9427:15;9423:118;;9582:9;9249;9351:10;9582:9;:::i;9423:118::-;9500:9;9249;9351:10;9500:9;:::i;9325:88::-;1272:15736;;-1:-1:-1;;;9385:17:55;;;;;9765:784;9971:14;1272:15736;;;;;;9967:70;;10050:11;;10046:68;;10181:10;1272:15736;;;;7399:21:42;1272:15736:55;;;;;16380:52:42;;1272:15736:55;10207:15;;10203:77;;10293:20;-1:-1:-1;10293:20:55;10289:79;;1272:15736;;;;10381:15;10377:116;;10535:6;10181:10;;10535:6;:::i;10377:116::-;10181:10;18699:6:42;18929;10181:10:55;;18699:6:42;:::i;:::-;18823;10181:10:55;;18823:6:42;:::i;10289:79:55:-;1272:15736;;-1:-1:-1;;;10336:21:55;;;;;10046:68;1272:15736;;-1:-1:-1;;;10084:19:55;;;;;8012:364:42;-1:-1:-1;;;;;1272:15736:55;-1:-1:-1;1272:15736:55;;;8139:21:42;1272:15736:55;;;;;;8139:48:42;1272:15736:55;;;8201:14:42;;;8197:81;;8288:15;;;:::i;:::-;1272:15736:55;-1:-1:-1;1272:15736:55;8139:21:42;1272:15736:55;;;;-1:-1:-1;1272:15736:55;8313:48:42;1272:15736:55;8012:364:42:o;8197:81::-;1272:15736:55;;-1:-1:-1;;;8238:29:42;;;;;19630:259;;;1272:15736:55;;1310:18:43;;;;;1272:15736:55;1310:18:43;;;;;;:::i;:::-;-1:-1:-1;;;;;1272:15736:55;19778:11:42;1272:15736:55;;;;;;;;;:::i;:::-;1463:25:43;1272:15736:55;;1310:18:43;2774:63;;1272:15736:55;;;;;;;;;;;;;;2774:63:43;;1272:15736:55;-1:-1:-1;1272:15736:55;;;;2735:15:43;1310:18;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:25:43;1272:15736:55;;;;;;;;;;:::i;:::-;1310:18:43;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;1463:25:43;1272:15736:55;;;;;;;;;;;;;;;2774:63:43;;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;2882:23:43;;;:::i;:::-;1272:15736:55;-1:-1:-1;;;;;1272:15736:55;19778:11:42;1272:15736:55;;;19778:11:42;1272:15736:55;;;;1463:25:43;1272:15736:55;;;;1310:18:43;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;19875:6:42;1272:15736:55;;;;;;;-1:-1:-1;;;;;;;;;;;1272:15736:55;;;;;;;;;;;;;;;;;;;;1545:196:43;;;;19875:6:42;:::i;1272:15736:55:-;;1310:18:43;1272:15736:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;;;1310:18:43;1272:15736:55;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;;;1463:25:43;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1463:25:43;1272:15736:55;;;;1310:18:43;1272:15736:55;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;10729:1523;11119:14;1272:15736;;;;;;11119:32;;;;10729:1523;11115:88;;;11324:10;1272:15736;;;;7399:21:42;1272:15736:55;;;;;16380:52:42;;1272:15736:55;11349:11;;11345:73;;8720:53:13;11324:10:55;8720:53:13;:::i;:::-;;-1:-1:-1;11324:10:55;;1272:15736;;11532:16;1272:15736;;;;;;;;;;:::i;:::-;;;;10729:1523;1272:15736;;;;11119:14;1272:15736;;;;11575:15;11571:626;;12238:6;11324:10;;;12238:6;:::i;11571:626::-;1272:15736;18929:6:42;11324:10:55;;1272:15736;;11728:16;1272:15736;;;;11774:19;11770:262;;11571:626;11324:10;18699:6:42;11324:10:55;;18699:6:42;:::i;11770:262:55:-;1272:15736;11864:37;12002:14;1272:15736;16380:25:42;1272:15736:55;11864:37;:::i;:::-;16380:25:42;1272:15736:55;11943:10;11324;11943;:::i;12002:14::-;11770:262;;;1272:15736;;11479:17;1272:15736;;;11479:17;;;1272:15736;;;;;;;;;;;;;;;;11479:17;1272:15736;;;;;;;;;16380:52:42;1272:15736:55;;;:::i;:::-;;;;;11119:32;1272:15736;;;;;;11119:32;;;2787:1388:13;-1:-1:-1;1272:15736:55;;;2990:12:13;1272:15736:55;;;;;;;-1:-1:-1;;2990:12:13;;3024:15;;;;-1:-1:-1;;1272:15736:55;;;;;;;;;11479:17;1272:15736;;;;;;;;;;3506:26:13;;;3502:398;;3020:1149;1272:15736:55;;;11479:17;1272:15736;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11479:17;1272:15736;;;;;;;;;2990:12:13;4104:11;:::o;1272:15736:55:-;-1:-1:-1;;;1272:15736:55;;;;;;;;3502:398:13;1272:15736:55;3572:22:13;3694:26;3572:22;;:::i;:::-;1272:15736:55;;;;;;3694:26:13;;;;:::i;1272:15736:55:-;;;;;;;;;;;;3502:398:13;;;;;1272:15736:55;-1:-1:-1;;;1272:15736:55;;;;;;;;;-1:-1:-1;;;1272:15736:55;;;;;;;;3020:1149:13;4146:12;;;;:::o;1272:15736:55:-;;;;;;;;;;;;;;;:::o;13759:902::-;13869:11;;13865:48;;-1:-1:-1;;;;;1272:15736:55;;;13955:21;1272:15736;;;;;;;;;;;13879:1;1272:15736;;;;;;14014:18;1272:15736;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14121:19;;;14117:56;;14186:23;;;14182:238;;1272:15736;;;14492:9;;14503:18;;;;;;13759:902;;;;;;;:::o;14492:9::-;1272:15736;;-1:-1:-1;;;;;14556:11:55;1272:15736;14556:11;;:::i;:::-;1272:15736;;;;14539:16;1272:15736;;;;;14539:46;1272:15736;;;14539:46;:::i;:::-;1272:15736;;;14492:9;;14182:238;14403:7;;;;;;:::o;1272:15736::-;;;;;;;;;;;;-1:-1:-1;1272:15736:55;;;;;;15231:888;;1272:15736;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1272:15736:55;;;:::i;:::-;;;;;;;;;;-1:-1:-1;6725:8:42;;;;;;15625:36:55;;-1:-1:-1;1272:15736:55;;;5969:27:42;1272:15736:55;;;6021:12:42;;;;6016:250;1272:15736:55;;;6016:250:42;1272:15736:55;;;;;;15712:20;1272:15736;;;;;;;;;;;;;;;;;;;15736:3;15798:229;1272:15736;;15798:229;;:::i;:::-;16042:6;;16038:75;;15231:888;;:::o;16038:75::-;1272:15736;;;;;;;;;;16071:31;;;;;;1272:15736;16071:31;;;1272:15736;16071:31;1272:15736;;;;-1:-1:-1;1272:15736:55;;;;;-1:-1:-1;1272:15736:55;6021:12:42;1272:15736:55;;;;;;;;;6035:9:42;;;;;-1:-1:-1;1272:15736:55;;;598:23:49;1272:15736:55;;;;;;-1:-1:-1;;;;;1272:15736:55;;;7399:21:42;1272:15736:55;;;;;;;;;;;;;6137:59:42;;1272:15736:55;6137:59:42;;:::i;:::-;1272:15736:55;;;6021:12:42;;;;6035:9;;;;;;6714;-1:-1:-1;;;;;1272:15736:55;6786:12:42;;;;:::i;:::-;1272:15736:55;;-1:-1:-1;1272:15736:55;1317:17:50;1272:15736:55;;;;-1:-1:-1;1272:15736:55;;;1317:33:50;6751:116:42;;6925:12;6903:35;1272:15736:55;6925:12:42;;;;;:::i;:::-;1272:15736:55;;-1:-1:-1;;;;;1272:15736:55;;;;;7399:21:42;1272:15736:55;;;;;;;6903:35:42;1272:15736:55;6880:78:42;;;;:::i;:::-;1272:15736:55;;6714:9:42;;6751:116;6839:12;;;1272:15736:55;6839:12:42;;;:::i;:::-;1272:15736:55;;;-1:-1:-1;;;6826:26:42;;1272:15736:55;;6826:26:42;;;1272:15736:55;6826:26:42;1271:1329:40;1272:15736:55;;1271:1329:40;;1272:15736:55;;;1628:21:40;;1624:90;;1272:15736:55;;1728:38:40;;;;:76;;;1271:1329;1724:148;;1887:9;;;;;1882:568;1898:20;;;;;;2463:19;;;;;;;;2459:75;;1272:15736:55;2543:50:40;2559:33;1271:1329;:::o;2459:75::-;1272:15736:55;2498:25:40;1272:15736:55;2498:25:40;:::o;1887:9::-;2063:13;;;;;;1989:102;2063:13;;;;:::i;:::-;;1989:102;;:::i;:::-;1272:15736:55;;;;;;;;;;2105:116:40;;-1:-1:-1;;;;;1272:15736:55;2251:14:40;;;;:::i;:::-;1272:15736:55;;;;2238:27:40;2234:105;;2370:10;2361:19;1272:15736:55;2370:10:40;;;;;:::i;:::-;1272:15736:55;2361:19:40;;:::i;:::-;1272:15736:55;;1887:9:40;;;;;;;2234:105;2285:39;;;;;;;;;;1272:15736:55;2285:39:40;;:::o;2105:116::-;2167:39;;;;;;;;;;1272:15736:55;2167:39:40;2183:22;2167:39;:::o;1272:15736:55:-;;;;;;;;;;;;1724:148:40;1820:41;;;;;;;;1272:15736:55;1820:41:40;:::o;1728:76::-;1272:15736:55;;;1770:34:40;;;1728:76;;1624:90;1665:38;;;;;;;;1681:21;1665:38;:::o;2483:766:9:-;1272:15736:55;;;2483:766:9;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:9;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1272:15736:55;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:9;;;;;;;;;;;;;;-1:-1:-1;;;;;1272:15736:55;;6946:20:9;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1272:15736:55;;;;;;;;;;6633:164:9;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;16525:481:55:-;16608:20;1272:15736;;;16650:9;16608:1;16661:10;;;;;;16525:481;;;;:::o;16650:9::-;16693:23;;;:::i;:::-;1272:15736;;;;-1:-1:-1;;;;;1272:15736:55;;;;;;;;;;16693:31;16689:242;;1272:15736;;;;16650:9;;16689:242;1272:15736;;;;;;;;;;;;;;;;16770:32;16744:23;16770:32;;16744:58;16770:32;;:::i;:::-;1272:15736;;;;;;;16744:23;;:::i;:::-;:58;1272:15736;;;;;;;;;;;;;;;;;;;;;;;;;;16744:58;1272:15736;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16911:5;;;;;;1272:15736;;;;;;16608:1;1272:15736;;;16608:1;1272:15736;;;;;;;16608:1;1272:15736;;;16608:1;1272:15736","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":316,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint64,uint256)":"f9002bb1","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","stake()":"3a4b66f1","submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":"a8284de3","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointMessagesHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStakedBefore\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"height\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"distributeRewardToRelayers(uint64,uint256)\":{\"details\":\"The reward includes the fixed relayer reward and accumulated cross-message fees received from the gateway.\",\"params\":{\"height\":\"height of the checkpoint the relayers are rewarded for\",\"reward\":\"The sum of cross-message fees in the checkpoint\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"leave()\":{\"details\":\"it also return the validators initial balance if the subnet was not yet bootstrapped.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\"},\"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint\",\"messages\":\"The list of executed cross-messages\",\"signatories\":\"The addresses of the signatories\",\"signatures\":\"The collected checkpoint signatures\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"add a bootstrap node\"},\"claim()\":{\"notice\":\"Validator claims their released collateral\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward\"},\"distributeRewardToRelayers(uint64,uint256)\":{\"notice\":\"reward the relayers for of the previous checkpoint after processing the one at height `height`.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left. It is not a privileged operation.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake\"},\"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])\":{\"notice\":\"submit a checkpoint for execution.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x5d8db3a26a3cb3dfbb61fa5bce7dbaaac4aed0a25cdefdc32453534a5882b39c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f6d26bd882d8fd63c96c78cd028f14453da46fe9955486e53d6c9242e08f0759\",\"dweb:/ipfs/QmWmVEVCZtARF9XndnszZ7Lw8fWz2xroxmjFxufSSbfB2w\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xfd9e0a2943ae6c7a8e102e6e98d73b9397dee93366548d0f0a30712f5d834d19\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1ab497074b6d27cf31091535a3f07fccc219f021cf4a67e773ac7fa7cb68493e\",\"dweb:/ipfs/QmdMDKETq23qTmTeCEeVJ9awFXNxigk2cAYhaaPcckTAce\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointMessagesHash"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[],"type":"error","name":"NotStakedBefore"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint64","name":"epoch","type":"uint64","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"epoch","type":"uint64","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"distributeRewardToRelayers(uint64,uint256)":{"details":"The reward includes the fixed relayer reward and accumulated cross-message fees received from the gateway.","params":{"height":"height of the checkpoint the relayers are rewarded for","reward":"The sum of cross-message fees in the checkpoint"}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"leave()":{"details":"it also return the validators initial balance if the subnet was not yet bootstrapped."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps."},"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint","messages":"The list of executed cross-messages","signatories":"The addresses of the signatories","signatures":"The collected checkpoint signatures"}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"add a bootstrap node"},"claim()":{"notice":"Validator claims their released collateral"},"claimRewardForRelayer()":{"notice":"Relayer claims its reward"},"distributeRewardToRelayers(uint64,uint256)":{"notice":"reward the relayers for of the previous checkpoint after processing the one at height `height`."},"join(bytes)":{"notice":"method that allows a validator to join the subnet"},"kill()":{"notice":"method that allows to kill the subnet when all validators left. It is not a privileged operation."},"leave()":{"notice":"method that allows a validator to leave the subnet"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"stake()":{"notice":"method that allows a validator to increase its stake"},"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":{"notice":"submit a checkpoint for execution."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet"},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorManagerFacet.sol":"SubnetActorManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x5d8db3a26a3cb3dfbb61fa5bce7dbaaac4aed0a25cdefdc32453534a5882b39c","urls":["bzz-raw://f6d26bd882d8fd63c96c78cd028f14453da46fe9955486e53d6c9242e08f0759","dweb:/ipfs/QmWmVEVCZtARF9XndnszZ7Lw8fWz2xroxmjFxufSSbfB2w"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xfd9e0a2943ae6c7a8e102e6e98d73b9397dee93366548d0f0a30712f5d834d19","urls":["bzz-raw://1ab497074b6d27cf31091535a3f07fccc219f021cf4a67e773ac7fa7cb68493e","dweb:/ipfs/QmdMDKETq23qTmTeCEeVJ9awFXNxigk2cAYhaaPcckTAce"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","id":17952,"exportedSymbols":{"Address":[1625],"BottomUpCheckpoint":[16133],"CannotReleaseZero":[6057],"CollateralIsZero":[6069],"CrossMsg":[16155],"CrossMsgHelper":[9299],"EmptyAddress":[6071],"EnumerableSet":[4602],"IGateway":[8843],"ISubnetActor":[8919],"InvalidCheckpointEpoch":[6083],"InvalidCheckpointMessagesHash":[6085],"InvalidPublicKeyLength":[6115],"InvalidSignatureErr":[6111],"LibStaking":[13299],"LibValidatorSet":[12589],"MethodNotAllowed":[6197],"MultisignatureChecker":[11381],"NotAllValidatorsHaveLeft":[6127],"NotEnoughBalance":[6135],"NotEnoughBalanceForRewards":[6137],"NotEnoughCollateral":[6139],"NotEnoughFunds":[6143],"NotOwnerOfPublicKey":[6153],"NotStakedBefore":[6157],"NotValidator":[6163],"ReentrancyGuard":[11446],"SubnetActorManagerFacet":[17951],"SubnetActorModifiers":[13893],"SubnetAlreadyBootstrapped":[6187],"SubnetID":[16209],"SubnetIDHelper":[14630],"Validator":[16334],"ValidatorSet":[16313]},"nodeType":"SourceUnit","src":"46:16963:55","nodes":[{"id":16842,"nodeType":"PragmaDirective","src":"46:23:55","nodes":[],"literals":["solidity","0.8",".19"]},{"id":16860,"nodeType":"ImportDirective","src":"71:396:55","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":16843,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6187,"src":"79:25:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16844,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"106:14:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16845,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"122:16:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16846,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"140:17:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16847,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"159:19:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16848,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"180:12:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16849,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"194:16:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16850,"name":"NotEnoughBalanceForRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6137,"src":"212:26:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16851,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6139,"src":"240:19:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16852,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"261:12:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16853,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6127,"src":"275:24:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16854,"name":"NotStakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6157,"src":"301:15:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16855,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6111,"src":"318:19:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16856,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6083,"src":"339:22:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16857,"name":"InvalidCheckpointMessagesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6085,"src":"363:29:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16858,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6115,"src":"394:22:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16859,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"418:16:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16862,"nodeType":"ImportDirective","src":"468:52:55","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":8844,"symbolAliases":[{"foreign":{"id":16861,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"476:8:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16864,"nodeType":"ImportDirective","src":"521:60:55","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":8920,"symbolAliases":[{"foreign":{"id":16863,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"529:12:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16867,"nodeType":"ImportDirective","src":"582:71:55","nodes":[],"absolutePath":"src/structs/Checkpoint.sol","file":"../structs/Checkpoint.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":16173,"symbolAliases":[{"foreign":{"id":16865,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"590:18:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16866,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"610:8:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16871,"nodeType":"ImportDirective","src":"654:72:55","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":16868,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"662:8:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16869,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"672:9:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16870,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"683:12:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16873,"nodeType":"ImportDirective","src":"727:57:55","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":9300,"symbolAliases":[{"foreign":{"id":16872,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"735:14:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16875,"nodeType":"ImportDirective","src":"785:74:55","nodes":[],"absolutePath":"src/lib/LibMultisignatureChecker.sol","file":"../lib/LibMultisignatureChecker.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":11382,"symbolAliases":[{"foreign":{"id":16874,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"793:21:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16877,"nodeType":"ImportDirective","src":"860:62:55","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":11447,"symbolAliases":[{"foreign":{"id":16876,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11446,"src":"868:15:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16879,"nodeType":"ImportDirective","src":"923:70:55","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":13894,"symbolAliases":[{"foreign":{"id":16878,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13893,"src":"931:20:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16881,"nodeType":"ImportDirective","src":"994:57:55","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":14631,"symbolAliases":[{"foreign":{"id":16880,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14630,"src":"1002:14:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16884,"nodeType":"ImportDirective","src":"1052:66:55","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":16882,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"1060:15:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16883,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"1077:10:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16886,"nodeType":"ImportDirective","src":"1119:85:55","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":4603,"symbolAliases":[{"foreign":{"id":16885,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4602,"src":"1127:13:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":16888,"nodeType":"ImportDirective","src":"1205:65:55","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":17952,"sourceUnit":1626,"symbolAliases":[{"foreign":{"id":16887,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"1213:7:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17951,"nodeType":"ContractDefinition","src":"1272:15736:55","nodes":[{"id":16898,"nodeType":"UsingForDirective","src":"1366:49:55","nodes":[],"global":false,"libraryName":{"id":16895,"name":"EnumerableSet","nameLocations":["1372:13:55"],"nodeType":"IdentifierPath","referencedDeclaration":4602,"src":"1372:13:55"},"typeName":{"id":16897,"nodeType":"UserDefinedTypeName","pathNode":{"id":16896,"name":"EnumerableSet.AddressSet","nameLocations":["1390:13:55","1404:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":4315,"src":"1390:24:55"},"referencedDeclaration":4315,"src":"1390:24:55","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":16902,"nodeType":"UsingForDirective","src":"1420:34:55","nodes":[],"global":false,"libraryName":{"id":16899,"name":"SubnetIDHelper","nameLocations":["1426:14:55"],"nodeType":"IdentifierPath","referencedDeclaration":14630,"src":"1426:14:55"},"typeName":{"id":16901,"nodeType":"UserDefinedTypeName","pathNode":{"id":16900,"name":"SubnetID","nameLocations":["1445:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1445:8:55"},"referencedDeclaration":16209,"src":"1445:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}}},{"id":16906,"nodeType":"UsingForDirective","src":"1459:39:55","nodes":[],"global":false,"libraryName":{"id":16903,"name":"LibValidatorSet","nameLocations":["1465:15:55"],"nodeType":"IdentifierPath","referencedDeclaration":12589,"src":"1465:15:55"},"typeName":{"id":16905,"nodeType":"UserDefinedTypeName","pathNode":{"id":16904,"name":"ValidatorSet","nameLocations":["1485:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":16313,"src":"1485:12:55"},"referencedDeclaration":16313,"src":"1485:12:55","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":16909,"nodeType":"UsingForDirective","src":"1503:34:55","nodes":[],"global":false,"libraryName":{"id":16907,"name":"Address","nameLocations":["1509:7:55"],"nodeType":"IdentifierPath","referencedDeclaration":1625,"src":"1509:7:55"},"typeName":{"id":16908,"name":"address","nodeType":"ElementaryTypeName","src":"1521:15:55","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":16916,"nodeType":"EventDefinition","src":"1543:84:55","nodes":[],"anonymous":false,"eventSelector":"04ef282b55bf4e643849925ee4db37b4d15ca9e37ce47dc4a29293ca865910a0","name":"BottomUpCheckpointSubmitted","nameLocation":"1549:27:55","parameters":{"id":16915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16912,"indexed":false,"mutability":"mutable","name":"checkpoint","nameLocation":"1596:10:55","nodeType":"VariableDeclaration","scope":16916,"src":"1577:29:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":16911,"nodeType":"UserDefinedTypeName","pathNode":{"id":16910,"name":"BottomUpCheckpoint","nameLocations":["1577:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"1577:18:55"},"referencedDeclaration":16133,"src":"1577:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":16914,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"1616:9:55","nodeType":"VariableDeclaration","scope":16916,"src":"1608:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16913,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1576:50:55"}},{"id":16922,"nodeType":"EventDefinition","src":"1632:66:55","nodes":[],"anonymous":false,"eventSelector":"5cf151c490c83c7aa06bb5a97f88f3f0ba06141da6e6150f08248038754d4895","name":"BottomUpCheckpointExecuted","nameLocation":"1638:26:55","parameters":{"id":16921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16918,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"1672:5:55","nodeType":"VariableDeclaration","scope":16922,"src":"1665:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16917,"name":"uint64","nodeType":"ElementaryTypeName","src":"1665:6:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16920,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"1687:9:55","nodeType":"VariableDeclaration","scope":16922,"src":"1679:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16919,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1664:33:55"}},{"id":16928,"nodeType":"EventDefinition","src":"1703:70:55","nodes":[],"anonymous":false,"eventSelector":"2c34f92ea9e491558620aa766740aebac4585ceeec1a1ef2850407d43b01bf9c","name":"NextBottomUpCheckpointExecuted","nameLocation":"1709:30:55","parameters":{"id":16927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16924,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"1747:5:55","nodeType":"VariableDeclaration","scope":16928,"src":"1740:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16923,"name":"uint64","nodeType":"ElementaryTypeName","src":"1740:6:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16926,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"1762:9:55","nodeType":"VariableDeclaration","scope":16928,"src":"1754:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16925,"name":"address","nodeType":"ElementaryTypeName","src":"1754:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1739:33:55"}},{"id":16934,"nodeType":"EventDefinition","src":"1778:38:55","nodes":[],"anonymous":false,"eventSelector":"4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593","name":"SubnetBootstrapped","nameLocation":"1784:18:55","parameters":{"id":16933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16932,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16934,"src":"1803:11:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":16930,"nodeType":"UserDefinedTypeName","pathNode":{"id":16929,"name":"Validator","nameLocations":["1803:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":16334,"src":"1803:9:55"},"referencedDeclaration":16334,"src":"1803:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$16334_storage_ptr","typeString":"struct Validator"}},"id":16931,"nodeType":"ArrayTypeName","src":"1803:11:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"1802:13:55"}},{"id":17089,"nodeType":"FunctionDefinition","src":"2347:2935:55","nodes":[],"body":{"id":17088,"nodeType":"Block","src":"2551:2731:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":16958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16951,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"2692:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":16952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2703:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"2692:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":16957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16953,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"2718:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2720:28:55","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"2718:30:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":16955,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"2751:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2753:19:55","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":13772,"src":"2751:21:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2718:54:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2692:80:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":16963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16959,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"2788:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":16960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2799:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"2788:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16961,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"2814:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2816:28:55","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"2814:30:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2788:56:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2692:152:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16969,"nodeType":"IfStatement","src":"2675:236:55","trueBody":{"id":16968,"nodeType":"Block","src":"2855:56:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16965,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6083,"src":"2876:22:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2876:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16967,"nodeType":"RevertStatement","src":"2869:31:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":16978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":16973,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16942,"src":"2945:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":16971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2934:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2938:6:55","memberName":"encode","nodeType":"MemberAccess","src":"2934:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2934:20:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16970,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2924:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:31:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16976,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"2959:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":16977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2970:17:55","memberName":"crossMessagesHash","nodeType":"MemberAccess","referencedDeclaration":16132,"src":"2959:28:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2924:63:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16983,"nodeType":"IfStatement","src":"2920:132:55","trueBody":{"id":16982,"nodeType":"Block","src":"2989:63:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16979,"name":"InvalidCheckpointMessagesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6085,"src":"3010:29:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3010:31:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16981,"nodeType":"RevertStatement","src":"3003:38:55"}]}},{"assignments":[16985],"declarations":[{"constant":false,"id":16985,"mutability":"mutable","name":"checkpointHash","nameLocation":"3069:14:55","nodeType":"VariableDeclaration","scope":17088,"src":"3061:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3061:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":16992,"initialValue":{"arguments":[{"arguments":[{"id":16989,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"3107:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":16987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3096:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3100:6:55","memberName":"encode","nodeType":"MemberAccess","src":"3096:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3096:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16986,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3086:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3086:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3061:58:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":17000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16993,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"3134:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":16994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3145:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"3134:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":16999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16995,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3160:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3162:28:55","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"3160:30:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":16997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3193:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":16998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3195:19:55","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":13772,"src":"3193:21:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3160:54:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3134:80:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":17055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17051,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"4212:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4223:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"4212:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"4238:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4240:28:55","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"4238:30:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4212:56:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17086,"nodeType":"IfStatement","src":"4208:1068:55","trueBody":{"id":17085,"nodeType":"Block","src":"4270:1006:55","statements":[{"assignments":[17057],"declarations":[{"constant":false,"id":17057,"mutability":"mutable","name":"lastCheckpointHash","nameLocation":"4970:18:55","nodeType":"VariableDeclaration","scope":17085,"src":"4962:26:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4962:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":17068,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":17061,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5012:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5014:20:55","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":13746,"src":"5012:22:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":17065,"indexExpression":{"expression":{"id":17063,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"5035:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5046:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"5035:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5012:46:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}],"expression":{"id":17059,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5001:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5005:6:55","memberName":"encode","nodeType":"MemberAccess","src":"5001:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5001:58:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17058,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4991:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4991:69:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4962:98:55"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17069,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"5078:14:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17070,"name":"lastCheckpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17057,"src":"5096:18:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5078:36:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17084,"nodeType":"IfStatement","src":"5074:192:55","trueBody":{"id":17083,"nodeType":"Block","src":"5116:150:55","statements":[{"expression":{"arguments":[{"expression":{"id":17079,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5240:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5244:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5240:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":17072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5193:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5195:16:55","memberName":"rewardedRelayers","nodeType":"MemberAccess","referencedDeclaration":13829,"src":"5193:18:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":17077,"indexExpression":{"expression":{"id":17074,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"5212:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5223:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"5212:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5193:42:55","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":17078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5236:3:55","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":4342,"src":"5193:46:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":17081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5193:58:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17082,"nodeType":"ExpressionStatement","src":"5193:58:55"}]}}]}},"id":17087,"nodeType":"IfStatement","src":"3130:2146:55","trueBody":{"id":17050,"nodeType":"Block","src":"3216:986:55","statements":[{"expression":{"arguments":[{"id":17002,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16945,"src":"3359:11:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":17003,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"3378:14:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17004,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16948,"src":"3406:10:55","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":17001,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"3314:30:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3346:11:55","3372:4:55","3394:10:55"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"3314:104:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17006,"nodeType":"ExpressionStatement","src":"3314:104:55"},{"expression":{"id":17014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17007,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3673:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3675:20:55","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":13746,"src":"3673:22:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$16133_storage_$","typeString":"mapping(uint64 => struct BottomUpCheckpoint storage ref)"}},"id":17012,"indexExpression":{"expression":{"id":17009,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"3696:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"3696:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3673:46:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17013,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"3722:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"src":"3673:59:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":17015,"nodeType":"ExpressionStatement","src":"3673:59:55"},{"expression":{"arguments":[{"expression":{"id":17023,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3849:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:6:55","memberName":"sender","nodeType":"MemberAccess","src":"3849:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":17016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3802:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3804:16:55","memberName":"rewardedRelayers","nodeType":"MemberAccess","referencedDeclaration":13829,"src":"3802:18:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":17021,"indexExpression":{"expression":{"id":17018,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"3821:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3832:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"3821:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3802:42:55","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":17022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3845:3:55","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":4342,"src":"3802:46:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":17025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3802:58:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17026,"nodeType":"ExpressionStatement","src":"3802:58:55"},{"expression":{"id":17032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3875:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3877:28:55","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":13766,"src":"3875:30:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17030,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"3908:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3919:11:55","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":16123,"src":"3908:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3875:55:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":17033,"nodeType":"ExpressionStatement","src":"3875:55:55"},{"expression":{"arguments":[{"id":17039,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"4030:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},{"id":17040,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16942,"src":"4042:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"arguments":[{"expression":{"id":17035,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"3987:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3989:14:55","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"3987:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17034,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"3978:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":17037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:26:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":17038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4005:24:55","memberName":"commitBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":8794,"src":"3978:51:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$16133_memory_ptr_$_t_array$_t_struct$_CrossMsg_$16155_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,struct CrossMsg memory[] memory) external"}},"id":17041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:73:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17042,"nodeType":"ExpressionStatement","src":"3978:73:55"},{"expression":{"arguments":[{"expression":{"id":17046,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"4156:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":17047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4167:23:55","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":16129,"src":"4156:34:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":17043,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"4131:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4142:13:55","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":13298,"src":"4131:24:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":17048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4131:60:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17049,"nodeType":"ExpressionStatement","src":"4131:60:55"}]}}]},"baseFunctions":[8910],"documentation":{"id":16935,"nodeType":"StructuredDocumentation","src":"1822:520:55","text":"@notice submit a checkpoint for execution.\n @dev It triggers the commitment of the checkpoint and the execution of related cross-net messages,\n and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\n @param checkpoint The executed bottom-up checkpoint\n @param messages The list of executed cross-messages\n @param signatories The addresses of the signatories\n @param signatures The collected checkpoint signatures"},"functionSelector":"a8284de3","implemented":true,"kind":"function","modifiers":[],"name":"submitCheckpoint","nameLocation":"2356:16:55","parameters":{"id":16949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16938,"mutability":"mutable","name":"checkpoint","nameLocation":"2410:10:55","nodeType":"VariableDeclaration","scope":17089,"src":"2382:38:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":16937,"nodeType":"UserDefinedTypeName","pathNode":{"id":16936,"name":"BottomUpCheckpoint","nameLocations":["2382:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":16133,"src":"2382:18:55"},"referencedDeclaration":16133,"src":"2382:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$16133_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":16942,"mutability":"mutable","name":"messages","nameLocation":"2450:8:55","nodeType":"VariableDeclaration","scope":17089,"src":"2430:28:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":16940,"nodeType":"UserDefinedTypeName","pathNode":{"id":16939,"name":"CrossMsg","nameLocations":["2430:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":16155,"src":"2430:8:55"},"referencedDeclaration":16155,"src":"2430:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$16155_storage_ptr","typeString":"struct CrossMsg"}},"id":16941,"nodeType":"ArrayTypeName","src":"2430:10:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$16155_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"},{"constant":false,"id":16945,"mutability":"mutable","name":"signatories","nameLocation":"2487:11:55","nodeType":"VariableDeclaration","scope":17089,"src":"2468:30:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16943,"name":"address","nodeType":"ElementaryTypeName","src":"2468:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16944,"nodeType":"ArrayTypeName","src":"2468:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":16948,"mutability":"mutable","name":"signatures","nameLocation":"2525:10:55","nodeType":"VariableDeclaration","scope":17089,"src":"2508:27:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":16946,"name":"bytes","nodeType":"ElementaryTypeName","src":"2508:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":16947,"nodeType":"ArrayTypeName","src":"2508:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2372:169:55"},"returnParameters":{"id":16950,"nodeType":"ParameterList","parameters":[],"src":"2551:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17145,"nodeType":"FunctionDefinition","src":"5508:414:55","nodes":[],"body":{"id":17144,"nodeType":"Block","src":"5544:378:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17093,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5558:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5562:5:55","memberName":"value","nodeType":"MemberAccess","src":"5558:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5571:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5558:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17101,"nodeType":"IfStatement","src":"5554:68:55","trueBody":{"id":17100,"nodeType":"Block","src":"5574:48:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17097,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"5595:14:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5595:16:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17099,"nodeType":"RevertStatement","src":"5588:23:55"}]}},{"condition":{"expression":{"id":17102,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5636:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5638:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"5636:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17108,"nodeType":"IfStatement","src":"5632:79:55","trueBody":{"id":17107,"nodeType":"Block","src":"5652:59:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17104,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6187,"src":"5673:25:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5673:27:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17106,"nodeType":"RevertStatement","src":"5666:34:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":17109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5725:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5727:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"5725:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17113,"indexExpression":{"expression":{"id":17111,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5742:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5746:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5742:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5725:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5757:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5725:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17126,"nodeType":"IfStatement","src":"5721:101:55","trueBody":{"id":17125,"nodeType":"Block","src":"5760:62:55","statements":[{"expression":{"arguments":[{"expression":{"id":17121,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5800:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5804:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5800:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":17116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5774:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5776:18:55","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"5774:20:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5795:4:55","memberName":"push","nodeType":"MemberAccess","src":"5774:25:55","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":17123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5774:37:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17124,"nodeType":"ExpressionStatement","src":"5774:37:55"}]}},{"expression":{"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5832:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5834:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"5832:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17132,"indexExpression":{"expression":{"id":17129,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5849:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5853:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5849:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5832:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":17133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5864:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5868:5:55","memberName":"value","nodeType":"MemberAccess","src":"5864:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5832:41:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17136,"nodeType":"ExpressionStatement","src":"5832:41:55"},{"expression":{"id":17142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"5883:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5885:17:55","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":13754,"src":"5883:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":17140,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5906:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5910:5:55","memberName":"value","nodeType":"MemberAccess","src":"5906:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5883:32:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17143,"nodeType":"ExpressionStatement","src":"5883:32:55"}]},"baseFunctions":[8869],"documentation":{"id":17090,"nodeType":"StructuredDocumentation","src":"5288:215:55","text":"@notice method to add some initial balance into a subnet that hasn't yet bootstrapped.\n @dev This balance is added to user addresses in genesis, and becomes part of the genesis\n circulating supply."},"functionSelector":"0b7fbe60","implemented":true,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"5517:7:55","parameters":{"id":17091,"nodeType":"ParameterList","parameters":[],"src":"5524:2:55"},"returnParameters":{"id":17092,"nodeType":"ParameterList","parameters":[],"src":"5544:0:55"},"scope":17951,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":17219,"nodeType":"FunctionDefinition","src":"6138:576:55","nodes":[],"body":{"id":17218,"nodeType":"Block","src":"6196:518:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17153,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17148,"src":"6210:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6220:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6210:11:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17160,"nodeType":"IfStatement","src":"6206:65:55","trueBody":{"id":17159,"nodeType":"Block","src":"6223:48:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17156,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"6244:14:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6244:16:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17158,"nodeType":"RevertStatement","src":"6237:23:55"}]}},{"condition":{"expression":{"id":17161,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"6285:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6287:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"6285:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17167,"nodeType":"IfStatement","src":"6281:79:55","trueBody":{"id":17166,"nodeType":"Block","src":"6301:59:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17163,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6187,"src":"6322:25:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6322:27:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17165,"nodeType":"RevertStatement","src":"6315:34:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":17168,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"6374:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"6374:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17172,"indexExpression":{"expression":{"id":17170,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6391:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6395:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6391:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6374:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17173,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17148,"src":"6405:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6374:37:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17179,"nodeType":"IfStatement","src":"6370:93:55","trueBody":{"id":17178,"nodeType":"Block","src":"6413:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17175,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"6434:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6434:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17177,"nodeType":"RevertStatement","src":"6427:25:55"}]}},{"expression":{"id":17187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17180,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"6473:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6475:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"6473:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17185,"indexExpression":{"expression":{"id":17182,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6490:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6494:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6490:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6473:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":17186,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17148,"src":"6505:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6473:38:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17188,"nodeType":"ExpressionStatement","src":"6473:38:55"},{"expression":{"id":17193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"6521:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6523:17:55","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":13754,"src":"6521:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":17192,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17148,"src":"6544:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6521:29:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17194,"nodeType":"ExpressionStatement","src":"6521:29:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":17195,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"6565:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6567:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"6565:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17199,"indexExpression":{"expression":{"id":17197,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6582:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6586:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6582:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6565:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6597:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6565:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17208,"nodeType":"IfStatement","src":"6561:99:55","trueBody":{"id":17207,"nodeType":"Block","src":"6600:60:55","statements":[{"expression":{"arguments":[{"expression":{"id":17203,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6638:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6642:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6638:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17202,"name":"rmAddressFromBalanceKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17950,"src":"6614:23:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6614:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17206,"nodeType":"ExpressionStatement","src":"6614:35:55"}]}},{"expression":{"arguments":[{"id":17215,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17148,"src":"6700:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17211,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6678:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6682:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6678:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6670:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":17209,"name":"address","nodeType":"ElementaryTypeName","src":"6670:8:55","stateMutability":"payable","typeDescriptions":{}}},"id":17213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6670:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":17214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6690:9:55","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"6670:29:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":17216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6670:37:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17217,"nodeType":"ExpressionStatement","src":"6670:37:55"}]},"baseFunctions":[8875],"documentation":{"id":17146,"nodeType":"StructuredDocumentation","src":"5928:205:55","text":"@notice method to remove funds from the initial balance of a subnet.\n @dev This method can be used by users looking to recover part of their\n initial balance before the subnet bootstraps."},"functionSelector":"66783c9b","implemented":true,"kind":"function","modifiers":[{"id":17151,"kind":"modifierInvocation","modifierName":{"id":17150,"name":"nonReentrant","nameLocations":["6183:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"6183:12:55"},"nodeType":"ModifierInvocation","src":"6183:12:55"}],"name":"preRelease","nameLocation":"6147:10:55","parameters":{"id":17149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17148,"mutability":"mutable","name":"amount","nameLocation":"6166:6:55","nodeType":"VariableDeclaration","scope":17219,"src":"6158:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17147,"name":"uint256","nodeType":"ElementaryTypeName","src":"6158:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6157:16:55"},"returnParameters":{"id":17152,"nodeType":"ParameterList","parameters":[],"src":"6196:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17358,"nodeType":"FunctionDefinition","src":"6889:2008:55","nodes":[],"body":{"id":17357,"nodeType":"Block","src":"6969:1928:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17229,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"7197:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7199:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"7197:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"expression":{"id":17231,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"7215:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7217:12:55","memberName":"permissioned","nodeType":"MemberAccess","referencedDeclaration":13800,"src":"7215:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7197:32:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17238,"nodeType":"IfStatement","src":"7193:88:55","trueBody":{"id":17237,"nodeType":"Block","src":"7231:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17234,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"7252:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7252:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17236,"nodeType":"RevertStatement","src":"7245:25:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17239,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7294:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7298:5:55","memberName":"value","nodeType":"MemberAccess","src":"7294:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7307:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7294:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17247,"nodeType":"IfStatement","src":"7290:70:55","trueBody":{"id":17246,"nodeType":"Block","src":"7310:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17243,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"7331:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17245,"nodeType":"RevertStatement","src":"7324:25:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17248,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"7374:9:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":17249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7384:6:55","memberName":"length","nodeType":"MemberAccess","src":"7374:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3635","id":17250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7394:2:55","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"7374:22:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17256,"nodeType":"IfStatement","src":"7370:197:55","trueBody":{"id":17255,"nodeType":"Block","src":"7398:169:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17252,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6115,"src":"7532:22:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7532:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17254,"nodeType":"RevertStatement","src":"7525:31:55"}]}},{"assignments":[17258],"declarations":[{"constant":false,"id":17258,"mutability":"mutable","name":"convertedAddress","nameLocation":"7585:16:55","nodeType":"VariableDeclaration","scope":17357,"src":"7577:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17257,"name":"address","nodeType":"ElementaryTypeName","src":"7577:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17262,"initialValue":{"arguments":[{"id":17260,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"7623:9:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":17259,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17896,"src":"7604:18:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":17261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7604:29:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7577:56:55"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17263,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"7647:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17264,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7667:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7671:6:55","memberName":"sender","nodeType":"MemberAccess","src":"7667:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7647:30:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17271,"nodeType":"IfStatement","src":"7643:89:55","trueBody":{"id":17270,"nodeType":"Block","src":"7679:53:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17267,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"7700:19:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7700:21:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17269,"nodeType":"RevertStatement","src":"7693:28:55"}]}},{"condition":{"id":17274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7746:15:55","subExpression":{"expression":{"id":17272,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"7747:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7749:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"7747:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17355,"nodeType":"Block","src":"8757:134:55","statements":[{"expression":{"arguments":[{"expression":{"id":17341,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8803:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8807:6:55","memberName":"sender","nodeType":"MemberAccess","src":"8803:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17343,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"8815:9:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":17338,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"8771:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8782:20:55","memberName":"setValidatorMetadata","nodeType":"MemberAccess","referencedDeclaration":12982,"src":"8771:31:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":17344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8771:54:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17345,"nodeType":"ExpressionStatement","src":"8771:54:55"},{"expression":{"arguments":[{"expression":{"id":17349,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8858:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8862:6:55","memberName":"sender","nodeType":"MemberAccess","src":"8858:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17351,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8870:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8874:5:55","memberName":"value","nodeType":"MemberAccess","src":"8870:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17346,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"8839:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8850:7:55","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":13016,"src":"8839:18:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8839:41:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17354,"nodeType":"ExpressionStatement","src":"8839:41:55"}]},"id":17356,"nodeType":"IfStatement","src":"7742:1149:55","trueBody":{"id":17337,"nodeType":"Block","src":"7763:988:55","statements":[{"expression":{"arguments":[{"expression":{"id":17278,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8032:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8036:6:55","memberName":"sender","nodeType":"MemberAccess","src":"8032:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17280,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"8044:9:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":17275,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"7998:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8009:22:55","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":12806,"src":"7998:33:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":17281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7998:56:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17282,"nodeType":"ExpressionStatement","src":"7998:56:55"},{"expression":{"arguments":[{"expression":{"id":17286,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8098:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8102:6:55","memberName":"sender","nodeType":"MemberAccess","src":"8098:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8110:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8114:5:55","memberName":"value","nodeType":"MemberAccess","src":"8110:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17283,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"8068:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8079:18:55","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":12915,"src":"8068:29:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8068:52:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17291,"nodeType":"ExpressionStatement","src":"8068:52:55"},{"assignments":[17293],"declarations":[{"constant":false,"id":17293,"mutability":"mutable","name":"totalCollateral","nameLocation":"8143:15:55","nodeType":"VariableDeclaration","scope":17337,"src":"8135:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17292,"name":"uint256","nodeType":"ElementaryTypeName","src":"8135:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17297,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17294,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"8161:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8172:27:55","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":12758,"src":"8161:38:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":17296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8161:40:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8135:66:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17298,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"8220:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":17299,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8239:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8241:23:55","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":13769,"src":"8239:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8220:44:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17336,"nodeType":"IfStatement","src":"8216:525:55","trueBody":{"id":17335,"nodeType":"Block","src":"8266:475:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":17307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17302,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"8288:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8299:21:55","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"8288:32:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":17304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8288:34:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":17305,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8326:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8328:13:55","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":13775,"src":"8326:15:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8288:53:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17334,"nodeType":"IfStatement","src":"8284:443:55","trueBody":{"id":17333,"nodeType":"Block","src":"8343:384:55","statements":[{"expression":{"id":17312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17308,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8365:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8367:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"8365:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8382:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8365:21:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17313,"nodeType":"ExpressionStatement","src":"8365:21:55"},{"eventCall":{"arguments":[{"expression":{"id":17315,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8432:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8434:17:55","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":13751,"src":"8432:19:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$16334_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":17314,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16934,"src":"8413:18:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$16334_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":17317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8413:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17318,"nodeType":"EmitStatement","src":"8408:44:55"},{"expression":{"arguments":[{"expression":{"id":17329,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8667:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8669:17:55","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":13754,"src":"8667:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17320,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8569:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8571:14:55","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"8569:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17319,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"8560:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":17322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:26:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8587:8:55","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":8763,"src":"8560:35:55","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17324,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"8603:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":17325,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"8621:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8623:17:55","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":13754,"src":"8621:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8603:37:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"8560:81:55","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":17331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:148:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17332,"nodeType":"ExpressionStatement","src":"8560:148:55"}]}}]}}]}}]},"baseFunctions":[8857],"documentation":{"id":17220,"nodeType":"StructuredDocumentation","src":"6720:164:55","text":"@notice method that allows a validator to join the subnet\n @param publicKey The off-chain 65 byte public key that should be associated with the validator"},"functionSelector":"6170b162","implemented":true,"kind":"function","modifiers":[{"id":17225,"kind":"modifierInvocation","modifierName":{"id":17224,"name":"nonReentrant","nameLocations":["6946:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"6946:12:55"},"nodeType":"ModifierInvocation","src":"6946:12:55"},{"id":17227,"kind":"modifierInvocation","modifierName":{"id":17226,"name":"notKilled","nameLocations":["6959:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":13892,"src":"6959:9:55"},"nodeType":"ModifierInvocation","src":"6959:9:55"}],"name":"join","nameLocation":"6898:4:55","parameters":{"id":17223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17222,"mutability":"mutable","name":"publicKey","nameLocation":"6918:9:55","nodeType":"VariableDeclaration","scope":17358,"src":"6903:24:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17221,"name":"bytes","nodeType":"ElementaryTypeName","src":"6903:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6902:26:55"},"returnParameters":{"id":17228,"nodeType":"ParameterList","parameters":[],"src":"6969:0:55"},"scope":17951,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":17416,"nodeType":"FunctionDefinition","src":"8972:627:55","nodes":[],"body":{"id":17415,"nodeType":"Block","src":"9016:583:55","nodes":[],"statements":[{"condition":{"expression":{"id":17364,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"9170:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9172:12:55","memberName":"permissioned","nodeType":"MemberAccess","referencedDeclaration":13800,"src":"9170:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17370,"nodeType":"IfStatement","src":"9166:70:55","trueBody":{"id":17369,"nodeType":"Block","src":"9186:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17366,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"9207:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17368,"nodeType":"RevertStatement","src":"9200:25:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9249:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9253:5:55","memberName":"value","nodeType":"MemberAccess","src":"9249:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9262:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9249:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17379,"nodeType":"IfStatement","src":"9245:70:55","trueBody":{"id":17378,"nodeType":"Block","src":"9265:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17375,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"9286:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9286:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17377,"nodeType":"RevertStatement","src":"9279:25:55"}]}},{"condition":{"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9329:33:55","subExpression":{"arguments":[{"expression":{"id":17382,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9351:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9355:6:55","memberName":"sender","nodeType":"MemberAccess","src":"9351:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17380,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"9330:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9341:9:55","memberName":"hasStaked","nodeType":"MemberAccess","referencedDeclaration":12696,"src":"9330:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9330:32:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17390,"nodeType":"IfStatement","src":"9325:88:55","trueBody":{"id":17389,"nodeType":"Block","src":"9364:49:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17386,"name":"NotStakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6157,"src":"9385:15:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9385:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17388,"nodeType":"RevertStatement","src":"9378:24:55"}]}},{"condition":{"id":17393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9427:15:55","subExpression":{"expression":{"id":17391,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"9428:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9430:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"9428:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17405,"nodeType":"IfStatement","src":"9423:118:55","trueBody":{"id":17404,"nodeType":"Block","src":"9444:97:55","statements":[{"expression":{"arguments":[{"expression":{"id":17397,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9488:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9492:6:55","memberName":"sender","nodeType":"MemberAccess","src":"9488:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17399,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9500:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9504:5:55","memberName":"value","nodeType":"MemberAccess","src":"9500:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17394,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"9458:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9469:18:55","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":12915,"src":"9458:29:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9458:52:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17402,"nodeType":"ExpressionStatement","src":"9458:52:55"},{"functionReturnParameters":17363,"id":17403,"nodeType":"Return","src":"9524:7:55"}]}},{"expression":{"arguments":[{"expression":{"id":17409,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9570:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9574:6:55","memberName":"sender","nodeType":"MemberAccess","src":"9570:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17411,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9582:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9586:5:55","memberName":"value","nodeType":"MemberAccess","src":"9582:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17406,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"9551:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:7:55","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":13016,"src":"9551:18:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9551:41:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17414,"nodeType":"ExpressionStatement","src":"9551:41:55"}]},"baseFunctions":[8865],"documentation":{"id":17359,"nodeType":"StructuredDocumentation","src":"8903:64:55","text":"@notice method that allows a validator to increase its stake"},"functionSelector":"3a4b66f1","implemented":true,"kind":"function","modifiers":[{"id":17362,"kind":"modifierInvocation","modifierName":{"id":17361,"name":"notKilled","nameLocations":["9006:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":13892,"src":"9006:9:55"},"nodeType":"ModifierInvocation","src":"9006:9:55"}],"name":"stake","nameLocation":"8981:5:55","parameters":{"id":17360,"nodeType":"ParameterList","parameters":[],"src":"8986:2:55"},"returnParameters":{"id":17363,"nodeType":"ParameterList","parameters":[],"src":"9016:0:55"},"scope":17951,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":17488,"nodeType":"FunctionDefinition","src":"9765:784:55","nodes":[],"body":{"id":17487,"nodeType":"Block","src":"9817:732:55","nodes":[],"statements":[{"condition":{"expression":{"id":17424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"9971:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9973:12:55","memberName":"permissioned","nodeType":"MemberAccess","referencedDeclaration":13800,"src":"9971:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17430,"nodeType":"IfStatement","src":"9967:70:55","trueBody":{"id":17429,"nodeType":"Block","src":"9987:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17426,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"10008:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17428,"nodeType":"RevertStatement","src":"10001:25:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17431,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17419,"src":"10050:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10060:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10050:11:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17438,"nodeType":"IfStatement","src":"10046:68:55","trueBody":{"id":17437,"nodeType":"Block","src":"10063:51:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17434,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"10084:17:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10084:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17436,"nodeType":"RevertStatement","src":"10077:26:55"}]}},{"assignments":[17440],"declarations":[{"constant":false,"id":17440,"mutability":"mutable","name":"collateral","nameLocation":"10132:10:55","nodeType":"VariableDeclaration","scope":17487,"src":"10124:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17439,"name":"uint256","nodeType":"ElementaryTypeName","src":"10124:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17446,"initialValue":{"arguments":[{"expression":{"id":17443,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10181:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10185:6:55","memberName":"sender","nodeType":"MemberAccess","src":"10181:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17441,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"10145:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10156:24:55","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":12781,"src":"10145:35:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":17445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10145:47:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10124:68:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17447,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17440,"src":"10207:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10221:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10207:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17456,"nodeType":"IfStatement","src":"10203:77:55","trueBody":{"id":17455,"nodeType":"Block","src":"10224:56:55","statements":[{"errorCall":{"arguments":[{"expression":{"id":17451,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10258:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10262:6:55","memberName":"sender","nodeType":"MemberAccess","src":"10258:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17450,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"10245:12:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":17453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10245:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17454,"nodeType":"RevertStatement","src":"10238:31:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17457,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17440,"src":"10293:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":17458,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17419,"src":"10307:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10293:20:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17464,"nodeType":"IfStatement","src":"10289:79:55","trueBody":{"id":17463,"nodeType":"Block","src":"10315:53:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17460,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6139,"src":"10336:19:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10336:21:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17462,"nodeType":"RevertStatement","src":"10329:28:55"}]}},{"condition":{"id":17467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10381:15:55","subExpression":{"expression":{"id":17465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"10382:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10384:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"10382:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17478,"nodeType":"IfStatement","src":"10377:116:55","trueBody":{"id":17477,"nodeType":"Block","src":"10398:95:55","statements":[{"expression":{"arguments":[{"expression":{"id":17471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10443:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10447:6:55","memberName":"sender","nodeType":"MemberAccess","src":"10443:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17473,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17419,"src":"10455:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17468,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"10412:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10423:19:55","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":12957,"src":"10412:30:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10412:50:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17475,"nodeType":"ExpressionStatement","src":"10412:50:55"},{"functionReturnParameters":17423,"id":17476,"nodeType":"Return","src":"10476:7:55"}]}},{"expression":{"arguments":[{"expression":{"id":17482,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10523:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10527:6:55","memberName":"sender","nodeType":"MemberAccess","src":"10523:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17419,"src":"10535:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17479,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"10503:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10514:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":13050,"src":"10503:19:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10503:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17486,"nodeType":"ExpressionStatement","src":"10503:39:55"}]},"baseFunctions":[8881],"documentation":{"id":17417,"nodeType":"StructuredDocumentation","src":"9605:155:55","text":"@notice method that allows a validator to unstake a part of its collateral from a subnet\n @dev `leave` must be used to unstake the entire stake."},"functionSelector":"2e17de78","implemented":true,"kind":"function","modifiers":[{"id":17422,"kind":"modifierInvocation","modifierName":{"id":17421,"name":"notKilled","nameLocations":["9807:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":13892,"src":"9807:9:55"},"nodeType":"ModifierInvocation","src":"9807:9:55"}],"name":"unstake","nameLocation":"9774:7:55","parameters":{"id":17420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17419,"mutability":"mutable","name":"amount","nameLocation":"9790:6:55","nodeType":"VariableDeclaration","scope":17488,"src":"9782:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17418,"name":"uint256","nodeType":"ElementaryTypeName","src":"9782:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9781:16:55"},"returnParameters":{"id":17423,"nodeType":"ParameterList","parameters":[],"src":"9817:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17605,"nodeType":"FunctionDefinition","src":"10729:1523:55","nodes":[],"body":{"id":17604,"nodeType":"Block","src":"10778:1474:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17496,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11119:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11121:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"11119:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"expression":{"id":17498,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11137:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11139:12:55","memberName":"permissioned","nodeType":"MemberAccess","referencedDeclaration":13800,"src":"11137:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11119:32:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17505,"nodeType":"IfStatement","src":"11115:88:55","trueBody":{"id":17504,"nodeType":"Block","src":"11153:50:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17501,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"11174:16:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11174:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17503,"nodeType":"RevertStatement","src":"11167:25:55"}]}},{"assignments":[17507],"declarations":[{"constant":false,"id":17507,"mutability":"mutable","name":"amount","nameLocation":"11279:6:55","nodeType":"VariableDeclaration","scope":17604,"src":"11271:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17506,"name":"uint256","nodeType":"ElementaryTypeName","src":"11271:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17513,"initialValue":{"arguments":[{"expression":{"id":17510,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11324:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11328:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11324:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17508,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"11288:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11299:24:55","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":12781,"src":"11288:35:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":17512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11288:47:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11271:64:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17514,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17507,"src":"11349:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11359:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11349:11:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17523,"nodeType":"IfStatement","src":"11345:73:55","trueBody":{"id":17522,"nodeType":"Block","src":"11362:56:55","statements":[{"errorCall":{"arguments":[{"expression":{"id":17518,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11396:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11400:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11396:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17517,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"11383:12:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":17520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11383:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17521,"nodeType":"RevertStatement","src":"11376:31:55"}]}},{"expression":{"arguments":[{"expression":{"id":17529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11504:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11508:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11504:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":17524,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11479:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11481:15:55","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":13838,"src":"11479:17:55","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":17528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:6:55","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":4369,"src":"11479:24:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":17531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11479:36:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17532,"nodeType":"ExpressionStatement","src":"11479:36:55"},{"expression":{"id":17538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11525:35:55","subExpression":{"baseExpression":{"expression":{"id":17533,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11532:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11534:14:55","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":13834,"src":"11532:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":17537,"indexExpression":{"expression":{"id":17535,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11549:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11553:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11549:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11532:28:55","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17539,"nodeType":"ExpressionStatement","src":"11525:35:55"},{"condition":{"id":17542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11575:15:55","subExpression":{"expression":{"id":17540,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11576:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11578:12:55","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"11576:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17595,"nodeType":"IfStatement","src":"11571:626:55","trueBody":{"id":17594,"nodeType":"Block","src":"11592:605:55","statements":[{"assignments":[17544],"declarations":[{"constant":false,"id":17544,"mutability":"mutable","name":"genesisBalance","nameLocation":"11711:14:55","nodeType":"VariableDeclaration","scope":17594,"src":"11703:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17543,"name":"uint256","nodeType":"ElementaryTypeName","src":"11703:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17550,"initialValue":{"baseExpression":{"expression":{"id":17545,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11728:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11730:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"11728:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17549,"indexExpression":{"expression":{"id":17547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11745:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11749:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11745:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11728:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11703:53:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17551,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17544,"src":"11774:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11792:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11774:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17584,"nodeType":"IfStatement","src":"11770:262:55","trueBody":{"id":17583,"nodeType":"Block","src":"11795:237:55","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":17554,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11813:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11815:14:55","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":13759,"src":"11813:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17559,"indexExpression":{"expression":{"id":17556,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11830:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11834:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11830:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11813:28:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11845:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11813:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17562,"nodeType":"ExpressionStatement","src":"11813:33:55"},{"expression":{"id":17567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17563,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"11864:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11866:17:55","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":13754,"src":"11864:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":17566,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17544,"src":"11887:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11864:37:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17568,"nodeType":"ExpressionStatement","src":"11864:37:55"},{"expression":{"arguments":[{"expression":{"id":17570,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11943:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11947:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11943:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17569,"name":"rmAddressFromBalanceKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17950,"src":"11919:23:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11919:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17573,"nodeType":"ExpressionStatement","src":"11919:35:55"},{"expression":{"arguments":[{"id":17580,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17544,"src":"12002:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17576,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11980:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11984:6:55","memberName":"sender","nodeType":"MemberAccess","src":"11980:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11972:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":17574,"name":"address","nodeType":"ElementaryTypeName","src":"11972:8:55","stateMutability":"payable","typeDescriptions":{}}},"id":17578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11972:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":17579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11992:9:55","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1297,"src":"11972:29:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":17581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11972:45:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17582,"nodeType":"ExpressionStatement","src":"11972:45:55"}]}},{"expression":{"arguments":[{"expression":{"id":17588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12147:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12151:6:55","memberName":"sender","nodeType":"MemberAccess","src":"12147:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17590,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17507,"src":"12159:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17585,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"12116:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12127:19:55","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":12957,"src":"12116:30:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12116:50:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17592,"nodeType":"ExpressionStatement","src":"12116:50:55"},{"functionReturnParameters":17495,"id":17593,"nodeType":"Return","src":"12180:7:55"}]}},{"expression":{"arguments":[{"expression":{"id":17599,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12226:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12230:6:55","memberName":"sender","nodeType":"MemberAccess","src":"12226:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17601,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17507,"src":"12238:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17596,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"12206:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12217:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":13050,"src":"12206:19:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12206:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17603,"nodeType":"ExpressionStatement","src":"12206:39:55"}]},"baseFunctions":[8861],"documentation":{"id":17489,"nodeType":"StructuredDocumentation","src":"10555:169:55","text":"@notice method that allows a validator to leave the subnet\n @dev it also return the validators initial balance if the\n subnet was not yet bootstrapped."},"functionSelector":"d66d9e19","implemented":true,"kind":"function","modifiers":[{"id":17492,"kind":"modifierInvocation","modifierName":{"id":17491,"name":"notKilled","nameLocations":["10755:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":13892,"src":"10755:9:55"},"nodeType":"ModifierInvocation","src":"10755:9:55"},{"id":17494,"kind":"modifierInvocation","modifierName":{"id":17493,"name":"nonReentrant","nameLocations":["10765:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"10765:12:55"},"nodeType":"ModifierInvocation","src":"10765:12:55"}],"name":"leave","nameLocation":"10738:5:55","parameters":{"id":17490,"nodeType":"ParameterList","parameters":[],"src":"10743:2:55"},"returnParameters":{"id":17495,"nodeType":"ParameterList","parameters":[],"src":"10778:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17635,"nodeType":"FunctionDefinition","src":"12372:217:55","nodes":[],"body":{"id":17634,"nodeType":"Block","src":"12407:182:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":17615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17611,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"12421:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12432:15:55","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":12740,"src":"12421:26:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":17613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:28:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12453:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12421:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17620,"nodeType":"IfStatement","src":"12417:97:55","trueBody":{"id":17619,"nodeType":"Block","src":"12456:58:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17616,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6127,"src":"12477:24:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12477:26:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17618,"nodeType":"RevertStatement","src":"12470:33:55"}]}},{"expression":{"id":17625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17621,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"12524:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12526:6:55","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":13803,"src":"12524:8:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12535:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12524:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17626,"nodeType":"ExpressionStatement","src":"12524:15:55"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":17628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"12558:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12560:14:55","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":13780,"src":"12558:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17627,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"12549:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$8843_$","typeString":"type(contract IGateway)"}},"id":17630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12549:26:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$8843","typeString":"contract IGateway"}},"id":17631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12576:4:55","memberName":"kill","nodeType":"MemberAccess","referencedDeclaration":8783,"src":"12549:31:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12549:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17633,"nodeType":"ExpressionStatement","src":"12549:33:55"}]},"baseFunctions":[8885],"documentation":{"id":17606,"nodeType":"StructuredDocumentation","src":"12258:109:55","text":"@notice method that allows to kill the subnet when all validators left. It is not a privileged operation."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[{"id":17609,"kind":"modifierInvocation","modifierName":{"id":17608,"name":"notKilled","nameLocations":["12397:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":13892,"src":"12397:9:55"},"nodeType":"ModifierInvocation","src":"12397:9:55"}],"name":"kill","nameLocation":"12381:4:55","parameters":{"id":17607,"nodeType":"ParameterList","parameters":[],"src":"12385:2:55"},"returnParameters":{"id":17610,"nodeType":"ParameterList","parameters":[],"src":"12407:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17649,"nodeType":"FunctionDefinition","src":"12654:94:55","nodes":[],"body":{"id":17648,"nodeType":"Block","src":"12693:55:55","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":17644,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12730:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12734:6:55","memberName":"sender","nodeType":"MemberAccess","src":"12730:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17641,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"12703:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12714:15:55","memberName":"claimCollateral","nodeType":"MemberAccess","referencedDeclaration":13077,"src":"12703:26:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12703:38:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17647,"nodeType":"ExpressionStatement","src":"12703:38:55"}]},"baseFunctions":[8889],"documentation":{"id":17636,"nodeType":"StructuredDocumentation","src":"12595:54:55","text":"@notice Validator claims their released collateral"},"functionSelector":"4e71d92d","implemented":true,"kind":"function","modifiers":[{"id":17639,"kind":"modifierInvocation","modifierName":{"id":17638,"name":"nonReentrant","nameLocations":["12680:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"12680:12:55"},"nodeType":"ModifierInvocation","src":"12680:12:55"}],"name":"claim","nameLocation":"12663:5:55","parameters":{"id":17637,"nodeType":"ParameterList","parameters":[],"src":"12668:2:55"},"returnParameters":{"id":17640,"nodeType":"ParameterList","parameters":[],"src":"12693:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17663,"nodeType":"FunctionDefinition","src":"12796:116:55","nodes":[],"body":{"id":17662,"nodeType":"Block","src":"12851:61:55","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":17658,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12894:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12898:6:55","memberName":"sender","nodeType":"MemberAccess","src":"12894:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17655,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"12861:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":17657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12872:21:55","memberName":"claimRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":13130,"src":"12861:32:55","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12861:44:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17661,"nodeType":"ExpressionStatement","src":"12861:44:55"}]},"baseFunctions":[8893],"documentation":{"id":17650,"nodeType":"StructuredDocumentation","src":"12754:37:55","text":"@notice Relayer claims its reward"},"functionSelector":"ed7c4da1","implemented":true,"kind":"function","modifiers":[{"id":17653,"kind":"modifierInvocation","modifierName":{"id":17652,"name":"nonReentrant","nameLocations":["12838:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":11430,"src":"12838:12:55"},"nodeType":"ModifierInvocation","src":"12838:12:55"}],"name":"claimRewardForRelayer","nameLocation":"12805:21:55","parameters":{"id":17651,"nodeType":"ParameterList","parameters":[],"src":"12826:2:55"},"returnParameters":{"id":17654,"nodeType":"ParameterList","parameters":[],"src":"12851:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17714,"nodeType":"FunctionDefinition","src":"12955:419:55","nodes":[],"body":{"id":17713,"nodeType":"Block","src":"13016:358:55","nodes":[],"statements":[{"condition":{"id":17675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13030:45:55","subExpression":{"arguments":[{"expression":{"id":17672,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13064:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13068:6:55","memberName":"sender","nodeType":"MemberAccess","src":"13064:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":17669,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"13031:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13033:12:55","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"13031:14:55","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":17671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13046:17:55","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":12021,"src":"13031:32:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":17674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13031:44:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17682,"nodeType":"IfStatement","src":"13026:107:55","trueBody":{"id":17681,"nodeType":"Block","src":"13077:56:55","statements":[{"errorCall":{"arguments":[{"expression":{"id":17677,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13111:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13115:6:55","memberName":"sender","nodeType":"MemberAccess","src":"13111:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17676,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"13098:12:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":17679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13098:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17680,"nodeType":"RevertStatement","src":"13091:31:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":17685,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17666,"src":"13152:10:55","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13146:5:55","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17683,"name":"bytes","nodeType":"ElementaryTypeName","src":"13146:5:55","typeDescriptions":{}}},"id":17686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13146:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13164:6:55","memberName":"length","nodeType":"MemberAccess","src":"13146:24:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13174:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13146:29:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17694,"nodeType":"IfStatement","src":"13142:81:55","trueBody":{"id":17693,"nodeType":"Block","src":"13177:46:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17690,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"13198:12:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13198:14:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17692,"nodeType":"RevertStatement","src":"13191:21:55"}]}},{"expression":{"id":17702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17695,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"13232:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13234:14:55","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":13834,"src":"13232:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":17700,"indexExpression":{"expression":{"id":17697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13249:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13253:6:55","memberName":"sender","nodeType":"MemberAccess","src":"13249:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13232:28:55","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17701,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17666,"src":"13263:10:55","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13232:41:55","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17703,"nodeType":"ExpressionStatement","src":"13232:41:55"},{"expression":{"arguments":[{"expression":{"id":17709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13356:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13360:6:55","memberName":"sender","nodeType":"MemberAccess","src":"13356:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":17704,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"13334:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13336:15:55","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":13838,"src":"13334:17:55","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":17708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13352:3:55","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":4342,"src":"13334:21:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$4315_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":17711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13334:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17712,"nodeType":"ExpressionStatement","src":"13334:33:55"}]},"documentation":{"id":17664,"nodeType":"StructuredDocumentation","src":"12918:32:55","text":"@notice add a bootstrap node"},"functionSelector":"10fd4261","implemented":true,"kind":"function","modifiers":[],"name":"addBootstrapNode","nameLocation":"12964:16:55","parameters":{"id":17667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17666,"mutability":"mutable","name":"netAddress","nameLocation":"12995:10:55","nodeType":"VariableDeclaration","scope":17714,"src":"12981:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17665,"name":"string","nodeType":"ElementaryTypeName","src":"12981:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12980:26:55"},"returnParameters":{"id":17668,"nodeType":"ParameterList","parameters":[],"src":"13016:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":17795,"nodeType":"FunctionDefinition","src":"13759:902:55","nodes":[],"body":{"id":17794,"nodeType":"Block","src":"13855:806:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17724,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"13869:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13879:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13869:11:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17729,"nodeType":"IfStatement","src":"13865:48:55","trueBody":{"id":17728,"nodeType":"Block","src":"13882:31:55","statements":[{"functionReturnParameters":17723,"id":17727,"nodeType":"Return","src":"13896:7:55"}]}},{"assignments":[17731],"declarations":[{"constant":false,"id":17731,"mutability":"mutable","name":"previousHeight","nameLocation":"13929:14:55","nodeType":"VariableDeclaration","scope":17794,"src":"13922:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17730,"name":"uint64","nodeType":"ElementaryTypeName","src":"13922:6:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":17736,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":17735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17732,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17717,"src":"13946:6:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17733,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"13955:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13957:19:55","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":13772,"src":"13955:21:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13946:30:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"13922:54:55"},{"assignments":[17741],"declarations":[{"constant":false,"id":17741,"mutability":"mutable","name":"relayers","nameLocation":"14003:8:55","nodeType":"VariableDeclaration","scope":17794,"src":"13986:25:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17739,"name":"address","nodeType":"ElementaryTypeName","src":"13986:7:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17740,"nodeType":"ArrayTypeName","src":"13986:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":17748,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":17742,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"14014:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14016:16:55","memberName":"rewardedRelayers","nodeType":"MemberAccess","referencedDeclaration":13829,"src":"14014:18:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_AddressSet_$4315_storage_$","typeString":"mapping(uint64 => struct EnumerableSet.AddressSet storage ref)"}},"id":17745,"indexExpression":{"id":17744,"name":"previousHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17731,"src":"14033:14:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14014:34:55","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4315_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":17746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14049:6:55","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":4468,"src":"14014:41:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$4315_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$4315_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14014:43:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"13986:71:55"},{"assignments":[17750],"declarations":[{"constant":false,"id":17750,"mutability":"mutable","name":"relayersLength","nameLocation":"14075:14:55","nodeType":"VariableDeclaration","scope":17794,"src":"14067:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17749,"name":"uint256","nodeType":"ElementaryTypeName","src":"14067:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17753,"initialValue":{"expression":{"id":17751,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17741,"src":"14092:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":17752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14101:6:55","memberName":"length","nodeType":"MemberAccess","src":"14092:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14067:40:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17754,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"14121:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14139:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14121:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17759,"nodeType":"IfStatement","src":"14117:56:55","trueBody":{"id":17758,"nodeType":"Block","src":"14142:31:55","statements":[{"functionReturnParameters":17723,"id":17757,"nodeType":"Return","src":"14156:7:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17760,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"14186:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17761,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"14195:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14186:23:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17765,"nodeType":"IfStatement","src":"14182:238:55","trueBody":{"id":17764,"nodeType":"Block","src":"14211:209:55","statements":[{"functionReturnParameters":17723,"id":17763,"nodeType":"Return","src":"14403:7:55"}]}},{"assignments":[17767],"declarations":[{"constant":false,"id":17767,"mutability":"mutable","name":"relayerReward","nameLocation":"14437:13:55","nodeType":"VariableDeclaration","scope":17794,"src":"14429:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17766,"name":"uint256","nodeType":"ElementaryTypeName","src":"14429:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17771,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17768,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"14453:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17769,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"14462:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14453:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14429:47:55"},{"body":{"id":17792,"nodeType":"Block","src":"14525:130:55","statements":[{"expression":{"id":17786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"14539:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14541:14:55","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":13823,"src":"14539:16:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17784,"indexExpression":{"baseExpression":{"id":17780,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17741,"src":"14556:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":17782,"indexExpression":{"id":17781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17773,"src":"14565:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14556:11:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14539:29:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":17785,"name":"relayerReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17767,"src":"14572:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14539:46:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17787,"nodeType":"ExpressionStatement","src":"14539:46:55"},{"id":17791,"nodeType":"UncheckedBlock","src":"14599:46:55","statements":[{"expression":{"id":17789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14627:3:55","subExpression":{"id":17788,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17773,"src":"14629:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17790,"nodeType":"ExpressionStatement","src":"14627:3:55"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17773,"src":"14503:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17776,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"14507:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14503:18:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17793,"initializationExpression":{"assignments":[17773],"declarations":[{"constant":false,"id":17773,"mutability":"mutable","name":"i","nameLocation":"14500:1:55","nodeType":"VariableDeclaration","scope":17793,"src":"14492:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17772,"name":"uint256","nodeType":"ElementaryTypeName","src":"14492:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17774,"nodeType":"VariableDeclarationStatement","src":"14492:9:55"},"nodeType":"ForStatement","src":"14487:168:55"}]},"baseFunctions":[8918],"documentation":{"id":17715,"nodeType":"StructuredDocumentation","src":"13380:374:55","text":"@notice reward the relayers for of the previous checkpoint after processing the one at height `height`.\n @dev The reward includes the fixed relayer reward and accumulated cross-message fees received from the gateway.\n @param height height of the checkpoint the relayers are rewarded for\n @param reward The sum of cross-message fees in the checkpoint"},"functionSelector":"f9002bb1","implemented":true,"kind":"function","modifiers":[{"id":17722,"kind":"modifierInvocation","modifierName":{"id":17721,"name":"onlyGateway","nameLocations":["13843:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":13885,"src":"13843:11:55"},"nodeType":"ModifierInvocation","src":"13843:11:55"}],"name":"distributeRewardToRelayers","nameLocation":"13768:26:55","parameters":{"id":17720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17717,"mutability":"mutable","name":"height","nameLocation":"13802:6:55","nodeType":"VariableDeclaration","scope":17795,"src":"13795:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17716,"name":"uint64","nodeType":"ElementaryTypeName","src":"13795:6:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":17719,"mutability":"mutable","name":"reward","nameLocation":"13818:6:55","nodeType":"VariableDeclaration","scope":17795,"src":"13810:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17718,"name":"uint256","nodeType":"ElementaryTypeName","src":"13810:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13794:31:55"},"returnParameters":{"id":17723,"nodeType":"ParameterList","parameters":[],"src":"13855:0:55"},"scope":17951,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":17861,"nodeType":"FunctionDefinition","src":"15231:888:55","nodes":[],"body":{"id":17860,"nodeType":"Block","src":"15384:735:55","nodes":[],"statements":[{"assignments":[17811],"declarations":[{"constant":false,"id":17811,"mutability":"mutable","name":"collaterals","nameLocation":"15523:11:55","nodeType":"VariableDeclaration","scope":17860,"src":"15506:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17809,"name":"uint256","nodeType":"ElementaryTypeName","src":"15506:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17810,"nodeType":"ArrayTypeName","src":"15506:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":17817,"initialValue":{"arguments":[{"id":17815,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"15576:11:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"expression":{"id":17812,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"15537:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15539:12:55","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15537:14:55","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":17814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15552:23:55","memberName":"getConfirmedCollaterals","nodeType":"MemberAccess","referencedDeclaration":12004,"src":"15537:38:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address[] memory) view returns (uint256[] memory)"}},"id":17816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15537:51:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15506:82:55"},{"assignments":[17819],"declarations":[{"constant":false,"id":17819,"mutability":"mutable","name":"activeCollateral","nameLocation":"15606:16:55","nodeType":"VariableDeclaration","scope":17860,"src":"15598:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17818,"name":"uint256","nodeType":"ElementaryTypeName","src":"15598:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":17820,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"15625:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15627:12:55","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"15625:14:55","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$16313_storage","typeString":"struct ValidatorSet storage ref"}},"id":17822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15640:19:55","memberName":"getActiveCollateral","nodeType":"MemberAccess","referencedDeclaration":11933,"src":"15625:34:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$16313_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$16313_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":17823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15625:36:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15598:63:55"},{"assignments":[17826],"declarations":[{"constant":false,"id":17826,"mutability":"mutable","name":"threshold","nameLocation":"15680:9:55","nodeType":"VariableDeclaration","scope":17860,"src":"15672:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17825,"name":"uint256","nodeType":"ElementaryTypeName","src":"15672:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17834,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17827,"name":"activeCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17819,"src":"15693:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":17828,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"15712:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15714:18:55","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":13783,"src":"15712:20:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"15693:39:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17831,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15692:41:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":17832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15736:3:55","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"15692:47:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15672:67:55"},{"assignments":[17836,17839],"declarations":[{"constant":false,"id":17836,"mutability":"mutable","name":"valid","nameLocation":"15756:5:55","nodeType":"VariableDeclaration","scope":17860,"src":"15751:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17835,"name":"bool","nodeType":"ElementaryTypeName","src":"15751:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17839,"mutability":"mutable","name":"err","nameLocation":"15791:3:55","nodeType":"VariableDeclaration","scope":17860,"src":"15763:31:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":17838,"nodeType":"UserDefinedTypeName","pathNode":{"id":17837,"name":"MultisignatureChecker.Error","nameLocations":["15763:21:55","15785:5:55"],"nodeType":"IdentifierPath","referencedDeclaration":11242,"src":"15763:27:55"},"referencedDeclaration":11242,"src":"15763:27:55","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"id":17848,"initialValue":{"arguments":[{"id":17842,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"15877:11:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":17843,"name":"collaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17811,"src":"15911:11:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":17844,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17826,"src":"15947:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17845,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17801,"src":"15976:4:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17846,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17804,"src":"16006:10:55","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":17840,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"15798:21:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MultisignatureChecker_$11381_$","typeString":"type(library MultisignatureChecker)"}},"id":17841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15820:29:55","memberName":"isValidWeightedMultiSignature","nodeType":"MemberAccess","referencedDeclaration":11380,"src":"15798:51:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$_t_enum$_Error_$11242_$","typeString":"function (address[] memory,uint256[] memory,uint256,bytes32,bytes memory[] memory) pure returns (bool,enum MultisignatureChecker.Error)"}},"id":17847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["15864:11:55","15902:7:55","15936:9:55","15970:4:55","15994:10:55"],"names":["signatories","weights","threshold","hash","signatures"],"nodeType":"FunctionCall","src":"15798:229:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$11242_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"nodeType":"VariableDeclarationStatement","src":"15750:277:55"},{"condition":{"id":17850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16042:6:55","subExpression":{"id":17849,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17836,"src":"16043:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17859,"nodeType":"IfStatement","src":"16038:75:55","trueBody":{"id":17858,"nodeType":"Block","src":"16050:63:55","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":17854,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17839,"src":"16097:3:55","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Error_$11242","typeString":"enum MultisignatureChecker.Error"}],"id":17853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16091:5:55","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":17852,"name":"uint8","nodeType":"ElementaryTypeName","src":"16091:5:55","typeDescriptions":{}}},"id":17855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16091:10:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":17851,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6111,"src":"16071:19:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$__$","typeString":"function (uint8) pure"}},"id":17856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16071:31:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17857,"nodeType":"RevertStatement","src":"16064:38:55"}]}}]},"documentation":{"id":17796,"nodeType":"StructuredDocumentation","src":"14667:559:55","text":" @notice Checks whether the signatures are valid for the provided signatories and hash within the current validator set.\n Reverts otherwise.\n @dev Signatories in `signatories` and their signatures in `signatures` must be provided in the same order.\n Having it public allows external users to perform sanity-check verification if needed.\n @param signatories The addresses of the signatories.\n @param hash The hash of the checkpoint.\n @param signatures The packed signatures of the checkpoint."},"functionSelector":"cc2dc2b9","implemented":true,"kind":"function","modifiers":[],"name":"validateActiveQuorumSignatures","nameLocation":"15240:30:55","parameters":{"id":17805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17799,"mutability":"mutable","name":"signatories","nameLocation":"15297:11:55","nodeType":"VariableDeclaration","scope":17861,"src":"15280:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17797,"name":"address","nodeType":"ElementaryTypeName","src":"15280:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17798,"nodeType":"ArrayTypeName","src":"15280:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":17801,"mutability":"mutable","name":"hash","nameLocation":"15326:4:55","nodeType":"VariableDeclaration","scope":17861,"src":"15318:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15318:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17804,"mutability":"mutable","name":"signatures","nameLocation":"15355:10:55","nodeType":"VariableDeclaration","scope":17861,"src":"15340:25:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":17802,"name":"bytes","nodeType":"ElementaryTypeName","src":"15340:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":17803,"nodeType":"ArrayTypeName","src":"15340:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"15270:101:55"},"returnParameters":{"id":17806,"nodeType":"ParameterList","parameters":[],"src":"15384:0:55"},"scope":17951,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":17896,"nodeType":"FunctionDefinition","src":"16220:234:55","nodes":[],"body":{"id":17895,"nodeType":"Block","src":"16306:148:55","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17870,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17864,"src":"16323:9:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":17871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16333:6:55","memberName":"length","nodeType":"MemberAccess","src":"16323:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":17872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16343:2:55","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"16323:22:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17869,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"16316:6:55","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16316:30:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17875,"nodeType":"ExpressionStatement","src":"16316:30:55"},{"assignments":[17877],"declarations":[{"constant":false,"id":17877,"mutability":"mutable","name":"hashed","nameLocation":"16364:6:55","nodeType":"VariableDeclaration","scope":17895,"src":"16356:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16356:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":17883,"initialValue":{"arguments":[{"baseExpression":{"id":17879,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17864,"src":"16383:9:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":17881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"16383:13:55","startExpression":{"hexValue":"31","id":17880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16393:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":17878,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16373:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16373:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16356:41:55"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":17890,"name":"hashed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17877,"src":"16438:6:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16430:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":17888,"name":"uint256","nodeType":"ElementaryTypeName","src":"16430:7:55","typeDescriptions":{}}},"id":17891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:15:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16422:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":17886,"name":"uint160","nodeType":"ElementaryTypeName","src":"16422:7:55","typeDescriptions":{}}},"id":17892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16422:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":17885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16414:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17884,"name":"address","nodeType":"ElementaryTypeName","src":"16414:7:55","typeDescriptions":{}}},"id":17893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16414:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17868,"id":17894,"nodeType":"Return","src":"16407:40:55"}]},"documentation":{"id":17862,"nodeType":"StructuredDocumentation","src":"16125:90:55","text":" @notice Hash a 65 byte public key and return the corresponding address."},"implemented":true,"kind":"function","modifiers":[],"name":"publicKeyToAddress","nameLocation":"16229:18:55","parameters":{"id":17865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17864,"mutability":"mutable","name":"publicKey","nameLocation":"16263:9:55","nodeType":"VariableDeclaration","scope":17896,"src":"16248:24:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17863,"name":"bytes","nodeType":"ElementaryTypeName","src":"16248:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16247:26:55"},"returnParameters":{"id":17868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17896,"src":"16297:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17866,"name":"address","nodeType":"ElementaryTypeName","src":"16297:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16296:9:55"},"scope":17951,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":17950,"nodeType":"FunctionDefinition","src":"16525:481:55","nodes":[],"body":{"id":17949,"nodeType":"Block","src":"16581:425:55","nodes":[],"statements":[{"assignments":[17903],"declarations":[{"constant":false,"id":17903,"mutability":"mutable","name":"length","nameLocation":"16599:6:55","nodeType":"VariableDeclaration","scope":17949,"src":"16591:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17902,"name":"uint256","nodeType":"ElementaryTypeName","src":"16591:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17907,"initialValue":{"expression":{"expression":{"id":17904,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"16608:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16610:18:55","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"16608:20:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16629:6:55","memberName":"length","nodeType":"MemberAccess","src":"16608:27:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16591:44:55"},{"body":{"id":17947,"nodeType":"Block","src":"16675:325:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":17914,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"16693:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16695:18:55","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"16693:20:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17917,"indexExpression":{"id":17916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"16714:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16693:23:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17918,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17899,"src":"16720:4:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16693:31:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17942,"nodeType":"IfStatement","src":"16689:242:55","trueBody":{"id":17941,"nodeType":"Block","src":"16726:205:55","statements":[{"expression":{"id":17931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17920,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"16744:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16746:18:55","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"16744:20:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17924,"indexExpression":{"id":17922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"16765:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16744:23:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":17925,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"16770:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16772:18:55","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"16770:20:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17930,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17927,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17903,"src":"16791:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16800:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16791:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16770:32:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16744:58:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17932,"nodeType":"ExpressionStatement","src":"16744:58:55"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":17933,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13853,"src":"16820:1:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$13839_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":17936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16822:18:55","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":13763,"src":"16820:20:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16841:3:55","memberName":"pop","nodeType":"MemberAccess","src":"16820:24:55","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":17938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16820:26:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17939,"nodeType":"ExpressionStatement","src":"16820:26:55"},{"id":17940,"nodeType":"Break","src":"16911:5:55"}]}},{"id":17946,"nodeType":"UncheckedBlock","src":"16944:46:55","statements":[{"expression":{"id":17944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16972:3:55","subExpression":{"id":17943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"16974:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17945,"nodeType":"ExpressionStatement","src":"16972:3:55"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"16661:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17912,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17903,"src":"16665:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16661:10:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17948,"initializationExpression":{"assignments":[17909],"declarations":[{"constant":false,"id":17909,"mutability":"mutable","name":"i","nameLocation":"16658:1:55","nodeType":"VariableDeclaration","scope":17948,"src":"16650:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17908,"name":"uint256","nodeType":"ElementaryTypeName","src":"16650:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17910,"nodeType":"VariableDeclarationStatement","src":"16650:9:55"},"nodeType":"ForStatement","src":"16645:355:55"}]},"documentation":{"id":17897,"nodeType":"StructuredDocumentation","src":"16460:60:55","text":"@notice Removes an address from the initial balance keys"},"implemented":true,"kind":"function","modifiers":[],"name":"rmAddressFromBalanceKey","nameLocation":"16534:23:55","parameters":{"id":17900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17899,"mutability":"mutable","name":"addr","nameLocation":"16566:4:55","nodeType":"VariableDeclaration","scope":17950,"src":"16558:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17898,"name":"address","nodeType":"ElementaryTypeName","src":"16558:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16557:14:55"},"returnParameters":{"id":17901,"nodeType":"ParameterList","parameters":[],"src":"16581:0:55"},"scope":17951,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":16889,"name":"ISubnetActor","nameLocations":["1308:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":8919,"src":"1308:12:55"},"id":16890,"nodeType":"InheritanceSpecifier","src":"1308:12:55"},{"baseName":{"id":16891,"name":"SubnetActorModifiers","nameLocations":["1322:20:55"],"nodeType":"IdentifierPath","referencedDeclaration":13893,"src":"1322:20:55"},"id":16892,"nodeType":"InheritanceSpecifier","src":"1322:20:55"},{"baseName":{"id":16893,"name":"ReentrancyGuard","nameLocations":["1344:15:55"],"nodeType":"IdentifierPath","referencedDeclaration":11446,"src":"1344:15:55"},"id":16894,"nodeType":"InheritanceSpecifier","src":"1344:15:55"}],"canonicalName":"SubnetActorManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[17951,11446,13893,8919],"name":"SubnetActorManagerFacet","nameLocation":"1281:23:55","scope":17952,"usedErrors":[1248,1256,6051,6055,6057,6069,6071,6083,6085,6111,6115,6121,6127,6135,6139,6143,6151,6153,6157,6163,6167,6169,6177,6183,6187,6197,11394]}],"license":"MIT OR Apache-2.0"},"id":55} \ No newline at end of file diff --git a/contracts/out/SubnetGetterFacet.sol/SubnetGetterFacet.json b/contracts/out/SubnetGetterFacet.sol/SubnetGetterFacet.json deleted file mode 100644 index 9a20f11d96..0000000000 --- a/contracts/out/SubnetGetterFacet.sol/SubnetGetterFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getSubnetDeployedByNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"latestSubnetDeployed","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"error","name":"CannotFindSubnet","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610173908161001c8239f35b600080fdfe6080604090808252600436101561001557600080fd5b600090813560e01c9081631163dca5146100ae5750639836b75f1461003957600080fd5b346100ab57816003193601126100ab57610051610122565b9060243567ffffffffffffffff81168091036100a7576001600160a01b0392831682526005602090815284832091835252829020541680156100965760209151908152f35b815163276e74a760e11b8152600490fd5b5080fd5b80fd5b8383346100ab5760203660031901126100ab576001600160a01b03908290826100d5610122565b168152600660205267ffffffffffffffff60001981848420541601166005602052828220908252602052205416908115610113576020925051908152f35b63276e74a760e11b8352600483fd5b600435906001600160a01b038216820361013857565b600080fdfea26469706673582212200501557ebfd60d81b91fcfbbadd6c1effde6d82aea52c69286e0471046eb64aa64736f6c63430008130033","sourceMap":"209:932:57:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600436101561001557600080fd5b600090813560e01c9081631163dca5146100ae5750639836b75f1461003957600080fd5b346100ab57816003193601126100ab57610051610122565b9060243567ffffffffffffffff81168091036100a7576001600160a01b0392831682526005602090815284832091835252829020541680156100965760209151908152f35b815163276e74a760e11b8152600490fd5b5080fd5b80fd5b8383346100ab5760203660031901126100ab576001600160a01b03908290826100d5610122565b168152600660205267ffffffffffffffff60001981848420541601166005602052828220908252602052205416908115610113576020925051908152f35b63276e74a760e11b8352600483fd5b600435906001600160a01b038216820361013857565b600080fdfea26469706673582212200501557ebfd60d81b91fcfbbadd6c1effde6d82aea52c69286e0471046eb64aa64736f6c63430008130033","sourceMap":"209:932:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;209:932:57;;;;;1024:9;209:932;;;;;;;;;;;;;;;;1061:20;;1057:76;;209:932;;;;;;;1057:76;209:932;;-1:-1:-1;;;1104:18:57;;209:932;;1104:18;209:932;;;;;;;;;;;;;;;-1:-1:-1;;209:932:57;;;;-1:-1:-1;;;;;209:932:57;;;;;;:::i;:::-;;;;530:12;209:932;;;;;;;;;;;;;688:9;209:932;;;;;;;;;;;;;725:20;;;721:76;;209:932;;;;;;;;721:76;-1:-1:-1;;;768:18:57;;209:932;768:18;;209:932;;;;-1:-1:-1;;;;;209:932:57;;;;;;:::o;:::-;;;","linkReferences":{}},"methodIdentifiers":{"getSubnetDeployedByNonce(address,uint64)":"9836b75f","latestSubnetDeployed(address)":"1163dca5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotFindSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/SubnetGetterFacet.sol\":\"SubnetGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x9dddc95bc041f95b808a5381e697326854b7f2cf4faf42294c1ffec6ea2b7e2b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d8fe7c4b1b328dc2df2eca47621aa523fb43dce113b1b937ac320c32258b79d4\",\"dweb:/ipfs/QmdE2zr3oLVRMv4N63TVtz99tNLe8znYKSPGomxsFjy14d\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CannotFindSubnet"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedByNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"latestSubnetDeployed","outputs":[{"internalType":"address","name":"subnet","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getSubnetDeployedByNonce(address,uint64)":{"notice":"Returns the address of a subnet actor deployed for a specific nonce by a user"},"latestSubnetDeployed(address)":{"notice":"Returns the address of the latest subnet actor deployed by a user"}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/SubnetGetterFacet.sol":"SubnetGetterFacet"},"libraries":{},"viaIR":true},"sources":{"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x9dddc95bc041f95b808a5381e697326854b7f2cf4faf42294c1ffec6ea2b7e2b","urls":["bzz-raw://d8fe7c4b1b328dc2df2eca47621aa523fb43dce113b1b937ac320c32258b79d4","dweb:/ipfs/QmdE2zr3oLVRMv4N63TVtz99tNLe8znYKSPGomxsFjy14d"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","id":18162,"exportedSymbols":{"CannotFindSubnet":[6193],"SubnetGetterFacet":[18161],"SubnetRegistryActorStorage":[13923]},"nodeType":"SourceUnit","src":"46:1096:57","nodes":[{"id":18081,"nodeType":"PragmaDirective","src":"46:23:57","nodes":[],"literals":["solidity","0.8",".19"]},{"id":18083,"nodeType":"ImportDirective","src":"70:79:57","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":18162,"sourceUnit":13924,"symbolAliases":[{"foreign":{"id":18082,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"78:26:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":18085,"nodeType":"ImportDirective","src":"150:57:57","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":18162,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":18084,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"158:16:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":18161,"nodeType":"ContractDefinition","src":"209:932:57","nodes":[{"id":18088,"nodeType":"VariableDeclaration","src":"295:37:57","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"331:1:57","scope":18161,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":18087,"nodeType":"UserDefinedTypeName","pathNode":{"id":18086,"name":"SubnetRegistryActorStorage","nameLocations":["295:26:57"],"nodeType":"IdentifierPath","referencedDeclaration":13923,"src":"295:26:57"},"referencedDeclaration":13923,"src":"295:26:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":18129,"nodeType":"FunctionDefinition","src":"421:382:57","nodes":[],"body":{"id":18128,"nodeType":"Block","src":"505:298:57","nodes":[],"statements":[{"assignments":[18097],"declarations":[{"constant":false,"id":18097,"mutability":"mutable","name":"nonce","nameLocation":"522:5:57","nodeType":"VariableDeclaration","scope":18128,"src":"515:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18096,"name":"uint64","nodeType":"ElementaryTypeName","src":"515:6:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":18102,"initialValue":{"baseExpression":{"expression":{"id":18098,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18088,"src":"530:1:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"532:10:57","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":13922,"src":"530:12:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":18101,"indexExpression":{"id":18100,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18091,"src":"543:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"530:19:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"515:34:57"},{"id":18107,"nodeType":"UncheckedBlock","src":"624:45:57","statements":[{"expression":{"id":18105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18103,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18097,"src":"648:5:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":18104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"657:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"648:10:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":18106,"nodeType":"ExpressionStatement","src":"648:10:57"}]},{"expression":{"id":18115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18108,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"679:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":18109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18088,"src":"688:1:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"690:7:57","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":13917,"src":"688:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":18112,"indexExpression":{"id":18111,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18091,"src":"698:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"688:16:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":18114,"indexExpression":{"id":18113,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18097,"src":"705:5:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"688:23:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"679:32:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18116,"nodeType":"ExpressionStatement","src":"679:32:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18117,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"725:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"735:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18118,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:57","typeDescriptions":{}}},"id":18121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"735:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"725:20:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18127,"nodeType":"IfStatement","src":"721:76:57","trueBody":{"id":18126,"nodeType":"Block","src":"747:50:57","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18123,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"768:16:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"768:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18125,"nodeType":"RevertStatement","src":"761:25:57"}]}}]},"documentation":{"id":18089,"nodeType":"StructuredDocumentation","src":"339:77:57","text":"@notice Returns the address of the latest subnet actor deployed by a user"},"functionSelector":"1163dca5","implemented":true,"kind":"function","modifiers":[],"name":"latestSubnetDeployed","nameLocation":"430:20:57","parameters":{"id":18092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18091,"mutability":"mutable","name":"owner","nameLocation":"459:5:57","nodeType":"VariableDeclaration","scope":18129,"src":"451:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18090,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"450:15:57"},"returnParameters":{"id":18095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18094,"mutability":"mutable","name":"subnet","nameLocation":"497:6:57","nodeType":"VariableDeclaration","scope":18129,"src":"489:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18093,"name":"address","nodeType":"ElementaryTypeName","src":"489:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"488:16:57"},"scope":18161,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":18160,"nodeType":"FunctionDefinition","src":"903:236:57","nodes":[],"body":{"id":18159,"nodeType":"Block","src":"1005:134:57","nodes":[],"statements":[{"expression":{"id":18146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18139,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18137,"src":"1015:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":18140,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18088,"src":"1024:1:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":18141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1026:7:57","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":13917,"src":"1024:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":18143,"indexExpression":{"id":18142,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18132,"src":"1034:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1024:16:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":18145,"indexExpression":{"id":18144,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18134,"src":"1041:5:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1024:23:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1015:32:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18147,"nodeType":"ExpressionStatement","src":"1015:32:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18148,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18137,"src":"1061:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1079:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1071:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18149,"name":"address","nodeType":"ElementaryTypeName","src":"1071:7:57","typeDescriptions":{}}},"id":18152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1071:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1061:20:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18158,"nodeType":"IfStatement","src":"1057:76:57","trueBody":{"id":18157,"nodeType":"Block","src":"1083:50:57","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18154,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"1104:16:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18156,"nodeType":"RevertStatement","src":"1097:25:57"}]}}]},"documentation":{"id":18130,"nodeType":"StructuredDocumentation","src":"809:89:57","text":"@notice Returns the address of a subnet actor deployed for a specific nonce by a user"},"functionSelector":"9836b75f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedByNonce","nameLocation":"912:24:57","parameters":{"id":18135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18132,"mutability":"mutable","name":"owner","nameLocation":"945:5:57","nodeType":"VariableDeclaration","scope":18160,"src":"937:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18131,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18134,"mutability":"mutable","name":"nonce","nameLocation":"959:5:57","nodeType":"VariableDeclaration","scope":18160,"src":"952:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18133,"name":"uint64","nodeType":"ElementaryTypeName","src":"952:6:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"936:29:57"},"returnParameters":{"id":18138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18137,"mutability":"mutable","name":"subnet","nameLocation":"997:6:57","nodeType":"VariableDeclaration","scope":18160,"src":"989:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18136,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"988:16:57"},"scope":18161,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18161],"name":"SubnetGetterFacet","nameLocation":"218:17:57","scope":18162,"usedErrors":[6193]}],"license":"MIT OR Apache-2.0"},"id":57} \ No newline at end of file diff --git a/contracts/out/SubnetIDHelper.sol/SubnetIDHelper.json b/contracts/out/SubnetIDHelper.sol/SubnetIDHelper.json deleted file mode 100644 index 57836993b9..0000000000 --- a/contracts/out/SubnetIDHelper.sol/SubnetIDHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"commonParent","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"createSubnetId","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"actor","type":"address","internalType":"address"}],"outputs":[{"name":"newSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"down","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"equals","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"getActor","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAddress","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getParentSubnet","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"isEmpty","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isRoot","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"error","name":"DifferentRootNetwork","inputs":[]},{"type":"error","name":"EmptySubnet","inputs":[]},{"type":"error","name":"InvalidRoute","inputs":[]},{"type":"error","name":"NoAddressForRoot","inputs":[]},{"type":"error","name":"NoParentForSubnet","inputs":[]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523461001a57610f269081610020823930815050f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea2646970667358221220f41dea6fe56ff0d45442405600894447b15dfbe5727dfd5f51575bda16ff49b264736f6c63430008130033","sourceMap":"272:5215:47:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea2646970667358221220f41dea6fe56ff0d45442405600894447b15dfbe5727dfd5f51575bda16ff49b264736f6c63430008130033","sourceMap":"272:5215:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:12;272:5215;581:12;;;272:5215;;;;;;;;;;5430:14;272:5215;5430:14;;;2749:12;272:5215;2749:12;;;272:5215;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1413:11:47;;;:::i;:::-;272:5215;;;12559:8:11;12550:17;;;;12546:103;;272:5215:47;12675:8:11;;12666:17;;;;12662:103;;272:5215:47;12791:8:11;;12782:17;;;;12778:103;;272:5215:47;12907:7:11;;12898:16;;;;12894:100;;272:5215:47;13020:7:11;;13011:16;;;;13007:100;;272:5215:47;13124:16:11;13133:7;13124:16;;;13120:100;;272:5215:47;13246:7:11;13237:16;;;;13233:66;;272:5215:47;748:1:8;272:5215:47;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;890:76:8;272:5215:47;;;;;;;;;;;;890:76:8;;;979:280;-1:-1:-1;;272:5215:47;;-1:-1:-1;;;1084:93:8;;;;272:5215:47;1084:93:8;272:5215:47;1227:10:8;;;1223:21;;979:280;;;;1223:21;1239:5;;;272:5215:47;1373:53;1239:5:8;272:5215:47;1239:5:8;272:5215:47;;1373:53;;;-1:-1:-1;;;272:5215:47;1373:53;;272:5215;;;;;;;;;:::i;:::-;;;1373:53;;;;;;;;;:::i;:::-;1460:12;;272:5215;1460:12;;;;:::i;:::-;1494:9;;272:5215;1489:226;1505:16;;;;;;272:5215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1494:9;272:5215;;;;890:76:8;272:5215:47;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;272:5215:47;;;;;748:1:8;272:5215:47;;;;;;;:::i;:::-;1460:12;1615:15;;:12;272:5215;1460:12;;1615;;:::i;:::-;-1:-1:-1;;;;;272:5215:47;;1615:15;:::i;:::-;;:::i;:::-;272:5215;2072:26:8;;272:5215:47;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;;;;;;;;;;;2165:15:8;272:5215:47;;;2165:15:8;272:5215:47;;748:1:8;272:5215:47;;;;2190:15:8;890:76;272:5215:47;;2190:15:8;272:5215:47;2248:5:8;748:1;2248:5;;;;2366:15;2362:96;;272:5215:47;;;;748:1:8;272:5215:47;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;1494:9;;;;2362:96:8;279:18;272:5215:47;;;2404:43:8;;;;;;272:5215:47;2404:43:8;;272:5215:47;344:2:8;279:18;;;272:5215:47;2404:43:8;2255:3;2295:16;2286:26;2308:3;2295:16;;2286:26;;;;272:5215:47;;;;;;;-1:-1:-1;;;2308:3:8;2295:16;;2286:26;272:5215:47;;;;;2274:38:8;272:5215:47;279:18:8;2255:3;272:5215:47;;;;-1:-1:-1;;272:5215:47;2220:26:8;;272:5215:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13233:66:11;272:5215:47;13283:1:11;272:5215:47;13233:66:11;;;13120:100;13133:7;13204:1;272:5215:47;;;;13120:100:11;;;13007;272:5215:47;;;;;13007:100:11;;;;12894;12978:1;272:5215:47;;;;12894:100:11;;;;12778:103;12864:2;272:5215:47;;;;12778:103:11;;;;12662;12748:2;272:5215:47;;;;12662:103:11;;;;12546;272:5215:47;;;;;;12546:103:11;;;;272:5215:47;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;272:5215:47;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;:::i;:::-;2021:11;;;;:::i;:::-;272:5215;;;2074:12;;;;;;:::i;:::-;272:5215;;;;;;;;;;;;;2060:38;;;:::i;:::-;2042:15;272:5215;2042:15;;:56;;;2130:12;;;;:::i;:::-;2164:9;;;272:5215;2175:15;;;;;;2324;;;;272:5215;;;;;;;;;;;;;;2324:51;;;;:::i;:::-;272:5215;;;;;;;;:::i;:::-;;;;2164:9;2229:12;:15;;:12;;;;;;:::i;:::-;:15;;:::i;:::-;2208;:36;:15;;;:36;:::i;:::-;272:5215;;;;;2164:9;;272:5215;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;2749:12;272:5215;;;:::i;:::-;2749:12;;;;;;:::i;:::-;:24;;;:44;;;;272:5215;;;;;;;;;;2749:44;-1:-1:-1;;;;;2777:11:47;;;;;:::i;:::-;272:5215;2777:16;;2749:44;;;272:5215;5430:14;272:5215;;;:::i;:::-;5430:14;;;;;;:::i;:::-;:26;;;:48;;;;272:5215;;;;;;;;;5430:48;-1:-1:-1;;;;;5460:13:47;;;;;:::i;:::-;272:5215;5460:18;5430:48;;;272:5215;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;581:12;272:5215;;;:::i;:::-;581:12;;;272:5215;615:11;;;611:67;;694:12;-1:-1:-1;;272:5215:47;;;;;;;581:12;;-1:-1:-1;;;;;272:5215:47;694:24;;272:5215;694:24;:::i;:::-;272:5215;;;;;;;;611:67;272:5215;;-1:-1:-1;;;649:18:47;;272:5215;;649:18;272:5215;;;;:::i;:::-;;;:::i;:::-;;832:12;;;;;;272:5215;832:24;828:81;;958:12;;272:5215;-1:-1:-1;;272:5215:47;;;;;;;944:38;;;:::i;:::-;272:5215;;;;1052:15;;;;;;272:5215;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;:::i;:::-;;;832:12;1198:43;;272:5215;;;;;;;;:::i;1041:9::-;272:5215;;;;;;;1096:15;:12;;;:15;:::i;:::-;272:5215;;1085:26;;;;:::i;:::-;272:5215;;1041:9;;828:81;272:5215;;-1:-1:-1;;;879:19:47;;272:5215;;879:19;272:5215;;;;:::i;:::-;;;:::i;:::-;;4637:12;;;:::i;:::-;-1:-1:-1;;;;;4653:12:47;;;;;;:::i;:::-;272:5215;;;4637:28;4633:88;;4734:13;;;;;;;:::i;:::-;;4758;;;-1:-1:-1;4758:13:47;;;;:::i;:::-;4734:44;;;;;4730:96;;272:5215;4884:13;;;;;:::i;:::-;4914:141;;;;4921:22;;;:62;;;4914:141;4921:62;;;272:5215;;4914:141;;4921:62;;;;;272:5215;;;;;;;;;;5104:16;;;:::i;:::-;5136:9;272:5215;5147:5;;;;;;272:5215;5300:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;4734:13;5284:44;;272:5215;;;;;;;;:::i;5136:9::-;5181:13;:16;;:13;;;;;;:::i;:16::-;5170:27;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:47;;;;;;5136:9;;4921:62;4947:13;:16;;:13;;;;;:::i;:16::-;4967:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:47;;;4967:16;;;;272:5215;;4967:16;:::i;:::-;272:5215;;;4947:36;4921:62;;4730:96;272:5215;;-1:-1:-1;;;4801:14:47;;272:5215;;4801:14;4633:88;272:5215;;-1:-1:-1;;;4688:22:47;;272:5215;;4688:22;272:5215;-1:-1:-1;;272:5215:47;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:47;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:47;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:47;;;;;;:::o;:::-;-1:-1:-1;;272:5215:47;;;;;;-1:-1:-1;272:5215:47;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;272:5215:47;;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;272:5215:47;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;272:5215:47;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:47;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:47;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:47;;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:47;;;;;;-1:-1:-1;;272:5215:47;;;;:::o;1750:125::-;272:5215;;1849:18;;;;272:5215;;;1849:18;-1:-1:-1;;;;;272:5215:47;;;;;;;1849:18;272:5215;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;272:5215:47;;;;;;1849:18;;;;;;;272:5215;;1849:18;;;;;;:::i;:::-;272:5215;1839:29;;1750:125;:::o;272:5215::-;;;-1:-1:-1;272:5215:47;;;;;;;-1:-1:-1;;;;;272:5215:47;;;:::i;:::-;;;;;;;;;;;;;;;;;2388:217;2476:12;;;;;;;;:::i;:::-;:24;;;2472:72;;2574:12;2561;;;;:::i;:::-;2574;;;;:::i;:::-;-1:-1:-1;;272:5215:47;;;-1:-1:-1;272:5215:47;;;;2561:37;;;;;:::i;:::-;2388:217;:::o;2472:72::-;2516:17;;2499:1;2516:17;:::o;2806:332::-;2917:12;;;:::i;:::-;-1:-1:-1;;;;;2933:12:47;;;;:::i;:::-;272:5215;;;2917:28;2913:71;;2997:13;;;;;;:::i;:::-;3021;;;2997;3021;;;;:::i;:::-;2997:44;;;;2993:87;;3097:15;3116;3097;;:::i;:::-;3116;;:::i;:::-;3097:34;2806:332;:::o;3239:921::-;;272:5215;;:::i;:::-;;3367:12;;;:::i;:::-;272:5215;-1:-1:-1;;;;;3383:12:47;;;;;;:::i;:::-;272:5215;;;3367:28;3363:110;;3483:9;3531:13;;;;-1:-1:-1;3531:13:47;;3483:9;3531:13;:::i;:::-;3590;;;3531;3590;;;;;;:::i;:::-;3620:167;;;;3627:22;;;:48;;;3620:167;3627:88;;;3620:167;3627:88;;;272:5215;;3620:167;;3627:88;;;;;;;;;3800:6;;3796:99;;3930:16;;;:::i;:::-;3961:9;-1:-1:-1;3972:5:47;;;;;;4125:12;;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;3531:13;4109:44;;272:5215;3239:921;:::o;3961:9::-;4006:13;:16;;272:5215;4006:13;;;;;:::i;:16::-;3995:27;;;;:::i;:::-;272:5215;;;;;;;;;;3961:9;;3796:99;3845:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;-1:-1:-1;272:5215:47;;;;;;;;:::i;3627:88::-;3679:13;:16;;:13;;;;;:::i;:16::-;3699:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:47;;;3699:16;;;;272:5215;;3699:16;:::i;:::-;272:5215;;;3679:36;3627:88;;:48;3653:22;;;;3627:48;;3363:110;272:5215;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:47;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:47;;;3418:44;;272:5215;3411:51;:::o","linkReferences":{}},"methodIdentifiers":{"commonParent(SubnetID,SubnetID)":"39991266","createSubnetId(SubnetID,address)":"aa5106cb","down(SubnetID,SubnetID)":"089032d5","equals(SubnetID,SubnetID)":"c836244d","getActor(SubnetID)":"59feac42","getAddress(SubnetID)":"138e13fc","getParentSubnet(SubnetID)":"118e84ee","isEmpty(SubnetID)":"6099e898","isRoot(SubnetID)":"862a88f8","toHash(SubnetID)":"90ba52cf","toString(SubnetID)":"e4ebe92c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DifferentRootNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptySubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoAddressForRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoParentForSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"commonParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"createSubnetId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"newSubnet\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"down\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"equals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getParentSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"isEmpty\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"isRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"down(SubnetID,SubnetID)\":{\"details\":\"Revert will be triggered if subnet2 is an invalid input.\"}},\"title\":\"Helper library for manipulating SubnetID struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commonParent(SubnetID,SubnetID)\":{\"notice\":\"Computes the common parent of the current subnet and the one given as argument\"},\"down(SubnetID,SubnetID)\":{\"notice\":\"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SubnetIDHelper.sol\":\"SubnetIDHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DifferentRootNetwork"},{"inputs":[],"type":"error","name":"EmptySubnet"},{"inputs":[],"type":"error","name":"InvalidRoute"},{"inputs":[],"type":"error","name":"NoAddressForRoot"},{"inputs":[],"type":"error","name":"NoParentForSubnet"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"commonParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"actor","type":"address"}],"stateMutability":"pure","type":"function","name":"createSubnetId","outputs":[{"internalType":"struct SubnetID","name":"newSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"down","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"equals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getActor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getParentSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isEmpty","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"down(SubnetID,SubnetID)":{"details":"Revert will be triggered if subnet2 is an invalid input."}},"version":1},"userdoc":{"kind":"user","methods":{"commonParent(SubnetID,SubnetID)":{"notice":"Computes the common parent of the current subnet and the one given as argument"},"down(SubnetID,SubnetID)":{"notice":"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SubnetIDHelper.sol":"SubnetIDHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SubnetIDHelper.sol","id":14631,"exportedSymbols":{"Strings":[1900],"SubnetID":[16209],"SubnetIDHelper":[14630]},"nodeType":"SourceUnit","src":"46:5442:47","nodes":[{"id":14021,"nodeType":"PragmaDirective","src":"46:23:47","nodes":[],"literals":["solidity","0.8",".19"]},{"id":14023,"nodeType":"ImportDirective","src":"71:47:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":14631,"sourceUnit":16342,"symbolAliases":[{"foreign":{"id":14022,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"79:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14025,"nodeType":"ImportDirective","src":"119:65:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"openzeppelin-contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":14631,"sourceUnit":1901,"symbolAliases":[{"foreign":{"id":14024,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"127:7:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14630,"nodeType":"ContractDefinition","src":"272:5215:47","nodes":[{"id":14029,"nodeType":"UsingForDirective","src":"301:26:47","nodes":[],"global":false,"libraryName":{"id":14027,"name":"Strings","nameLocations":["307:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":1900,"src":"307:7:47"},"typeName":{"id":14028,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":14031,"nodeType":"ErrorDefinition","src":"333:26:47","nodes":[],"errorSelector":"2f10c6c1","name":"NoParentForSubnet","nameLocation":"339:17:47","parameters":{"id":14030,"nodeType":"ParameterList","parameters":[],"src":"356:2:47"}},{"id":14033,"nodeType":"ErrorDefinition","src":"364:25:47","nodes":[],"errorSelector":"a15c1d98","name":"NoAddressForRoot","nameLocation":"370:16:47","parameters":{"id":14032,"nodeType":"ParameterList","parameters":[],"src":"386:2:47"}},{"id":14035,"nodeType":"ErrorDefinition","src":"394:20:47","nodes":[],"errorSelector":"79e7ca82","name":"EmptySubnet","nameLocation":"400:11:47","parameters":{"id":14034,"nodeType":"ParameterList","parameters":[],"src":"411:2:47"}},{"id":14037,"nodeType":"ErrorDefinition","src":"419:29:47","nodes":[],"errorSelector":"71859355","name":"DifferentRootNetwork","nameLocation":"425:20:47","parameters":{"id":14036,"nodeType":"ParameterList","parameters":[],"src":"445:2:47"}},{"id":14039,"nodeType":"ErrorDefinition","src":"453:21:47","nodes":[],"errorSelector":"84e505d2","name":"InvalidRoute","nameLocation":"459:12:47","parameters":{"id":14038,"nodeType":"ParameterList","parameters":[],"src":"471:2:47"}},{"id":14069,"nodeType":"FunctionDefinition","src":"480:245:47","nodes":[],"body":{"id":14068,"nodeType":"Block","src":"554:171:47","nodes":[],"statements":[{"assignments":[14048],"declarations":[{"constant":false,"id":14048,"mutability":"mutable","name":"length","nameLocation":"572:6:47","nodeType":"VariableDeclaration","scope":14068,"src":"564:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14047,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14052,"initialValue":{"expression":{"expression":{"id":14049,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"581:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"588:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"581:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:6:47","memberName":"length","nodeType":"MemberAccess","src":"581:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"564:36:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14053,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14048,"src":"615:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"625:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14060,"nodeType":"IfStatement","src":"611:67:47","trueBody":{"id":14059,"nodeType":"Block","src":"628:50:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14056,"name":"NoAddressForRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14033,"src":"649:16:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"649:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14058,"nodeType":"RevertStatement","src":"642:25:47"}]}},{"expression":{"baseExpression":{"expression":{"id":14061,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"694:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"701:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"694:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14066,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14063,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14048,"src":"707:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"716:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"707:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"694:24:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14046,"id":14067,"nodeType":"Return","src":"687:31:47"}]},"functionSelector":"138e13fc","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"489:10:47","parameters":{"id":14043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14042,"mutability":"mutable","name":"subnet","nameLocation":"516:6:47","nodeType":"VariableDeclaration","scope":14069,"src":"500:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":14041,"nodeType":"UserDefinedTypeName","pathNode":{"id":14040,"name":"SubnetID","nameLocations":["500:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"500:8:47"},"referencedDeclaration":16209,"src":"500:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"499:24:47"},"returnParameters":{"id":14046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14069,"src":"545:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14044,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"544:9:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14136,"nodeType":"FunctionDefinition","src":"731:517:47","nodes":[],"body":{"id":14135,"nodeType":"Block","src":"818:430:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14078,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14072,"src":"832:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"839:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"832:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:6:47","memberName":"length","nodeType":"MemberAccess","src":"832:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"832:24:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14087,"nodeType":"IfStatement","src":"828:81:47","trueBody":{"id":14086,"nodeType":"Block","src":"858:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14083,"name":"NoParentForSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14031,"src":"879:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14085,"nodeType":"RevertStatement","src":"872:26:47"}]}},{"assignments":[14092],"declarations":[{"constant":false,"id":14092,"mutability":"mutable","name":"route","nameLocation":"936:5:47","nodeType":"VariableDeclaration","scope":14135,"src":"919:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14090,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14091,"nodeType":"ArrayTypeName","src":"919:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":14102,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14096,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14072,"src":"958:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"958:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"971:6:47","memberName":"length","nodeType":"MemberAccess","src":"958:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"980:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"958:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"944:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":14093,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14094,"nodeType":"ArrayTypeName","src":"948:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":14101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"944:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"919:63:47"},{"assignments":[14104],"declarations":[{"constant":false,"id":14104,"mutability":"mutable","name":"routeLength","nameLocation":"1000:11:47","nodeType":"VariableDeclaration","scope":14135,"src":"992:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14103,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14107,"initialValue":{"expression":{"id":14105,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14092,"src":"1014:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:6:47","memberName":"length","nodeType":"MemberAccess","src":"1014:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"992:34:47"},{"body":{"id":14127,"nodeType":"Block","src":"1071:110:47","statements":[{"expression":{"id":14121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14114,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14092,"src":"1085:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14116,"indexExpression":{"id":14115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"1091:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1085:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":14117,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14072,"src":"1096:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1103:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"1096:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14120,"indexExpression":{"id":14119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"1109:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1096:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1085:26:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14122,"nodeType":"ExpressionStatement","src":"1085:26:47"},{"id":14126,"nodeType":"UncheckedBlock","src":"1125:46:47","statements":[{"expression":{"id":14124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1153:3:47","subExpression":{"id":14123,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"1155:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14125,"nodeType":"ExpressionStatement","src":"1153:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14111,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"1052:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14112,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"1056:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14128,"initializationExpression":{"assignments":[14109],"declarations":[{"constant":false,"id":14109,"mutability":"mutable","name":"i","nameLocation":"1049:1:47","nodeType":"VariableDeclaration","scope":14128,"src":"1041:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14108,"name":"uint256","nodeType":"ElementaryTypeName","src":"1041:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14110,"nodeType":"VariableDeclarationStatement","src":"1041:9:47"},"nodeType":"ForStatement","src":"1036:145:47"},{"expression":{"arguments":[{"expression":{"id":14130,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14072,"src":"1214:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1221:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"1214:11:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":14132,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14092,"src":"1234:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":14129,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"1198:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$16209_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":14133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1208:4:47","1227:5:47"],"names":["root","route"],"nodeType":"FunctionCall","src":"1198:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":14077,"id":14134,"nodeType":"Return","src":"1191:50:47"}]},"functionSelector":"118e84ee","implemented":true,"kind":"function","modifiers":[],"name":"getParentSubnet","nameLocation":"740:15:47","parameters":{"id":14073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14072,"mutability":"mutable","name":"subnet","nameLocation":"772:6:47","nodeType":"VariableDeclaration","scope":14136,"src":"756:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":14071,"nodeType":"UserDefinedTypeName","pathNode":{"id":14070,"name":"SubnetID","nameLocations":["756:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"756:8:47"},"referencedDeclaration":16209,"src":"756:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"755:24:47"},"returnParameters":{"id":14077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14136,"src":"801:15:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":14075,"nodeType":"UserDefinedTypeName","pathNode":{"id":14074,"name":"SubnetID","nameLocations":["801:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"801:8:47"},"referencedDeclaration":16209,"src":"801:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"800:17:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14203,"nodeType":"FunctionDefinition","src":"1254:490:47","nodes":[],"body":{"id":14202,"nodeType":"Block","src":"1334:410:47","nodes":[],"statements":[{"assignments":[14145],"declarations":[{"constant":false,"id":14145,"mutability":"mutable","name":"route","nameLocation":"1358:5:47","nodeType":"VariableDeclaration","scope":14202,"src":"1344:19:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14144,"name":"string","nodeType":"ElementaryTypeName","src":"1344:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":14158,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2f72","id":14150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1390:4:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},"value":"/r"},{"arguments":[{"expression":{"id":14153,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14139,"src":"1413:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1420:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"1413:11:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":14151,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"1396:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$1900_$","typeString":"type(library Strings)"}},"id":14152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1404:8:47","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1713,"src":"1396:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1373:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1377:12:47","memberName":"encodePacked","nodeType":"MemberAccess","src":"1373:16:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1366:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":14146,"name":"string","nodeType":"ElementaryTypeName","src":"1366:6:47","typeDescriptions":{}}},"id":14157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:61:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:83:47"},{"assignments":[14160],"declarations":[{"constant":false,"id":14160,"mutability":"mutable","name":"subnetLength","nameLocation":"1445:12:47","nodeType":"VariableDeclaration","scope":14202,"src":"1437:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1437:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14164,"initialValue":{"expression":{"expression":{"id":14161,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14139,"src":"1460:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1467:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"1460:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:6:47","memberName":"length","nodeType":"MemberAccess","src":"1460:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1437:42:47"},{"body":{"id":14198,"nodeType":"Block","src":"1525:190:47","statements":[{"expression":{"id":14178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14171,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1539:5:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14175,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1561:5:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":14176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1568:3:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"expression":{"id":14173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1547:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":14172,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:47","typeDescriptions":{}}},"id":14174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1554:6:47","memberName":"concat","nodeType":"MemberAccess","src":"1547:13:47","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":14177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1539:33:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":14179,"nodeType":"ExpressionStatement","src":"1539:33:47"},{"expression":{"id":14192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14180,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1586:5:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14184,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1608:5:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":14185,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14139,"src":"1615:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"1615:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14188,"indexExpression":{"id":14187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14166,"src":"1628:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1615:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1631:11:47","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":1862,"src":"1615:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$attached_to$_t_address_$","typeString":"function (address) pure returns (string memory)"}},"id":14190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":14181,"name":"string","nodeType":"ElementaryTypeName","src":"1594:6:47","typeDescriptions":{}}},"id":14183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1601:6:47","memberName":"concat","nodeType":"MemberAccess","src":"1594:13:47","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":14191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:51:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1586:59:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":14193,"nodeType":"ExpressionStatement","src":"1586:59:47"},{"id":14197,"nodeType":"UncheckedBlock","src":"1659:46:47","statements":[{"expression":{"id":14195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1687:3:47","subExpression":{"id":14194,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14166,"src":"1689:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14196,"nodeType":"ExpressionStatement","src":"1687:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14166,"src":"1505:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14169,"name":"subnetLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14160,"src":"1509:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1505:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14199,"initializationExpression":{"assignments":[14166],"declarations":[{"constant":false,"id":14166,"mutability":"mutable","name":"i","nameLocation":"1502:1:47","nodeType":"VariableDeclaration","scope":14199,"src":"1494:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14167,"nodeType":"VariableDeclarationStatement","src":"1494:9:47"},"nodeType":"ForStatement","src":"1489:226:47"},{"expression":{"id":14200,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1732:5:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14143,"id":14201,"nodeType":"Return","src":"1725:12:47"}]},"functionSelector":"e4ebe92c","implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1263:8:47","parameters":{"id":14140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14139,"mutability":"mutable","name":"subnet","nameLocation":"1290:6:47","nodeType":"VariableDeclaration","scope":14203,"src":"1272:24:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14138,"nodeType":"UserDefinedTypeName","pathNode":{"id":14137,"name":"SubnetID","nameLocations":["1272:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1272:8:47"},"referencedDeclaration":16209,"src":"1272:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1271:26:47"},"returnParameters":{"id":14143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14203,"src":"1319:13:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14141,"name":"string","nodeType":"ElementaryTypeName","src":"1319:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1318:15:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14219,"nodeType":"FunctionDefinition","src":"1750:125:47","nodes":[],"body":{"id":14218,"nodeType":"Block","src":"1822:53:47","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":14214,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14206,"src":"1860:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":14212,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1849:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1853:6:47","memberName":"encode","nodeType":"MemberAccess","src":"1849:10:47","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14211,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1839:9:47","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":14210,"id":14217,"nodeType":"Return","src":"1832:36:47"}]},"functionSelector":"90ba52cf","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1759:6:47","parameters":{"id":14207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14206,"mutability":"mutable","name":"subnet","nameLocation":"1784:6:47","nodeType":"VariableDeclaration","scope":14219,"src":"1766:24:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14205,"nodeType":"UserDefinedTypeName","pathNode":{"id":14204,"name":"SubnetID","nameLocations":["1766:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1766:8:47"},"referencedDeclaration":16209,"src":"1766:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1765:26:47"},"returnParameters":{"id":14210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14209,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14219,"src":"1813:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1812:9:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14293,"nodeType":"FunctionDefinition","src":"1881:501:47","nodes":[],"body":{"id":14292,"nodeType":"Block","src":"1994:388:47","nodes":[],"statements":[{"expression":{"id":14235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14230,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"2004:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2014:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2004:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14233,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"2021:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2021:11:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2004:28:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14236,"nodeType":"ExpressionStatement","src":"2004:28:47"},{"expression":{"id":14249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14237,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"2042:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2052:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2042:15:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14243,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"2074:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2081:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2074:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:6:47","memberName":"length","nodeType":"MemberAccess","src":"2074:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2074:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2060:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":14240,"name":"address","nodeType":"ElementaryTypeName","src":"2064:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14241,"nodeType":"ArrayTypeName","src":"2064:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":14248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2042:56:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14250,"nodeType":"ExpressionStatement","src":"2042:56:47"},{"assignments":[14252],"declarations":[{"constant":false,"id":14252,"mutability":"mutable","name":"routeLength","nameLocation":"2116:11:47","nodeType":"VariableDeclaration","scope":14292,"src":"2108:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14251,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14256,"initialValue":{"expression":{"expression":{"id":14253,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"2130:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2130:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:47","memberName":"length","nodeType":"MemberAccess","src":"2130:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2108:41:47"},{"body":{"id":14278,"nodeType":"Block","src":"2194:120:47","statements":[{"expression":{"id":14272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":14263,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"2208:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2208:15:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14267,"indexExpression":{"id":14265,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14258,"src":"2224:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2208:18:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":14268,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"2229:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2236:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2229:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14271,"indexExpression":{"id":14270,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14258,"src":"2242:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2229:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2208:36:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14273,"nodeType":"ExpressionStatement","src":"2208:36:47"},{"id":14277,"nodeType":"UncheckedBlock","src":"2258:46:47","statements":[{"expression":{"id":14275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2286:3:47","subExpression":{"id":14274,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14258,"src":"2288:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14276,"nodeType":"ExpressionStatement","src":"2286:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14258,"src":"2175:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14261,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14252,"src":"2179:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2175:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14279,"initializationExpression":{"assignments":[14258],"declarations":[{"constant":false,"id":14258,"mutability":"mutable","name":"i","nameLocation":"2172:1:47","nodeType":"VariableDeclaration","scope":14279,"src":"2164:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14257,"name":"uint256","nodeType":"ElementaryTypeName","src":"2164:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14259,"nodeType":"VariableDeclarationStatement","src":"2164:9:47"},"nodeType":"ForStatement","src":"2159:155:47"},{"expression":{"id":14290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":14280,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"2324:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2334:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2324:15:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14288,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14282,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"2340:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"id":14283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2350:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2340:15:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:6:47","memberName":"length","nodeType":"MemberAccess","src":"2340:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2365:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2340:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2324:43:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14289,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14224,"src":"2370:5:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:51:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14291,"nodeType":"ExpressionStatement","src":"2324:51:47"}]},"functionSelector":"aa5106cb","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetId","nameLocation":"1890:14:47","parameters":{"id":14225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14222,"mutability":"mutable","name":"subnet","nameLocation":"1923:6:47","nodeType":"VariableDeclaration","scope":14293,"src":"1905:24:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14221,"nodeType":"UserDefinedTypeName","pathNode":{"id":14220,"name":"SubnetID","nameLocations":["1905:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1905:8:47"},"referencedDeclaration":16209,"src":"1905:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":14224,"mutability":"mutable","name":"actor","nameLocation":"1939:5:47","nodeType":"VariableDeclaration","scope":14293,"src":"1931:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14223,"name":"address","nodeType":"ElementaryTypeName","src":"1931:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1904:41:47"},"returnParameters":{"id":14229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14228,"mutability":"mutable","name":"newSubnet","nameLocation":"1983:9:47","nodeType":"VariableDeclaration","scope":14293,"src":"1967:25:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":14227,"nodeType":"UserDefinedTypeName","pathNode":{"id":14226,"name":"SubnetID","nameLocations":["1967:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"1967:8:47"},"referencedDeclaration":16209,"src":"1967:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1966:27:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14323,"nodeType":"FunctionDefinition","src":"2388:217:47","nodes":[],"body":{"id":14322,"nodeType":"Block","src":"2462:143:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14301,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14296,"src":"2476:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2483:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2476:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:6:47","memberName":"length","nodeType":"MemberAccess","src":"2476:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2476:24:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14312,"nodeType":"IfStatement","src":"2472:72:47","trueBody":{"id":14311,"nodeType":"Block","src":"2502:42:47","statements":[{"expression":{"arguments":[{"hexValue":"30","id":14308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2523:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14306,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:47","typeDescriptions":{}}},"id":14309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14300,"id":14310,"nodeType":"Return","src":"2516:17:47"}]}},{"expression":{"baseExpression":{"expression":{"id":14313,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14296,"src":"2561:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2561:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14320,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14315,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14296,"src":"2574:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2581:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2574:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2587:6:47","memberName":"length","nodeType":"MemberAccess","src":"2574:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2596:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2574:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2561:37:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14300,"id":14321,"nodeType":"Return","src":"2554:44:47"}]},"functionSelector":"59feac42","implemented":true,"kind":"function","modifiers":[],"name":"getActor","nameLocation":"2397:8:47","parameters":{"id":14297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14296,"mutability":"mutable","name":"subnet","nameLocation":"2424:6:47","nodeType":"VariableDeclaration","scope":14323,"src":"2406:24:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14295,"nodeType":"UserDefinedTypeName","pathNode":{"id":14294,"name":"SubnetID","nameLocations":["2406:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2406:8:47"},"referencedDeclaration":16209,"src":"2406:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2405:26:47"},"returnParameters":{"id":14300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14323,"src":"2453:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14298,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14343,"nodeType":"FunctionDefinition","src":"2611:189:47","nodes":[],"body":{"id":14342,"nodeType":"Block","src":"2680:120:47","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14331,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"2749:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2756:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2749:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:47","memberName":"length","nodeType":"MemberAccess","src":"2749:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2772:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2749:24:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14336,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"2777:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2777:11:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2777:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2749:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14330,"id":14341,"nodeType":"Return","src":"2742:51:47"}]},"functionSelector":"862a88f8","implemented":true,"kind":"function","modifiers":[],"name":"isRoot","nameLocation":"2620:6:47","parameters":{"id":14327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14326,"mutability":"mutable","name":"subnet","nameLocation":"2645:6:47","nodeType":"VariableDeclaration","scope":14343,"src":"2627:24:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14325,"nodeType":"UserDefinedTypeName","pathNode":{"id":14324,"name":"SubnetID","nameLocations":["2627:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2627:8:47"},"referencedDeclaration":16209,"src":"2627:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2626:26:47"},"returnParameters":{"id":14330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14343,"src":"2674:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14328,"name":"bool","nodeType":"ElementaryTypeName","src":"2674:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2673:6:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14383,"nodeType":"FunctionDefinition","src":"2806:332:47","nodes":[],"body":{"id":14382,"nodeType":"Block","src":"2903:235:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14354,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14346,"src":"2917:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2925:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2917:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14356,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14349,"src":"2933:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2941:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"2933:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2917:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14362,"nodeType":"IfStatement","src":"2913:71:47","trueBody":{"id":14361,"nodeType":"Block","src":"2947:37:47","statements":[{"expression":{"hexValue":"66616c7365","id":14359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2968:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14353,"id":14360,"nodeType":"Return","src":"2961:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14363,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14346,"src":"2997:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3005:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"2997:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3011:6:47","memberName":"length","nodeType":"MemberAccess","src":"2997:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":14366,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14349,"src":"3021:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3029:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"3021:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:47","memberName":"length","nodeType":"MemberAccess","src":"3021:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2997:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14373,"nodeType":"IfStatement","src":"2993:87:47","trueBody":{"id":14372,"nodeType":"Block","src":"3043:37:47","statements":[{"expression":{"hexValue":"66616c7365","id":14370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3064:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14353,"id":14371,"nodeType":"Return","src":"3057:12:47"}]}},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14375,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14346,"src":"3104:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":14374,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14219,"src":"3097:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$16209_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":14376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:15:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14378,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14349,"src":"3123:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":14377,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14219,"src":"3116:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$16209_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":14379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:15:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3097:34:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14353,"id":14381,"nodeType":"Return","src":"3090:41:47"}]},"functionSelector":"c836244d","implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"2815:6:47","parameters":{"id":14350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14346,"mutability":"mutable","name":"subnet1","nameLocation":"2840:7:47","nodeType":"VariableDeclaration","scope":14383,"src":"2822:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14345,"nodeType":"UserDefinedTypeName","pathNode":{"id":14344,"name":"SubnetID","nameLocations":["2822:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2822:8:47"},"referencedDeclaration":16209,"src":"2822:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":14349,"mutability":"mutable","name":"subnet2","nameLocation":"2867:7:47","nodeType":"VariableDeclaration","scope":14383,"src":"2849:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14348,"nodeType":"UserDefinedTypeName","pathNode":{"id":14347,"name":"SubnetID","nameLocations":["2849:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"2849:8:47"},"referencedDeclaration":16209,"src":"2849:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2821:54:47"},"returnParameters":{"id":14353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14383,"src":"2897:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14351,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14504,"nodeType":"FunctionDefinition","src":"3239:921:47","nodes":[],"body":{"id":14503,"nodeType":"Block","src":"3353:807:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14396,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"3367:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"3367:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14398,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"3383:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3391:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"3383:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3367:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14411,"nodeType":"IfStatement","src":"3363:110:47","trueBody":{"id":14410,"nodeType":"Block","src":"3397:76:47","statements":[{"expression":{"arguments":[{"hexValue":"30","id":14402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":14406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3458:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3444:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":14403,"name":"address","nodeType":"ElementaryTypeName","src":"3448:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14404,"nodeType":"ArrayTypeName","src":"3448:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":14407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":14401,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"3418:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$16209_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":14408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3428:4:47","3437:5:47"],"names":["root","route"],"nodeType":"FunctionCall","src":"3418:44:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":14395,"id":14409,"nodeType":"Return","src":"3411:51:47"}]}},{"assignments":[14413],"declarations":[{"constant":false,"id":14413,"mutability":"mutable","name":"i","nameLocation":"3491:1:47","nodeType":"VariableDeclaration","scope":14503,"src":"3483:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14412,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14414,"nodeType":"VariableDeclarationStatement","src":"3483:9:47"},{"assignments":[14416],"declarations":[{"constant":false,"id":14416,"mutability":"mutable","name":"subnet1routeLength","nameLocation":"3510:18:47","nodeType":"VariableDeclaration","scope":14503,"src":"3502:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14420,"initialValue":{"expression":{"expression":{"id":14417,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"3531:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3539:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"3531:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3545:6:47","memberName":"length","nodeType":"MemberAccess","src":"3531:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3502:49:47"},{"assignments":[14422],"declarations":[{"constant":false,"id":14422,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"3569:18:47","nodeType":"VariableDeclaration","scope":14503,"src":"3561:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14421,"name":"uint256","nodeType":"ElementaryTypeName","src":"3561:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14426,"initialValue":{"expression":{"expression":{"id":14423,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"3590:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"3590:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:6:47","memberName":"length","nodeType":"MemberAccess","src":"3590:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3561:49:47"},{"body":{"id":14448,"nodeType":"Block","src":"3717:70:47","statements":[{"id":14447,"nodeType":"UncheckedBlock","src":"3731:46:47","statements":[{"expression":{"id":14445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3759:3:47","subExpression":{"id":14444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3761:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14446,"nodeType":"ExpressionStatement","src":"3759:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3627:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14428,"name":"subnet1routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14416,"src":"3631:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3653:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14431,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14422,"src":"3657:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3653:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:48:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":14434,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"3679:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3687:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"3679:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14437,"indexExpression":{"id":14436,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3693:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3679:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":14438,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"3699:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"3699:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14441,"indexExpression":{"id":14440,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3713:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3699:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3679:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:88:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14449,"nodeType":"WhileStatement","src":"3620:167:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14450,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3800:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3800:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14464,"nodeType":"IfStatement","src":"3796:99:47","trueBody":{"id":14463,"nodeType":"Block","src":"3808:87:47","statements":[{"expression":{"arguments":[{"expression":{"id":14454,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"3845:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"3845:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":14459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3880:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3866:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":14456,"name":"address","nodeType":"ElementaryTypeName","src":"3870:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14457,"nodeType":"ArrayTypeName","src":"3870:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":14460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":14453,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"3829:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$16209_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":14461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3839:4:47","3859:5:47"],"names":["root","route"],"nodeType":"FunctionCall","src":"3829:55:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":14395,"id":14462,"nodeType":"Return","src":"3822:62:47"}]}},{"assignments":[14469],"declarations":[{"constant":false,"id":14469,"mutability":"mutable","name":"route","nameLocation":"3922:5:47","nodeType":"VariableDeclaration","scope":14503,"src":"3905:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14467,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14468,"nodeType":"ArrayTypeName","src":"3905:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":14475,"initialValue":{"arguments":[{"id":14473,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3944:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3930:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":14470,"name":"address","nodeType":"ElementaryTypeName","src":"3934:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14471,"nodeType":"ArrayTypeName","src":"3934:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":14474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:41:47"},{"body":{"id":14495,"nodeType":"Block","src":"3981:111:47","statements":[{"expression":{"id":14489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14482,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14469,"src":"3995:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14484,"indexExpression":{"id":14483,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"4001:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3995:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":14485,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"4006:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"4006:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14488,"indexExpression":{"id":14487,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"4020:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4006:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3995:27:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14490,"nodeType":"ExpressionStatement","src":"3995:27:47"},{"id":14494,"nodeType":"UncheckedBlock","src":"4036:46:47","statements":[{"expression":{"id":14492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4064:3:47","subExpression":{"id":14491,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"4066:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14493,"nodeType":"ExpressionStatement","src":"4064:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14479,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"3972:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"3976:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3972:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14496,"initializationExpression":{"assignments":[14477],"declarations":[{"constant":false,"id":14477,"mutability":"mutable","name":"j","nameLocation":"3969:1:47","nodeType":"VariableDeclaration","scope":14496,"src":"3961:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14476,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14478,"nodeType":"VariableDeclarationStatement","src":"3961:9:47"},"nodeType":"ForStatement","src":"3956:136:47"},{"expression":{"arguments":[{"expression":{"id":14498,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"4125:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4133:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"4125:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":14500,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14469,"src":"4146:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":14497,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"4109:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$16209_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":14501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4119:4:47","4139:5:47"],"names":["root","route"],"nodeType":"FunctionCall","src":"4109:44:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":14395,"id":14502,"nodeType":"Return","src":"4102:51:47"}]},"documentation":{"id":14384,"nodeType":"StructuredDocumentation","src":"3144:90:47","text":"@notice Computes the common parent of the current subnet and the one given as argument"},"functionSelector":"39991266","implemented":true,"kind":"function","modifiers":[],"name":"commonParent","nameLocation":"3248:12:47","parameters":{"id":14391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14387,"mutability":"mutable","name":"subnet1","nameLocation":"3279:7:47","nodeType":"VariableDeclaration","scope":14504,"src":"3261:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14386,"nodeType":"UserDefinedTypeName","pathNode":{"id":14385,"name":"SubnetID","nameLocations":["3261:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"3261:8:47"},"referencedDeclaration":16209,"src":"3261:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":14390,"mutability":"mutable","name":"subnet2","nameLocation":"3306:7:47","nodeType":"VariableDeclaration","scope":14504,"src":"3288:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14389,"nodeType":"UserDefinedTypeName","pathNode":{"id":14388,"name":"SubnetID","nameLocations":["3288:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"3288:8:47"},"referencedDeclaration":16209,"src":"3288:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3260:54:47"},"returnParameters":{"id":14395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14504,"src":"3336:15:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":14393,"nodeType":"UserDefinedTypeName","pathNode":{"id":14392,"name":"SubnetID","nameLocations":["3336:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"3336:8:47"},"referencedDeclaration":16209,"src":"3336:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3335:17:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14609,"nodeType":"FunctionDefinition","src":"4517:818:47","nodes":[],"body":{"id":14608,"nodeType":"Block","src":"4623:712:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14517,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"4637:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"4637:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14519,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14511,"src":"4653:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"4653:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4637:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14526,"nodeType":"IfStatement","src":"4633:88:47","trueBody":{"id":14525,"nodeType":"Block","src":"4667:54:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14522,"name":"DifferentRootNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14037,"src":"4688:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14524,"nodeType":"RevertStatement","src":"4681:29:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14527,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"4734:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4742:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"4734:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:47","memberName":"length","nodeType":"MemberAccess","src":"4734:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"expression":{"id":14530,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14511,"src":"4758:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4766:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"4758:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:6:47","memberName":"length","nodeType":"MemberAccess","src":"4758:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4734:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14538,"nodeType":"IfStatement","src":"4730:96:47","trueBody":{"id":14537,"nodeType":"Block","src":"4780:46:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14534,"name":"InvalidRoute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14039,"src":"4801:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14536,"nodeType":"RevertStatement","src":"4794:21:47"}]}},{"assignments":[14540],"declarations":[{"constant":false,"id":14540,"mutability":"mutable","name":"i","nameLocation":"4844:1:47","nodeType":"VariableDeclaration","scope":14608,"src":"4836:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14539,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14541,"nodeType":"VariableDeclarationStatement","src":"4836:9:47"},{"assignments":[14543],"declarations":[{"constant":false,"id":14543,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"4863:18:47","nodeType":"VariableDeclaration","scope":14608,"src":"4855:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14542,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14547,"initialValue":{"expression":{"expression":{"id":14544,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14511,"src":"4884:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4892:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"4884:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4898:6:47","memberName":"length","nodeType":"MemberAccess","src":"4884:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4855:49:47"},{"body":{"id":14565,"nodeType":"Block","src":"4985:70:47","statements":[{"id":14564,"nodeType":"UncheckedBlock","src":"4999:46:47","statements":[{"expression":{"id":14562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5027:3:47","subExpression":{"id":14561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"5029:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14563,"nodeType":"ExpressionStatement","src":"5027:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14548,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"4921:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14549,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"4925:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":14551,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"4947:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4955:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"4947:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14554,"indexExpression":{"id":14553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"4961:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4947:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":14555,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14511,"src":"4967:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"4967:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14558,"indexExpression":{"id":14557,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"4981:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4967:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4947:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4921:62:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14566,"nodeType":"WhileStatement","src":"4914:141:47"},{"expression":{"id":14568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5065:3:47","subExpression":{"id":14567,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"5067:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14569,"nodeType":"ExpressionStatement","src":"5065:3:47"},{"assignments":[14574],"declarations":[{"constant":false,"id":14574,"mutability":"mutable","name":"route","nameLocation":"5096:5:47","nodeType":"VariableDeclaration","scope":14608,"src":"5079:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14572,"name":"address","nodeType":"ElementaryTypeName","src":"5079:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14573,"nodeType":"ArrayTypeName","src":"5079:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":14580,"initialValue":{"arguments":[{"id":14578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"5118:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5104:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":14575,"name":"address","nodeType":"ElementaryTypeName","src":"5108:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14576,"nodeType":"ArrayTypeName","src":"5108:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":14579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5104:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5079:41:47"},{"body":{"id":14600,"nodeType":"Block","src":"5156:111:47","statements":[{"expression":{"id":14594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14587,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14574,"src":"5170:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14589,"indexExpression":{"id":14588,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"5176:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5170:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":14590,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"5181:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5189:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"5181:13:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14593,"indexExpression":{"id":14592,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"5195:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5181:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5170:27:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14595,"nodeType":"ExpressionStatement","src":"5170:27:47"},{"id":14599,"nodeType":"UncheckedBlock","src":"5211:46:47","statements":[{"expression":{"id":14597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5239:3:47","subExpression":{"id":14596,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"5241:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14598,"nodeType":"ExpressionStatement","src":"5239:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14584,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"5147:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14540,"src":"5151:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5147:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14601,"initializationExpression":{"assignments":[14582],"declarations":[{"constant":false,"id":14582,"mutability":"mutable","name":"j","nameLocation":"5144:1:47","nodeType":"VariableDeclaration","scope":14601,"src":"5136:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14581,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14583,"nodeType":"VariableDeclarationStatement","src":"5136:9:47"},"nodeType":"ForStatement","src":"5131:136:47"},{"expression":{"arguments":[{"expression":{"id":14603,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"5300:7:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5308:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"5300:12:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":14605,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14574,"src":"5321:5:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":14602,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"5284:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$16209_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5294:4:47","5314:5:47"],"names":["root","route"],"nodeType":"FunctionCall","src":"5284:44:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":14516,"id":14607,"nodeType":"Return","src":"5277:51:47"}]},"documentation":{"id":14505,"nodeType":"StructuredDocumentation","src":"4166:346:47","text":"@notice In the path determined by the current subnet id, it moves\n down in the path from the subnet id given as argument.\n subnet2 needs to be a prefix of the subnet1.\n If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\n @dev Revert will be triggered if subnet2 is an invalid input."},"functionSelector":"089032d5","implemented":true,"kind":"function","modifiers":[],"name":"down","nameLocation":"4526:4:47","parameters":{"id":14512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14508,"mutability":"mutable","name":"subnet1","nameLocation":"4549:7:47","nodeType":"VariableDeclaration","scope":14609,"src":"4531:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14507,"nodeType":"UserDefinedTypeName","pathNode":{"id":14506,"name":"SubnetID","nameLocations":["4531:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"4531:8:47"},"referencedDeclaration":16209,"src":"4531:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":14511,"mutability":"mutable","name":"subnet2","nameLocation":"4576:7:47","nodeType":"VariableDeclaration","scope":14609,"src":"4558:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14510,"nodeType":"UserDefinedTypeName","pathNode":{"id":14509,"name":"SubnetID","nameLocations":["4558:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"4558:8:47"},"referencedDeclaration":16209,"src":"4558:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4530:54:47"},"returnParameters":{"id":14516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14609,"src":"4606:15:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":14514,"nodeType":"UserDefinedTypeName","pathNode":{"id":14513,"name":"SubnetID","nameLocations":["4606:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"4606:8:47"},"referencedDeclaration":16209,"src":"4606:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4605:17:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":14629,"nodeType":"FunctionDefinition","src":"5341:144:47","nodes":[],"body":{"id":14628,"nodeType":"Block","src":"5413:72:47","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14617,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14612,"src":"5430:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5439:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":16208,"src":"5430:14:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5445:6:47","memberName":"length","nodeType":"MemberAccess","src":"5430:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5430:26:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14622,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14612,"src":"5460:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":14623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:47","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":16204,"src":"5460:13:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5460:18:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5430:48:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14616,"id":14627,"nodeType":"Return","src":"5423:55:47"}]},"functionSelector":"6099e898","implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"5350:7:47","parameters":{"id":14613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14612,"mutability":"mutable","name":"subnetId","nameLocation":"5376:8:47","nodeType":"VariableDeclaration","scope":14629,"src":"5358:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":14611,"nodeType":"UserDefinedTypeName","pathNode":{"id":14610,"name":"SubnetID","nameLocations":["5358:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16209,"src":"5358:8:47"},"referencedDeclaration":16209,"src":"5358:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$16209_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5357:28:47"},"returnParameters":{"id":14616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14629,"src":"5407:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14614,"name":"bool","nodeType":"ElementaryTypeName","src":"5407:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5406:6:47"},"scope":14630,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetIDHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":14026,"nodeType":"StructuredDocumentation","src":"186:86:47","text":"@title Helper library for manipulating SubnetID struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[14630],"name":"SubnetIDHelper","nameLocation":"280:14:47","scope":14631,"usedErrors":[1665,14031,14033,14035,14037,14039]}],"license":"MIT OR Apache-2.0"},"id":47} \ No newline at end of file diff --git a/contracts/out/SubnetManagerTestUtil.sol/SubnetManagerTestUtil.json b/contracts/out/SubnetManagerTestUtil.sol/SubnetManagerTestUtil.json deleted file mode 100644 index 416d251c79..0000000000 --- a/contracts/out/SubnetManagerTestUtil.sol/SubnetManagerTestUtil.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmChange","inputs":[{"name":"_configurationNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint64","internalType":"uint64"},{"name":"reward","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint64","internalType":"uint64"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"},{"name":"crossMessagesHash","type":"bytes32","internalType":"bytes32"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointMessagesHash","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MethodNotAllowed","inputs":[]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotStakedBefore","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x608080604052346100165761418d908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146112c15750806310fd4261146111665780632e17de7814611141578063350a14bf146111245780633a4b66f11461110857806341c0e1b51461106c5780634e71d92d14610ee05780636170b1621461092057806366783c9b1461083f578063a8284de31461027a578063cc2dc2b9146101fd578063d66d9e19146101ba578063ed7c4da1146101065763f9002bb1146100bb57600080fd5b6040366003190112610103576100cf61145f565b6009546001600160a01b031633036100f1576100ee9060243590613bd2565b80f35b60405163e7e601db60e01b8152600490fd5b80fd5b503461010357806003193601126101035760008051602061413883398151915260018154146101a85780600183925573__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a45782602491604051928380926382985e0b60e01b82523360048301525af4908115610199578391610182575b50505580f35b61018b90611388565b61019657813861017c565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b50346101035780600319360112610103576101d361366a565b60008051602061413883398151915260018154146101a8578060018392556101f96139d4565b5580f35b5034610103576060366003190112610103576001600160401b036004358181116102765736602382011215610276576102409036906024816004013591016114e4565b60443591821161027657366023830112156102765761026c6100ee92369060248160040135910161153a565b9060243590613caa565b8280fd5b5034610103576080366003190112610103576001600160401b03600435116101035760a060043536036003190112610103576024356001600160401b03811161083b576102cb903690600401611489565b91906044356001600160401b038111610276576102ec903690600401611489565b6064356001600160401b0381116106b35761030b903690600401611489565b9261031a6024600435016115b9565b926001600160401b03600554166001600160401b0360075416946001600160401b038061034788856115fb565b16911614158061081b575b61080957604051602081019060208252610383816103758d60408301908d611777565b03601f1981018352826113e7565b51902060846004350135036107f7576040516020808201526103b181610375604082016004356004016118ab565b60208151910120946001600160401b03806103da6103d36024600435016115b9565b93856115fb565b169116146000146106b75750916103fb6104039261040996959436916114e4565b93369161153a565b91613caa565b6001600160401b0361041f6024600435016115b9565b168252816020526040822092600435600401356042196004353603018112156106af57600435016001600160401b0361045a600483016115b9565b166001600160401b0319865416178555602481013590602219813603018212156106b35701936001600160401b036004860135116106af57600485013560051b360360248601136106af57600160401b60048601351161069b576001948582018054600483013582558060048401351061067c575b506024820190865260208620865b600484013581106106545750505050839450600281016001600160401b036105096024600435016115b9565b166001600160401b03198254161790556044600435013560038201556001600160401b0361053b6064600435016115b9565b1660048201906001600160401b03198254161790556005608460043501359101556001600160401b036105726024600435016115b9565b168352601d602052610588604084203390611a0c565b506001600160401b0361059f6024600435016115b9565b166001600160401b0319600554161760055560018060a01b036009541691823b1561064f5761060992849283604051809681958294637a2b59cf60e11b8452604060048501526105f7604485016004356004016118ab565b84810360031901602486015291611777565b03925af1801561064457610630575b50506100ee61062b6064600435016115b9565b611c86565b61063990611388565b610103578038610618565b6040513d84823e3d90fd5b505050fd5b82356001600160a01b038116810361067857828201556020929092019188016104dd565b8880fd5b818752602087206106959181019060048501350161190a565b386104cf565b634e487b7160e01b84526041600452602484fd5b8380fd5b8480fd5b9550505050929350506001600160401b036106d66024600435016115b9565b16146106e1575b5080f35b6001600160401b036106f76024600435016115b9565b168252816020526040822060405160208101916020835260a06040830152816101208101916001600160401b0381541660e0830152600190818101916040610100850152825480955261014084019289526020892090895b8681106107d65750505060028101546001600160401b0390811660608501526003820154608085015260048201541660a08401526005015460c083015203601f198101835261079f9150826113e7565b519020146107aa5780f35b6001600160401b036107c06024600435016115b9565b168152601d6020526106dd604082203390611a0c565b82546001600160a01b0316855287955060209094019391810191810161074f565b604051632d7f750360e21b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b50806001600160401b036108336024600435016115b9565b161415610352565b5080fd5b50346101035760203660031901126101035760043560008051602061413883398151915260018154146101a85760018155811561090e5760ff600d5460081c166108fc573383526003602052816040842054106108ea576101f983923384526003602052604084206108b282825461201a565b90556108c08160025461201a565b60025533845260036020526040842054156108dc575b33613196565b6108e533614030565b6108d6565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b50602036600319011261010357600435906001600160401b0382116101035736602383011215610103576001600160401b03826004013511610103576024368184600401358501011161083b57600160008051602061413883398151915254146101a85760016000805160206141388339815191525561099e61366a565b600d5460ff8160081c1680918192610ed2575b50610ec0573415610eae5760418460040135148015610e9c576109d390613051565b8360040135600111610276576109f53660048601356000190160258701611423565b80516020909101206001600160a01b03163303610e8a57610c7c5733600090815260106020526040902060029390840190610a3e8160040135610a388454611a91565b84611b61565b83601f826004013511600114610c06578385918360040135610bf9575b5050816004013560011b91600019906004013560031b1c19161790555b610a82343361324b565b600f54600654811015610aa9575b505090505b806000805160206141388339815191525580f35b61ffff601154166001600160401b0360075460401c1611610a905761010061ff0019600d541617600d556040519360208501602086526001548091526040860160408260051b88010191600187527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69187905b828210610bae57505050508585967f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a1610b6660018060a01b036009541691548093611f9a565b92813b156106b35784926040519485938492637903ab2760e11b845260048401525af1801561064457610b9a575b80610a90565b610ba390611388565b610103578038610b94565b9091929360206003610beb6001938d603f1990820301865288548152848060a01b03858a0154168482015260609081604082015201898901611acb565b960192019201909291610b1c565b8301013590508338610a5b565b828552602085208592916004830135601f19165b808510610c5f5760019450836004013511610c40575b505060040135811b019055610a78565b8201850135600019600484013560031b60f8161c191690553880610c30565b838201870135835560209485019460019093019290910190610c1a565b610c8d368460040135838601611423565b926001600160401b0360175416604051610ca6816113cc565b600281526020810195865233604082015281600052601860205260406000209581516003811015610e755760ff80198954169116178755519586516001600160401b038111610e6057610d0981610d006001850154611a91565b60018501611b61565b6020601f8211600114610dde57908060029392600080516020614118833981519152999a600092610dd3575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610d7e826115cd565b166001600160401b03196017541617601755610dbb60405193849360028552336020860152608060408601526080850191816004013591016116ed565b9060608301520390a1610dce3433613460565b610a95565b015190503880610d35565b6001830160005260206000209860005b601f1984168110610e4857509160008051602061411883398151915298996001926002959483601f19811610610e2f575b505050811b016001820155610d4d565b015160001960f88460031b161c19169055388080610e1f565b828201518b556001909a019960209283019201610dee565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b604051634be9251d60e11b8152600490fd5b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6040516341f8b8eb60e11b8152600490fd5b60ff915060101c16386109b1565b5034610103578060031936011261010357600190600080516020614138833981519152828154146101a857828155336000908152601a602052604090209283549061ffff9081831692831561105a57829060101c16918391808795818a01915b610fd4575b50505086610fb6937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515610fbd575b610f9e8133613196565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601a60205260409020859055610f94565b9091939483811696828810156110515787600052602080918582526040600020604051611000816113b1565b89825492838352015493849101524310611046578594938896889461102786958a95611f9a565b9c60005252600082604082208281550155011696600019011694610f40565b985050509493610f45565b96509493610f45565b6040516364b0557f60e01b8152600490fd5b503461010357806003193601126101035761108561366a565b61ffff61109b8160145416826011541690611fba565b166110f657600d805463ff0000001916630100000017905560095481906001600160a01b0316803b156101965781906004604051809481936341c0e1b560e01b83525af18015610644576110ed575080f35b6100ee90611388565b604051636b62255160e11b8152600490fd5b50806003193601126101035761111c61366a565b6100ee61368b565b5034610103576020366003190112610103576100ee61062b61145f565b50346101035760203660031901126101035761115b61366a565b6100ee6004356136e8565b50346101035760209081600319360112610103576001600160401b03916004358381116102765736602382011215610276576111ac903690602481600401359101611423565b923383526012825261ffff604084205416156112a95783511561129757338352601e82526040832091845191821161069b576111f2826111ec8554611a91565b85611b61565b80601f83116001146112335750839482939492611228575b50508160011b916000199060031b1c19161790555b6106dd336119a5565b01519050388061120a565b90601f198316958486528286209286905b88821061127f57505083600195969710611266575b505050811b01905561121f565b015160001960f88460031b161c19169055388080611259565b80600185968294968601518155019501930190611244565b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261083b573415611379575060ff600d5460081c166108fc573381526003602052604081205415611320575b33815260036020526040812061130c348254611f9a565b905561131a34600254611f9a565b60025580f35b600454600160401b811015611365576113428160016113609301600455611921565b81546001600160a01b0360039290921b91821b19163390911b179055565b6112f5565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b03811161139b57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761139b57604052565b606081019081106001600160401b0382111761139b57604052565b90601f801991011681019081106001600160401b0382111761139b57604052565b6001600160401b03811161139b57601f01601f191660200190565b92919261142f82611408565b9161143d60405193846113e7565b82948184528183011161145a578281602093846000960137010152565b600080fd5b600435906001600160401b038216820361145a57565b35906001600160401b038216820361145a57565b9181601f8401121561145a578235916001600160401b03831161145a576020808501948460051b01011161145a57565b6001600160401b03811161139b5760051b60200190565b35906001600160a01b038216820361145a57565b92916114ef826114b9565b916114fd60405193846113e7565b829481845260208094019160051b810192831161145a57905b8282106115235750505050565b83809161152f846114d0565b815201910190611516565b92919092611547846114b9565b9161155560405193846113e7565b829480845260208094019060051b83019282841161145a5780915b84831061157f57505050505050565b82356001600160401b03811161145a57820184601f8201121561145a5786916115ae8683858095359101611423565b815201920191611570565b356001600160401b038116810361145a5790565b9060016001600160401b03809316019182116115e557565b634e487b7160e01b600052601160045260246000fd5b9190916001600160401b03808094169116019182116115e557565b9035603e198236030181121561145a570190565b6001600160401b039190604082018361164283611475565b16835260209182810135601e198236030181121561145a570192828435940194841161145a578360051b3603851361145a576040818401529083905260600192919060005b828110611695575050505090565b909192938280600192838060a01b036116ad896114d0565b16815201950193929101611687565b9035601e198236030181121561145a5701602081359101916001600160401b03821161145a57813603831361145a57565b908060209392818452848401376000828201840152601f01601f1916010190565b61173761172c61171e8380611616565b60408552604085019061162a565b916020810190611616565b91602081830391015281359160ff831680930361145a5761176460409161177494845260208101906116bc565b91909281602082015201916116ed565b90565b90918092808252602080920191808260051b86010194846000915b8483106117a3575050505050505090565b90919293949596601f198282030187526117bd8884611616565b90813560de198336030181121561145a578201916040908183526117e18480611616565b6117f760e091828587015261012086019061170e565b926118048a870187611616565b6001600160401b03611839611827603f1997606094898b830301868c015261170e565b926080948a0135858a01528901611475565b169160a092838801528701359263ffffffff60e01b841680940361145a578b9561186f61187f9460c096878b01528a018a6116bc565b92909189850301908901526116ed565b94013561010084015201359081151580920361145a578601529684019584019493926001019190611792565b906080806118ca6118bc8580611616565b60a0855260a085019061162a565b936001600160401b03806118e060208401611475565b166020860152604082013560408601526118fc60608301611475565b166060850152013591015290565b818110611915575050565b6000815560010161190a565b6004548110156119585760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b601f5481101561195857601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8070190600090565b6000818152602080526040812054611a0757601f54600160401b8110156113655790826119f46119dd84600160409601601f5561196e565b819391549060031b91821b91600019901b19161790565b9055601f54928152602080522055600190565b905090565b91906001830160009082825280602052604082205415600014611a8b57845494600160401b861015611a775760018601808255861015611a6357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b90600182811c92168015611ac1575b6020831014611aab57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611aa0565b9060009291805491611adc83611a91565b918282526001938481169081600014611b3e5750600114611afe575b50505050565b90919394506000526020928360002092846000945b838610611b2a575050505001019038808080611af8565b805485870183015294019385908201611b13565b9294505050602093945060ff191683830152151560051b01019038808080611af8565b9190601f8111611b7057505050565b611b9c926000526020600020906020601f840160051c83019310611b9e575b601f0160051c019061190a565b565b9091508190611b8f565b90808214611c8257611bba8154611a91565b906001600160401b03821161139b578190611bdf82611bd98654611a91565b86611b61565b600090601f8311600114611c1657600092611c0b575b50508160011b916000199060031b1c1916179055565b015490503880611bf5565b81526020808220858352818320935090601f1985169083905b828210611c69575050908460019594939210611c50575b505050811b019055565b015460001960f88460031b161c19169055388080611c46565b8495819295850154815560018091019601940190611c2f565b5050565b6017546001600160401b0382811692908083168410611cb15760405163040aaa0560e11b8152600490fd5b808360401c168410611af85780604093841c165b848282161115611d2c57505091602091611cff7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946115cd565b67ffffffffffffffff60401b60175491831b169067ffffffffffffffff60401b19161760175551908152a1565b611d49816001600160401b03166000526018602052604060002090565b60028181015482546001600160a01b03949293918516919060ff166003811015611f85578695818603611ddb5750506001600160a01b039091166000908152601060205260409020611da091600101908401611ba8565b611dbd816001600160401b03166000526018602052604060002090565b91600090818455600193611dd2858201612027565b01550116611cc5565b919394955091885193611dfd85611df6816001809501611acb565b03866113e7565b6020808680518101031261145a5781818c9701519514600014611f3a578490611e268285612070565b601954611e339043611f9a565b92875190611e40826113b1565b8482528282018481526001600160a01b0387166000908152601a602052604090209091909283549161ffff9384848180961695869160101c1690611e8391611fba565b169c60009d8e5282870188528d209251835551910155611ea290611fa7565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a16009541690813b15610276578291602483928a5195869384926345f5448560e01b845260048401525af1908115611f2f57509084939291611f20575b50611da0565b611f2990611388565b38611f1a565b8751903d90823e3d90fd5b505082935091611f4a9192611fd0565b6009541690813b1561145a578651916316989f6f60e21b83528260048160009485945af1908115611f2f57509084939291611f205750611da0565b60246000634e487b7160e01b81526021600452fd5b919082018092116115e557565b90600161ffff809316019182116115e557565b91909161ffff808094169116019182116115e557565b90611b9c9161201260018060a01b03821692836000526010602052611ffa81604060002054611f9a565b93600052601060205283604060002055600f54611f9a565b600f556120f3565b919082039182116115e557565b6120318154611a91565b908161203b575050565b81601f6000931160011461204d575055565b90808391825261206c601f60208420940160051c84016001850161190a565b5555565b906120d46120dc9260018060a01b038116906000828152601060205261209a85604083205461201a565b92815260106020526040812060018101848154811590816120ea575b50156120e1575090826002926120cf9483555501612027565b612460565b600f5461201a565b600f55565b92505055612460565b905015386120b6565b919060018060a01b03928381169360008581526020956012875261ffff916040978389832054166123445783600e54168460115416106123105786612136612a91565b9190911061228a5750828252601581528389832054166121a95750505050506121a47f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946121848361278e565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6121b886959994989796612fa8565b92825260109081815284832054935b6001808b831611156122545781617fff911c1690818552601683528b8786205416855283835285878620541015612207576122029082613107565b6121c7565b505093516001600160a01b0390951685525050505060208101919091529092507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd915080604081016121a4565b5050505050506121a491929395507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9450612184565b9596506121a49450906015899493927ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75999a936122c5612c60565b835252205416612302575b6122d984612bee565b6122e28361278e565b516001600160a01b03928316815292909116602083015281906040820190565b61230b8461297b565b6122d0565b50505050506121a47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461218483612bee565b612355869598979699949399612f71565b988252601090818152848320549861236c8b612b7d565b8560115416905b868116828111612428578281101561240b57508061239361239992611fa7565b90612f1f565b9c909c5b8c11156123bc576123ae908d61306e565b6123b78c612b7d565b612373565b505094516001600160a01b0390961686525050505060208201929092529193507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979250819050604081016121a4565b869d919d526013845282888720541686528484528786205461239d565b50505050505050506121a491929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612184565b9160018060a01b0392838116926000918483526020946015865261ffff9060409482868220541661264f57818152601288528286822054161561263e5784156125b9576124ac84612f71565b918152601080895286822054925b60018086831611156125a85781617fff911c169081845260138b528b89852054168452828b52848985205411156124fa576124f5908261306e565b6124ba565b5050505050919395509193505b60145416156125a357612518612a91565b90612521612adb565b90921061256a57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016121a4565b915091506121a47ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759361259b612c60565b6122d0612814565b505050565b505050505091939550919350612507565b50916125ec919597507f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b94969350612da9565b8451908152a1601454166125fd5750565b6121a47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9161262a612adb565b929091612635612814565b61218483612bee565b8551632a55ca5360e01b8152600490fd5b90939596869893959815612755579261fffe92949361266d87612fa8565b9483526010918282528a8420549580976001968792831b168160145416925b6126e1575b50509a516001600160a01b039098168852505050506020840194909452509293507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9250905080604081016121a4565b81811683811161274f578e90808511156127335750508061270461270a92611fa7565b90612b94565b9990995b89101561272e5761271f908a613107565b61272889612b7d565b8761268c565b612691565b885260168652872054841687528585528d87205490999061270e565b50612691565b955050505090936127877f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949561297b565b51908152a1565b611b9c90604061ffff6127a48160145416611fa7565b9260018060a01b031660009181835260156020528383209085169061ffff199082828254161790558184526016602052848420836001600160601b0360a01b825416179055601454161760145581526010602052205490612b25565b61ffff90811660001901919082116115e557565b61ffff8060145416801561296957600161283082821115613051565b6000818152601660208181526040808420805487865282862080546001600160a01b0392831680895260158752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b0319908116909217909355898952845416909117909255939691949392916128c691896128b783612800565b16906014541617601455612fcd565b8483528581528184842054168352601091828252848420549686809960028160145416925b6128fe575b505050505050505050505050565b818116838111612963578381101561294757508061270461291e92611fa7565b9b909b5b8b101561294257612933908c613107565b61293c8b612b7d565b896128eb565b6128f0565b889c919c52838652848989205416885286865288882054612922565b506128f0565b6040516340d9b01160e01b8152600490fd5b61298490612fa8565b61ffff8060145416906129978284613107565b806129a183612800565b1661ffff1960145416176014556129b782612fcd565b8083168092146125a357919061fffe906000818152601691602083815260018060a01b0360409481868620541685526010938484526129f9878720548a612b25565b85528083528186862054168552838352858520549780996001988992831b168160145416925b612a3157505050505050505050505050565b8181168381116129635783811015612a75575080612704612a5192611fa7565b9b909b5b8b101561294257612a66908c613107565b612a6f8b612b7d565b89612a1f565b889c919c52838652848989205416885286865288882054612a55565b61ffff6011541615612969577f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d546001600160a01b03166000818152601060205260409020549091565b61ffff6014541615612969577f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49546001600160a01b03166000818152601060205260409020549091565b9190915b60018061ffff83161115612b775781617fff911c169083600083815260209060168252601060409260018060a01b03848420541683525220541015612b7757612b729082613107565b612b29565b50509050565b60011b906201fffe61fffe8316921682036115e557565b91909161ffff92604060008584168152601660205260018060a01b03808383205416825260106020528282205496841682526016602052828220541681526010602052205490818510612be75750509190565b9350919050565b611b9c90604061ffff612c048160115416611fa7565b9260018060a01b031660009181835260126020528383209085169061ffff199082828254161790558184526013602052848420836001600160601b0360a01b825416179055601154161760115581526010602052205490612ecd565b61ffff80601154168015612969576001612c7c82821115613051565b6000818152601360208181526040808420805487865282862080546001600160a01b0392831680895260128752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b031990811690921790935589895284541690911790925593969194939291612d129189612d0383612800565b1690601154161760115561300f565b8483528581528184842054168352601091828252848420549686809960028160115416925b612d4957505050505050505050505050565b8181168381116129635783811015612d8d575080612393612d6992611fa7565b9b909b5b8b111561294257612d7e908c61306e565b612d878b612b7d565b89612d37565b889c919c52838652848989205416885286865288882054612d6d565b612db290612f71565b9061ffff90816011541691612dc7838561306e565b80612dd184612800565b1661ffff196011541617601155612de78361300f565b808416809314612ec75760009280845260139360209185835260018060a01b03926040938085852054168452601092838352612e26868620548b612ecd565b845287825280858520541684528282528484205497612e448a612b7d565b8760115416905b888116828111612eb85782811015612e9c575080612393612e6b92611fa7565b9b909b5b8b1115612e8e57612e80908c61306e565b612e898b612b7d565b612e4b565b505050505050505050915050565b879c919c52828552838888205416875285855287872054612e6f565b50505050505050505050915050565b50915050565b9190915b60018061ffff83161115612b775781617fff911c169083600083815260209060138252601060409260018060a01b03848420541683525220541115612b7757612f1a908261306e565b612ed1565b919061ffff604060008286168152601360205260018060a01b0380838320541682526010602052828220549385168252601360205282822054168152601060205220549384821115612be75750509190565b6001600160a01b031660009081526012602052604090205461ffff16908115612f9657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526015602052604090205461ffff16908115612f9657565b61ffff16600090815260166020908152604080832080546001600160a01b031981169091556001600160a01b0316835260159091529020805461ffff19169055565b61ffff16600090815260136020908152604080832080546001600160a01b031981169091556001600160a01b0316835260129091529020805461ffff19169055565b1561305857565b634e487b7160e01b600052600160045260246000fd5b61309361ffff80806011541693169361308984861115613051565b1691821115613051565b6000828152601360208181526040808420805486865282862080546001600160a01b0392831680895260128752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61312261ffff80806014541693169361308984861115613051565b6000828152601660208181526040808420805486865282862080546001600160a01b0392831680895260158752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b8147106131f8576000918291829182916001600160a01b03165af13d156131f3573d6131c181611408565b906131cf60405192836113e7565b8152600060203d92013e5b156131e157565b604051630a12f52160e11b8152600490fd5b6131da565b60405163cd78605960e01b8152306004820152602490fd5b600154811015611958576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b906132609061325a8184613439565b82611fd0565b60ff600d5460081c16156132715750565b60018054600082815b838110613408575b50501561328e57505050565b6001600160a01b038316600090815260106020526040902080546132e2949091600201604051926132be846113cc565b83526020936132e98585019260018060a01b03809516845260405198898092611acb565b03886113e7565b60408401968752600160401b81101561139b57808661330a92018755613210565b9290926133f2576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b03831161139b57613357836133518754611a91565b87611b61565b81601f84116001146133905750928293918392600094613385575b50501b916000199060031b1c1916179055565b015192503880613372565b919083601f1981168760005284600020946000905b888383106133d857505050106133bf57505050811b019055565b015160001960f88460031b161c19169055388080611c46565b8587015188559096019594850194879350908101906133a5565b634e487b7160e01b600052600060045260246000fd5b8161341282613210565b5001546001600160a01b0387811691161461342f5701839061327a565b5090508238613282565b60018060a01b0316600052601060205261345c6001604060002001918254611f9a565b9055565b919060409283516020838183015280825261347a826113b1565b6001600160401b03806017541691875197613494896113cc565b600092838a52828a0199868b528281019060018060a01b0390818a169c8d845288885260188752858820915160038110156136565760ff801984541691161782556001808301915190815191878311613642576134f583611bd98654611a91565b89908b601f85116001146135d45793600295938193829360809d9c9b9a9997946135c9575b50501b916000199060031b1c19161790555b019151166001600160601b0360a01b82541617905561354a866115cd565b166001600160401b03196017541617601755805199848b52838b01528901528351938460808a0152825b8581106135b5575050508683819360a0938460008051602061411883398151915297611b9c9b9c0101526060830152601f80199101168101030190a1613439565b8181018301518a820160a001528201613574565b01519250388061351a565b50848c528a8c209293929190601f1984168d5b8d82821061362e5750509160809b9a99989795939185600298969410613615575b505050811b01905561352c565b015160001960f88460031b161c19169055388080613608565b8385015186559487019493840193016135e7565b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b89526021600452602489fd5b60ff600d5460181c1661367957565b60405163248c8efb60e11b8152600490fd5b600d5460ff8160101c16610ec0573415610eae5733600090815260106020526040902060010154156136d65760081c60ff16156136cc57611b9c3433613460565b611b9c343361324b565b60405163528fc16560e01b8152600490fd5b600d5460ff8160101c16610ec057811561375a573360009081526010602052604090206001015480156112a9578210156137495760081c60ff161561373157611b9c90336137bf565b8061373f611b9c923361376c565b6108d68133612070565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526010602052604090206001015490918082106137ad576137999161201a565b906000526010602052600160406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526137d8846113b1565b6001600160401b03806017541690604051916137f3836113cc565b60018352602083019187835260018060a01b0393848616604082015260009383855260186020526040852090825160038110156139c05760ff801984541691161782555180518481116139ac57908291600189940191613857826111ec8554611a91565b602090601f831160011461393f57918060029492604096948c92613934575b50508160011b916000199060031b1c19161790555b01920151166001600160601b0360a01b8254161790556138aa826115cd565b166001600160401b0319601754161760175560405192600184528416602084015260806040840152865191826080850152805b83811061391e5750611b9c969750928260a09260008051602061411883398151915295848496850101526060830152601f80199101168101030190a161376c565b80602080928b01015160a08288010152016138dd565b015190503880613876565b838a5260208a209190601f1984168b5b8181106139915750926001928592604098966002989610613978575b505050811b01905561388b565b015160001960f88460031b161c1916905538808061396b565b8284015185558d98506001909401936020938401930161394f565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b87526021600452602487fd5b600d5460ff8160081c169081613ac9575b50610ec0573360009081526010602052604090206001015480156112a957613a0c33613ad7565b50600090338252601e6020528160408120613a278154611a91565b80613a8c575b50505060ff600d5460081c1615613a4957611b9c9150336137bf565b6040611b9c923381526003602052205480613a6a575b5061373f813361376c565b80613a7a613a869260025461201a565b6002556108d633614030565b38613a5f565b82601f8211600114613aa4575050555b813880613a2d565b9091808252613ac2601f60208420940160051c84016001850161190a565b5555613a9c565b60ff915060101c16386139e5565b600081815260208080526040822054919290918015613bb85760001990808201818111613ba457601f5490838201918211613b9057808203613b5e575b505050601f548015613b4a57810190613b2c8261196e565b909182549160031b1b19169055601f55825280526040812055600190565b634e487b7160e01b85526031600452602485fd5b613b7c613b6d6119dd9361196e565b90549060031b1c92839261196e565b905585528380526040852055388080613b14565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b86526011600452602486fd5b50505090565b80518210156119585760209160051b010190565b8115611c82576001600160401b0390818060075416911603908082116115e557600091168152602090601d8252604090818120928251808583829754938481520190855283852092855b85828210613c9457505050613c33925003856113e7565b8351948515613c8c57858110613c8c5785900493825b868110613c595750505050505050565b6001906001600160a01b03613c6e8285613bbe565b51168552601c8452858520613c84888254611f9a565b905501613c49565b505050505050565b855484526001958601958a955093019201613c1c565b91825191613cb7836114b9565b93604094613cc7865191826113e7565b848152601f19613cd6866114b9565b0194602095368784013760005b818110613dc857505060009461ffff8060115416600192839182945b613d72575b505050505060ff60095460a01c16948581029581870414901517156115e5576064613d30950491613e55565b9015613d3a575050565b6007811015613d5c5760ff602492519163282ef1c160e01b8352166004820152fd5b634e487b7160e01b600052602160045260246000fd5b90919293988a858b16838111613dc057600090815260138552908120546001600160a01b031681526010602052604090208493929186918591613db6915490611f9a565b9b01169493613cff565b505098613d04565b6001600160a01b0380613ddb8387613bbe565b51166000526012885261ffff89600020541615613e315790613e1f600192613e038388613bbe565b51166001600160a01b0316600090815260106020526040902090565b54613e2a8286613bbe565b5201613ce3565b8890613e3f60249387613bbe565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415613f575782518514801590613f4c575b613f3f579392919085945b848610613e9d575050505050501015613e9557600090600690565b600190600090565b909192939495613eb7613eb08884613bbe565b5184613f64565b509060049182811015613f2a57613f18576001600160a01b0380613edb8b89613bbe565b5116911603613f085750613efc600191613ef58988613bbe565b5190611f9a565b96019493929190613e7a565b9897505050505050505060009190565b50505050505050505050600090600590565b602183634e487b7160e01b6000525260246000fd5b5050505050905090600190565b508351851415613e6f565b5050505050905090600290565b8151919060418303613f9557613f8e92506020820151906060604084015193015160001a90613fa0565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161402457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156140185780516001600160a01b0381161561400f57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60049081549160005b8381106140465750505050565b61404f81611921565b90546003916001600160a01b039190831b1c811685821614614075575050600101614039565b92935093906000199182810190811161410257906140a6846140996140c594611921565b905490891b1c1691611921565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156140ed5701926140d884611921565b81939154921b1b191690555538808080611af8565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212207bd3b1cdd6497dbb5897ee8d84a565b8bf318dff7647d8eb991d7360204c77ec64736f6c63430008130033","sourceMap":"215:190:60:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":339,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146112c15750806310fd4261146111665780632e17de7814611141578063350a14bf146111245780633a4b66f11461110857806341c0e1b51461106c5780634e71d92d14610ee05780636170b1621461092057806366783c9b1461083f578063a8284de31461027a578063cc2dc2b9146101fd578063d66d9e19146101ba578063ed7c4da1146101065763f9002bb1146100bb57600080fd5b6040366003190112610103576100cf61145f565b6009546001600160a01b031633036100f1576100ee9060243590613bd2565b80f35b60405163e7e601db60e01b8152600490fd5b80fd5b503461010357806003193601126101035760008051602061413883398151915260018154146101a85780600183925573__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a45782602491604051928380926382985e0b60e01b82523360048301525af4908115610199578391610182575b50505580f35b61018b90611388565b61019657813861017c565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b50346101035780600319360112610103576101d361366a565b60008051602061413883398151915260018154146101a8578060018392556101f96139d4565b5580f35b5034610103576060366003190112610103576001600160401b036004358181116102765736602382011215610276576102409036906024816004013591016114e4565b60443591821161027657366023830112156102765761026c6100ee92369060248160040135910161153a565b9060243590613caa565b8280fd5b5034610103576080366003190112610103576001600160401b03600435116101035760a060043536036003190112610103576024356001600160401b03811161083b576102cb903690600401611489565b91906044356001600160401b038111610276576102ec903690600401611489565b6064356001600160401b0381116106b35761030b903690600401611489565b9261031a6024600435016115b9565b926001600160401b03600554166001600160401b0360075416946001600160401b038061034788856115fb565b16911614158061081b575b61080957604051602081019060208252610383816103758d60408301908d611777565b03601f1981018352826113e7565b51902060846004350135036107f7576040516020808201526103b181610375604082016004356004016118ab565b60208151910120946001600160401b03806103da6103d36024600435016115b9565b93856115fb565b169116146000146106b75750916103fb6104039261040996959436916114e4565b93369161153a565b91613caa565b6001600160401b0361041f6024600435016115b9565b168252816020526040822092600435600401356042196004353603018112156106af57600435016001600160401b0361045a600483016115b9565b166001600160401b0319865416178555602481013590602219813603018212156106b35701936001600160401b036004860135116106af57600485013560051b360360248601136106af57600160401b60048601351161069b576001948582018054600483013582558060048401351061067c575b506024820190865260208620865b600484013581106106545750505050839450600281016001600160401b036105096024600435016115b9565b166001600160401b03198254161790556044600435013560038201556001600160401b0361053b6064600435016115b9565b1660048201906001600160401b03198254161790556005608460043501359101556001600160401b036105726024600435016115b9565b168352601d602052610588604084203390611a0c565b506001600160401b0361059f6024600435016115b9565b166001600160401b0319600554161760055560018060a01b036009541691823b1561064f5761060992849283604051809681958294637a2b59cf60e11b8452604060048501526105f7604485016004356004016118ab565b84810360031901602486015291611777565b03925af1801561064457610630575b50506100ee61062b6064600435016115b9565b611c86565b61063990611388565b610103578038610618565b6040513d84823e3d90fd5b505050fd5b82356001600160a01b038116810361067857828201556020929092019188016104dd565b8880fd5b818752602087206106959181019060048501350161190a565b386104cf565b634e487b7160e01b84526041600452602484fd5b8380fd5b8480fd5b9550505050929350506001600160401b036106d66024600435016115b9565b16146106e1575b5080f35b6001600160401b036106f76024600435016115b9565b168252816020526040822060405160208101916020835260a06040830152816101208101916001600160401b0381541660e0830152600190818101916040610100850152825480955261014084019289526020892090895b8681106107d65750505060028101546001600160401b0390811660608501526003820154608085015260048201541660a08401526005015460c083015203601f198101835261079f9150826113e7565b519020146107aa5780f35b6001600160401b036107c06024600435016115b9565b168152601d6020526106dd604082203390611a0c565b82546001600160a01b0316855287955060209094019391810191810161074f565b604051632d7f750360e21b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b50806001600160401b036108336024600435016115b9565b161415610352565b5080fd5b50346101035760203660031901126101035760043560008051602061413883398151915260018154146101a85760018155811561090e5760ff600d5460081c166108fc573383526003602052816040842054106108ea576101f983923384526003602052604084206108b282825461201a565b90556108c08160025461201a565b60025533845260036020526040842054156108dc575b33613196565b6108e533614030565b6108d6565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b50602036600319011261010357600435906001600160401b0382116101035736602383011215610103576001600160401b03826004013511610103576024368184600401358501011161083b57600160008051602061413883398151915254146101a85760016000805160206141388339815191525561099e61366a565b600d5460ff8160081c1680918192610ed2575b50610ec0573415610eae5760418460040135148015610e9c576109d390613051565b8360040135600111610276576109f53660048601356000190160258701611423565b80516020909101206001600160a01b03163303610e8a57610c7c5733600090815260106020526040902060029390840190610a3e8160040135610a388454611a91565b84611b61565b83601f826004013511600114610c06578385918360040135610bf9575b5050816004013560011b91600019906004013560031b1c19161790555b610a82343361324b565b600f54600654811015610aa9575b505090505b806000805160206141388339815191525580f35b61ffff601154166001600160401b0360075460401c1611610a905761010061ff0019600d541617600d556040519360208501602086526001548091526040860160408260051b88010191600187527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69187905b828210610bae57505050508585967f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a1610b6660018060a01b036009541691548093611f9a565b92813b156106b35784926040519485938492637903ab2760e11b845260048401525af1801561064457610b9a575b80610a90565b610ba390611388565b610103578038610b94565b9091929360206003610beb6001938d603f1990820301865288548152848060a01b03858a0154168482015260609081604082015201898901611acb565b960192019201909291610b1c565b8301013590508338610a5b565b828552602085208592916004830135601f19165b808510610c5f5760019450836004013511610c40575b505060040135811b019055610a78565b8201850135600019600484013560031b60f8161c191690553880610c30565b838201870135835560209485019460019093019290910190610c1a565b610c8d368460040135838601611423565b926001600160401b0360175416604051610ca6816113cc565b600281526020810195865233604082015281600052601860205260406000209581516003811015610e755760ff80198954169116178755519586516001600160401b038111610e6057610d0981610d006001850154611a91565b60018501611b61565b6020601f8211600114610dde57908060029392600080516020614118833981519152999a600092610dd3575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610d7e826115cd565b166001600160401b03196017541617601755610dbb60405193849360028552336020860152608060408601526080850191816004013591016116ed565b9060608301520390a1610dce3433613460565b610a95565b015190503880610d35565b6001830160005260206000209860005b601f1984168110610e4857509160008051602061411883398151915298996001926002959483601f19811610610e2f575b505050811b016001820155610d4d565b015160001960f88460031b161c19169055388080610e1f565b828201518b556001909a019960209283019201610dee565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b604051634be9251d60e11b8152600490fd5b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6040516341f8b8eb60e11b8152600490fd5b60ff915060101c16386109b1565b5034610103578060031936011261010357600190600080516020614138833981519152828154146101a857828155336000908152601a602052604090209283549061ffff9081831692831561105a57829060101c16918391808795818a01915b610fd4575b50505086610fb6937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515610fbd575b610f9e8133613196565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601a60205260409020859055610f94565b9091939483811696828810156110515787600052602080918582526040600020604051611000816113b1565b89825492838352015493849101524310611046578594938896889461102786958a95611f9a565b9c60005252600082604082208281550155011696600019011694610f40565b985050509493610f45565b96509493610f45565b6040516364b0557f60e01b8152600490fd5b503461010357806003193601126101035761108561366a565b61ffff61109b8160145416826011541690611fba565b166110f657600d805463ff0000001916630100000017905560095481906001600160a01b0316803b156101965781906004604051809481936341c0e1b560e01b83525af18015610644576110ed575080f35b6100ee90611388565b604051636b62255160e11b8152600490fd5b50806003193601126101035761111c61366a565b6100ee61368b565b5034610103576020366003190112610103576100ee61062b61145f565b50346101035760203660031901126101035761115b61366a565b6100ee6004356136e8565b50346101035760209081600319360112610103576001600160401b03916004358381116102765736602382011215610276576111ac903690602481600401359101611423565b923383526012825261ffff604084205416156112a95783511561129757338352601e82526040832091845191821161069b576111f2826111ec8554611a91565b85611b61565b80601f83116001146112335750839482939492611228575b50508160011b916000199060031b1c19161790555b6106dd336119a5565b01519050388061120a565b90601f198316958486528286209286905b88821061127f57505083600195969710611266575b505050811b01905561121f565b015160001960f88460031b161c19169055388080611259565b80600185968294968601518155019501930190611244565b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261083b573415611379575060ff600d5460081c166108fc573381526003602052604081205415611320575b33815260036020526040812061130c348254611f9a565b905561131a34600254611f9a565b60025580f35b600454600160401b811015611365576113428160016113609301600455611921565b81546001600160a01b0360039290921b91821b19163390911b179055565b6112f5565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b03811161139b57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761139b57604052565b606081019081106001600160401b0382111761139b57604052565b90601f801991011681019081106001600160401b0382111761139b57604052565b6001600160401b03811161139b57601f01601f191660200190565b92919261142f82611408565b9161143d60405193846113e7565b82948184528183011161145a578281602093846000960137010152565b600080fd5b600435906001600160401b038216820361145a57565b35906001600160401b038216820361145a57565b9181601f8401121561145a578235916001600160401b03831161145a576020808501948460051b01011161145a57565b6001600160401b03811161139b5760051b60200190565b35906001600160a01b038216820361145a57565b92916114ef826114b9565b916114fd60405193846113e7565b829481845260208094019160051b810192831161145a57905b8282106115235750505050565b83809161152f846114d0565b815201910190611516565b92919092611547846114b9565b9161155560405193846113e7565b829480845260208094019060051b83019282841161145a5780915b84831061157f57505050505050565b82356001600160401b03811161145a57820184601f8201121561145a5786916115ae8683858095359101611423565b815201920191611570565b356001600160401b038116810361145a5790565b9060016001600160401b03809316019182116115e557565b634e487b7160e01b600052601160045260246000fd5b9190916001600160401b03808094169116019182116115e557565b9035603e198236030181121561145a570190565b6001600160401b039190604082018361164283611475565b16835260209182810135601e198236030181121561145a570192828435940194841161145a578360051b3603851361145a576040818401529083905260600192919060005b828110611695575050505090565b909192938280600192838060a01b036116ad896114d0565b16815201950193929101611687565b9035601e198236030181121561145a5701602081359101916001600160401b03821161145a57813603831361145a57565b908060209392818452848401376000828201840152601f01601f1916010190565b61173761172c61171e8380611616565b60408552604085019061162a565b916020810190611616565b91602081830391015281359160ff831680930361145a5761176460409161177494845260208101906116bc565b91909281602082015201916116ed565b90565b90918092808252602080920191808260051b86010194846000915b8483106117a3575050505050505090565b90919293949596601f198282030187526117bd8884611616565b90813560de198336030181121561145a578201916040908183526117e18480611616565b6117f760e091828587015261012086019061170e565b926118048a870187611616565b6001600160401b03611839611827603f1997606094898b830301868c015261170e565b926080948a0135858a01528901611475565b169160a092838801528701359263ffffffff60e01b841680940361145a578b9561186f61187f9460c096878b01528a018a6116bc565b92909189850301908901526116ed565b94013561010084015201359081151580920361145a578601529684019584019493926001019190611792565b906080806118ca6118bc8580611616565b60a0855260a085019061162a565b936001600160401b03806118e060208401611475565b166020860152604082013560408601526118fc60608301611475565b166060850152013591015290565b818110611915575050565b6000815560010161190a565b6004548110156119585760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b601f5481101561195857601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8070190600090565b6000818152602080526040812054611a0757601f54600160401b8110156113655790826119f46119dd84600160409601601f5561196e565b819391549060031b91821b91600019901b19161790565b9055601f54928152602080522055600190565b905090565b91906001830160009082825280602052604082205415600014611a8b57845494600160401b861015611a775760018601808255861015611a6357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b90600182811c92168015611ac1575b6020831014611aab57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611aa0565b9060009291805491611adc83611a91565b918282526001938481169081600014611b3e5750600114611afe575b50505050565b90919394506000526020928360002092846000945b838610611b2a575050505001019038808080611af8565b805485870183015294019385908201611b13565b9294505050602093945060ff191683830152151560051b01019038808080611af8565b9190601f8111611b7057505050565b611b9c926000526020600020906020601f840160051c83019310611b9e575b601f0160051c019061190a565b565b9091508190611b8f565b90808214611c8257611bba8154611a91565b906001600160401b03821161139b578190611bdf82611bd98654611a91565b86611b61565b600090601f8311600114611c1657600092611c0b575b50508160011b916000199060031b1c1916179055565b015490503880611bf5565b81526020808220858352818320935090601f1985169083905b828210611c69575050908460019594939210611c50575b505050811b019055565b015460001960f88460031b161c19169055388080611c46565b8495819295850154815560018091019601940190611c2f565b5050565b6017546001600160401b0382811692908083168410611cb15760405163040aaa0560e11b8152600490fd5b808360401c168410611af85780604093841c165b848282161115611d2c57505091602091611cff7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946115cd565b67ffffffffffffffff60401b60175491831b169067ffffffffffffffff60401b19161760175551908152a1565b611d49816001600160401b03166000526018602052604060002090565b60028181015482546001600160a01b03949293918516919060ff166003811015611f85578695818603611ddb5750506001600160a01b039091166000908152601060205260409020611da091600101908401611ba8565b611dbd816001600160401b03166000526018602052604060002090565b91600090818455600193611dd2858201612027565b01550116611cc5565b919394955091885193611dfd85611df6816001809501611acb565b03866113e7565b6020808680518101031261145a5781818c9701519514600014611f3a578490611e268285612070565b601954611e339043611f9a565b92875190611e40826113b1565b8482528282018481526001600160a01b0387166000908152601a602052604090209091909283549161ffff9384848180961695869160101c1690611e8391611fba565b169c60009d8e5282870188528d209251835551910155611ea290611fa7565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a16009541690813b15610276578291602483928a5195869384926345f5448560e01b845260048401525af1908115611f2f57509084939291611f20575b50611da0565b611f2990611388565b38611f1a565b8751903d90823e3d90fd5b505082935091611f4a9192611fd0565b6009541690813b1561145a578651916316989f6f60e21b83528260048160009485945af1908115611f2f57509084939291611f205750611da0565b60246000634e487b7160e01b81526021600452fd5b919082018092116115e557565b90600161ffff809316019182116115e557565b91909161ffff808094169116019182116115e557565b90611b9c9161201260018060a01b03821692836000526010602052611ffa81604060002054611f9a565b93600052601060205283604060002055600f54611f9a565b600f556120f3565b919082039182116115e557565b6120318154611a91565b908161203b575050565b81601f6000931160011461204d575055565b90808391825261206c601f60208420940160051c84016001850161190a565b5555565b906120d46120dc9260018060a01b038116906000828152601060205261209a85604083205461201a565b92815260106020526040812060018101848154811590816120ea575b50156120e1575090826002926120cf9483555501612027565b612460565b600f5461201a565b600f55565b92505055612460565b905015386120b6565b919060018060a01b03928381169360008581526020956012875261ffff916040978389832054166123445783600e54168460115416106123105786612136612a91565b9190911061228a5750828252601581528389832054166121a95750505050506121a47f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946121848361278e565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6121b886959994989796612fa8565b92825260109081815284832054935b6001808b831611156122545781617fff911c1690818552601683528b8786205416855283835285878620541015612207576122029082613107565b6121c7565b505093516001600160a01b0390951685525050505060208101919091529092507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd915080604081016121a4565b5050505050506121a491929395507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9450612184565b9596506121a49450906015899493927ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75999a936122c5612c60565b835252205416612302575b6122d984612bee565b6122e28361278e565b516001600160a01b03928316815292909116602083015281906040820190565b61230b8461297b565b6122d0565b50505050506121a47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461218483612bee565b612355869598979699949399612f71565b988252601090818152848320549861236c8b612b7d565b8560115416905b868116828111612428578281101561240b57508061239361239992611fa7565b90612f1f565b9c909c5b8c11156123bc576123ae908d61306e565b6123b78c612b7d565b612373565b505094516001600160a01b0390961686525050505060208201929092529193507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979250819050604081016121a4565b869d919d526013845282888720541686528484528786205461239d565b50505050505050506121a491929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612184565b9160018060a01b0392838116926000918483526020946015865261ffff9060409482868220541661264f57818152601288528286822054161561263e5784156125b9576124ac84612f71565b918152601080895286822054925b60018086831611156125a85781617fff911c169081845260138b528b89852054168452828b52848985205411156124fa576124f5908261306e565b6124ba565b5050505050919395509193505b60145416156125a357612518612a91565b90612521612adb565b90921061256a57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016121a4565b915091506121a47ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759361259b612c60565b6122d0612814565b505050565b505050505091939550919350612507565b50916125ec919597507f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b94969350612da9565b8451908152a1601454166125fd5750565b6121a47f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9161262a612adb565b929091612635612814565b61218483612bee565b8551632a55ca5360e01b8152600490fd5b90939596869893959815612755579261fffe92949361266d87612fa8565b9483526010918282528a8420549580976001968792831b168160145416925b6126e1575b50509a516001600160a01b039098168852505050506020840194909452509293507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9250905080604081016121a4565b81811683811161274f578e90808511156127335750508061270461270a92611fa7565b90612b94565b9990995b89101561272e5761271f908a613107565b61272889612b7d565b8761268c565b612691565b885260168652872054841687528585528d87205490999061270e565b50612691565b955050505090936127877f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949561297b565b51908152a1565b611b9c90604061ffff6127a48160145416611fa7565b9260018060a01b031660009181835260156020528383209085169061ffff199082828254161790558184526016602052848420836001600160601b0360a01b825416179055601454161760145581526010602052205490612b25565b61ffff90811660001901919082116115e557565b61ffff8060145416801561296957600161283082821115613051565b6000818152601660208181526040808420805487865282862080546001600160a01b0392831680895260158752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b0319908116909217909355898952845416909117909255939691949392916128c691896128b783612800565b16906014541617601455612fcd565b8483528581528184842054168352601091828252848420549686809960028160145416925b6128fe575b505050505050505050505050565b818116838111612963578381101561294757508061270461291e92611fa7565b9b909b5b8b101561294257612933908c613107565b61293c8b612b7d565b896128eb565b6128f0565b889c919c52838652848989205416885286865288882054612922565b506128f0565b6040516340d9b01160e01b8152600490fd5b61298490612fa8565b61ffff8060145416906129978284613107565b806129a183612800565b1661ffff1960145416176014556129b782612fcd565b8083168092146125a357919061fffe906000818152601691602083815260018060a01b0360409481868620541685526010938484526129f9878720548a612b25565b85528083528186862054168552838352858520549780996001988992831b168160145416925b612a3157505050505050505050505050565b8181168381116129635783811015612a75575080612704612a5192611fa7565b9b909b5b8b101561294257612a66908c613107565b612a6f8b612b7d565b89612a1f565b889c919c52838652848989205416885286865288882054612a55565b61ffff6011541615612969577f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d546001600160a01b03166000818152601060205260409020549091565b61ffff6014541615612969577f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49546001600160a01b03166000818152601060205260409020549091565b9190915b60018061ffff83161115612b775781617fff911c169083600083815260209060168252601060409260018060a01b03848420541683525220541015612b7757612b729082613107565b612b29565b50509050565b60011b906201fffe61fffe8316921682036115e557565b91909161ffff92604060008584168152601660205260018060a01b03808383205416825260106020528282205496841682526016602052828220541681526010602052205490818510612be75750509190565b9350919050565b611b9c90604061ffff612c048160115416611fa7565b9260018060a01b031660009181835260126020528383209085169061ffff199082828254161790558184526013602052848420836001600160601b0360a01b825416179055601154161760115581526010602052205490612ecd565b61ffff80601154168015612969576001612c7c82821115613051565b6000818152601360208181526040808420805487865282862080546001600160a01b0392831680895260128752858920805461ffff199081168d17909155918416808a52868a20805484168c17905588885283546001600160a01b031990811690921790935589895284541690911790925593969194939291612d129189612d0383612800565b1690601154161760115561300f565b8483528581528184842054168352601091828252848420549686809960028160115416925b612d4957505050505050505050505050565b8181168381116129635783811015612d8d575080612393612d6992611fa7565b9b909b5b8b111561294257612d7e908c61306e565b612d878b612b7d565b89612d37565b889c919c52838652848989205416885286865288882054612d6d565b612db290612f71565b9061ffff90816011541691612dc7838561306e565b80612dd184612800565b1661ffff196011541617601155612de78361300f565b808416809314612ec75760009280845260139360209185835260018060a01b03926040938085852054168452601092838352612e26868620548b612ecd565b845287825280858520541684528282528484205497612e448a612b7d565b8760115416905b888116828111612eb85782811015612e9c575080612393612e6b92611fa7565b9b909b5b8b1115612e8e57612e80908c61306e565b612e898b612b7d565b612e4b565b505050505050505050915050565b879c919c52828552838888205416875285855287872054612e6f565b50505050505050505050915050565b50915050565b9190915b60018061ffff83161115612b775781617fff911c169083600083815260209060138252601060409260018060a01b03848420541683525220541115612b7757612f1a908261306e565b612ed1565b919061ffff604060008286168152601360205260018060a01b0380838320541682526010602052828220549385168252601360205282822054168152601060205220549384821115612be75750509190565b6001600160a01b031660009081526012602052604090205461ffff16908115612f9657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526015602052604090205461ffff16908115612f9657565b61ffff16600090815260166020908152604080832080546001600160a01b031981169091556001600160a01b0316835260159091529020805461ffff19169055565b61ffff16600090815260136020908152604080832080546001600160a01b031981169091556001600160a01b0316835260129091529020805461ffff19169055565b1561305857565b634e487b7160e01b600052600160045260246000fd5b61309361ffff80806011541693169361308984861115613051565b1691821115613051565b6000828152601360208181526040808420805486865282862080546001600160a01b0392831680895260128752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61312261ffff80806014541693169361308984861115613051565b6000828152601660208181526040808420805486865282862080546001600160a01b0392831680895260158752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b8147106131f8576000918291829182916001600160a01b03165af13d156131f3573d6131c181611408565b906131cf60405192836113e7565b8152600060203d92013e5b156131e157565b604051630a12f52160e11b8152600490fd5b6131da565b60405163cd78605960e01b8152306004820152602490fd5b600154811015611958576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b906132609061325a8184613439565b82611fd0565b60ff600d5460081c16156132715750565b60018054600082815b838110613408575b50501561328e57505050565b6001600160a01b038316600090815260106020526040902080546132e2949091600201604051926132be846113cc565b83526020936132e98585019260018060a01b03809516845260405198898092611acb565b03886113e7565b60408401968752600160401b81101561139b57808661330a92018755613210565b9290926133f2576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b03831161139b57613357836133518754611a91565b87611b61565b81601f84116001146133905750928293918392600094613385575b50501b916000199060031b1c1916179055565b015192503880613372565b919083601f1981168760005284600020946000905b888383106133d857505050106133bf57505050811b019055565b015160001960f88460031b161c19169055388080611c46565b8587015188559096019594850194879350908101906133a5565b634e487b7160e01b600052600060045260246000fd5b8161341282613210565b5001546001600160a01b0387811691161461342f5701839061327a565b5090508238613282565b60018060a01b0316600052601060205261345c6001604060002001918254611f9a565b9055565b919060409283516020838183015280825261347a826113b1565b6001600160401b03806017541691875197613494896113cc565b600092838a52828a0199868b528281019060018060a01b0390818a169c8d845288885260188752858820915160038110156136565760ff801984541691161782556001808301915190815191878311613642576134f583611bd98654611a91565b89908b601f85116001146135d45793600295938193829360809d9c9b9a9997946135c9575b50501b916000199060031b1c19161790555b019151166001600160601b0360a01b82541617905561354a866115cd565b166001600160401b03196017541617601755805199848b52838b01528901528351938460808a0152825b8581106135b5575050508683819360a0938460008051602061411883398151915297611b9c9b9c0101526060830152601f80199101168101030190a1613439565b8181018301518a820160a001528201613574565b01519250388061351a565b50848c528a8c209293929190601f1984168d5b8d82821061362e5750509160809b9a99989795939185600298969410613615575b505050811b01905561352c565b015160001960f88460031b161c19169055388080613608565b8385015186559487019493840193016135e7565b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b89526021600452602489fd5b60ff600d5460181c1661367957565b60405163248c8efb60e11b8152600490fd5b600d5460ff8160101c16610ec0573415610eae5733600090815260106020526040902060010154156136d65760081c60ff16156136cc57611b9c3433613460565b611b9c343361324b565b60405163528fc16560e01b8152600490fd5b600d5460ff8160101c16610ec057811561375a573360009081526010602052604090206001015480156112a9578210156137495760081c60ff161561373157611b9c90336137bf565b8061373f611b9c923361376c565b6108d68133612070565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526010602052604090206001015490918082106137ad576137999161201a565b906000526010602052600160406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526137d8846113b1565b6001600160401b03806017541690604051916137f3836113cc565b60018352602083019187835260018060a01b0393848616604082015260009383855260186020526040852090825160038110156139c05760ff801984541691161782555180518481116139ac57908291600189940191613857826111ec8554611a91565b602090601f831160011461393f57918060029492604096948c92613934575b50508160011b916000199060031b1c19161790555b01920151166001600160601b0360a01b8254161790556138aa826115cd565b166001600160401b0319601754161760175560405192600184528416602084015260806040840152865191826080850152805b83811061391e5750611b9c969750928260a09260008051602061411883398151915295848496850101526060830152601f80199101168101030190a161376c565b80602080928b01015160a08288010152016138dd565b015190503880613876565b838a5260208a209190601f1984168b5b8181106139915750926001928592604098966002989610613978575b505050811b01905561388b565b015160001960f88460031b161c1916905538808061396b565b8284015185558d98506001909401936020938401930161394f565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b87526021600452602487fd5b600d5460ff8160081c169081613ac9575b50610ec0573360009081526010602052604090206001015480156112a957613a0c33613ad7565b50600090338252601e6020528160408120613a278154611a91565b80613a8c575b50505060ff600d5460081c1615613a4957611b9c9150336137bf565b6040611b9c923381526003602052205480613a6a575b5061373f813361376c565b80613a7a613a869260025461201a565b6002556108d633614030565b38613a5f565b82601f8211600114613aa4575050555b813880613a2d565b9091808252613ac2601f60208420940160051c84016001850161190a565b5555613a9c565b60ff915060101c16386139e5565b600081815260208080526040822054919290918015613bb85760001990808201818111613ba457601f5490838201918211613b9057808203613b5e575b505050601f548015613b4a57810190613b2c8261196e565b909182549160031b1b19169055601f55825280526040812055600190565b634e487b7160e01b85526031600452602485fd5b613b7c613b6d6119dd9361196e565b90549060031b1c92839261196e565b905585528380526040852055388080613b14565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b86526011600452602486fd5b50505090565b80518210156119585760209160051b010190565b8115611c82576001600160401b0390818060075416911603908082116115e557600091168152602090601d8252604090818120928251808583829754938481520190855283852092855b85828210613c9457505050613c33925003856113e7565b8351948515613c8c57858110613c8c5785900493825b868110613c595750505050505050565b6001906001600160a01b03613c6e8285613bbe565b51168552601c8452858520613c84888254611f9a565b905501613c49565b505050505050565b855484526001958601958a955093019201613c1c565b91825191613cb7836114b9565b93604094613cc7865191826113e7565b848152601f19613cd6866114b9565b0194602095368784013760005b818110613dc857505060009461ffff8060115416600192839182945b613d72575b505050505060ff60095460a01c16948581029581870414901517156115e5576064613d30950491613e55565b9015613d3a575050565b6007811015613d5c5760ff602492519163282ef1c160e01b8352166004820152fd5b634e487b7160e01b600052602160045260246000fd5b90919293988a858b16838111613dc057600090815260138552908120546001600160a01b031681526010602052604090208493929186918591613db6915490611f9a565b9b01169493613cff565b505098613d04565b6001600160a01b0380613ddb8387613bbe565b51166000526012885261ffff89600020541615613e315790613e1f600192613e038388613bbe565b51166001600160a01b0316600090815260106020526040902090565b54613e2a8286613bbe565b5201613ce3565b8890613e3f60249387613bbe565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415613f575782518514801590613f4c575b613f3f579392919085945b848610613e9d575050505050501015613e9557600090600690565b600190600090565b909192939495613eb7613eb08884613bbe565b5184613f64565b509060049182811015613f2a57613f18576001600160a01b0380613edb8b89613bbe565b5116911603613f085750613efc600191613ef58988613bbe565b5190611f9a565b96019493929190613e7a565b9897505050505050505060009190565b50505050505050505050600090600590565b602183634e487b7160e01b6000525260246000fd5b5050505050905090600190565b508351851415613e6f565b5050505050905090600290565b8151919060418303613f9557613f8e92506020820151906060604084015193015160001a90613fa0565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161402457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156140185780516001600160a01b0381161561400f57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60049081549160005b8381106140465750505050565b61404f81611921565b90546003916001600160a01b039190831b1c811685821614614075575050600101614039565b92935093906000199182810190811161410257906140a6846140996140c594611921565b905490891b1c1691611921565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156140ed5701926140d884611921565b81939154921b1b191690555538808080611af8565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212207bd3b1cdd6497dbb5897ee8d84a565b8bf318dff7647d8eb991d7360204c77ec64736f6c63430008130033","sourceMap":"215:190:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;:::i;:::-;3915:16:44;215:190:60;-1:-1:-1;;;;;215:190:60;3901:10:44;:30;3897:80;;4170:1;215:190:60;;;4170:1:44;;:::i;:::-;215:190:60;;3897:80:44;215:190:60;;-1:-1:-1;;;3954:12:44;;215:190:60;;3954:12:44;215:190:60;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:41;215:190:60;;582:20:41;578:50;;215:190:60;477:1:41;215:190:60;;;12861:10:55;:44;;;;;215:190:60;;;;;;;;;;;;12861:44:55;;12894:10;215:190:60;12861:44:55;;215:190:60;12861:44:55;;;;;;;;;;;215:190:60;;;;;;12861:44:55;;;;:::i;:::-;215:190:60;;12861:44:55;;;;215:190:60;;;12861:44:55;215:190:60;;;;;;;;;12861:44:55;215:190:60;;;578:50:41;215:190:60;;-1:-1:-1;;;611:17:41;;215:190:60;;611:17:41;215:190:60;;;;;;;;;;;;;4184:61:44;;:::i;:::-;-1:-1:-1;;;;;;;;;;;477:1:41;215:190:60;;582:20:41;578:50;;215:190:60;477:1:41;215:190:60;;;667:1:41;;:::i;:::-;215:190:60;;;;;;;;;;-1:-1:-1;;215:190:60;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;215:190:60;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;:::i;:::-;;2692:22:55;215:190:60;;;2692:22:55;;:::i;:::-;215:190:60;-1:-1:-1;;;;;2718:30:55;215:190:60;;-1:-1:-1;;;;;2751:21:55;215:190:60;;2718:54:55;-1:-1:-1;;;;;2718:54:55;;;;;:::i;:::-;215:190:60;;;2692:80:55;;:152;;;215:190:60;2675:236:55;;215:190:60;;;2934:20:55;;215:190:60;;;;2934:20:55;215:190:60;;;;;;;;;:::i;:::-;2934:20:55;215:190:60;;2934:20:55;;;;;;:::i;:::-;215:190:60;2924:31:55;;2959:28;215:190:60;;2959:28:55;215:190:60;2924:63:55;2920:132;;215:190:60;;;3096:22:55;;;215:190:60;3096:22:55;215:190:60;;;;;;;;;;:::i;3096:22:55:-;215:190:60;;;3096:22:55;;3086:33;215:190:60;-1:-1:-1;;;;;215:190:60;3160:54:55;3134:22;215:190:60;;;2692:22:55;3134;:::i;:::-;3160:54;;;:::i;:::-;215:190:60;;;3134:80:55;3130:2146;215:190:60;;;;;;;;3314:104:55;215:190:60;;;;;;:::i;:::-;;;;;:::i;:::-;3314:104:55;;:::i;:::-;-1:-1:-1;;;;;3696:22:55;215:190:60;;;2692:22:55;3696;:::i;:::-;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;:::i;:::-;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;2718:30:55;215:190:60;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;3130:2146:55;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;2692:22:55;215:190:60;:::i;:::-;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;2718:30:55;2959:28;215:190:60;;2959:28:55;215:190:60;;;;-1:-1:-1;;;;;3821:22:55;215:190:60;;;2692:22:55;3821;:::i;:::-;215:190:60;;;3802:18:55;215:190:60;;8399:50:13;215:190:60;;;3849:10:55;8399:50:13;;:::i;:::-;;-1:-1:-1;;;;;3908:22:55;215:190:60;;;2692:22:55;3908;:::i;:::-;215:190:60;-1:-1:-1;;;;;215:190:60;2718:30:55;215:190:60;;;2718:30:55;215:190:60;;;;;;3987:16:55;215:190:60;;3978:73:55;;;;;;215:190:60;;;;;;;;;;;;;;;;3978:73:55;;215:190:60;;3978:73:55;;215:190:60;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;215:190:60;;;;;;;:::i;:::-;3978:73:55;;;;;;;;;;215:190:60;;;4156:34:55;;215:190:60;;;;4156:34:55;:::i;:::-;;:::i;3978:73::-;;;;:::i;:::-;215:190:60;;3978:73:55;;;;;215:190:60;;;;;;;;;3978:73:55;215:190:60;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;215:190:60;;;;;;;;;;;;;;;;3130:2146:55;215:190:60;;;;;;;;;-1:-1:-1;;;;;4212:22:55;215:190:60;;;2692:22:55;4212;:::i;:::-;215:190:60;4212:56:55;4208:1068;;3130:2146;;215:190:60;;4208:1068:55;-1:-1:-1;;;;;5035:22:55;215:190:60;;;2692:22:55;5035;:::i;:::-;215:190:60;;;;;;;;;;;;5001:58:55;;215:190:60;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:190:60;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;2718:30:55;215:190:60;;;;;;5001:58:55;-1:-1:-1;;5001:58:55;;;;;;-1:-1:-1;5001:58:55;;:::i;:::-;215:190:60;4991:69:55;;5078:36;5074:192;;215:190:60;;5074:192:55;-1:-1:-1;;;;;5212:22:55;215:190:60;;;2692:22:55;5212;:::i;:::-;215:190:60;;;5193:18:55;215:190:60;;8399:50:13;215:190:60;;;5240:10:55;8399:50:13;;:::i;215:190:60:-;;;-1:-1:-1;;;;;215:190:60;;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;2920:132:55;215:190:60;;-1:-1:-1;;;3010:31:55;;215:190:60;;3010:31:55;2675:236;215:190:60;;-1:-1:-1;;;2876:24:55;;215:190:60;;2876:24:55;2692:152;215:190:60;;-1:-1:-1;;;;;2788:22:55;215:190:60;;;2692:22:55;2788;:::i;:::-;215:190:60;2788:56:55;;2692:152;;215:190:60;;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;-1:-1:-1;;;;;;;;;;;215:190:60;;;582:20:41;578:50;;215:190:60;;;6210:11:55;;6206:65;;215:190:60;6285:14:55;215:190:60;;;;6281:79:55;;6391:10;215:190:60;;;;;;;;;;6374:37:55;6370:93;;6700:6;6391:10;;;215:190:60;;;;;;;;6473:38:55;215:190:60;;;6473:38:55;:::i;:::-;215:190:60;;6521:29:55;215:190:60;6521:19:55;215:190:60;6521:29:55;:::i;:::-;:19;215:190:60;6391:10:55;215:190:60;;;;;;;;;6565:33:55;6561:99;;215:190:60;6391:10:55;6700:6;:::i;6561:99::-;6638:10;6391;6638;:::i;:::-;6561:99;;6370:93;215:190:60;;-1:-1:-1;;;6434:18:55;;215:190:60;;6434:18:55;6281:79;215:190:60;;-1:-1:-1;;;6322:27:55;;215:190:60;;6322:27:55;6206:65;215:190:60;;-1:-1:-1;;;6244:16:55;;215:190:60;;6244:16:55;215:190:60;-1:-1:-1;215:190:60;;-1:-1:-1;;215:190:60;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;477:1:41;-1:-1:-1;;;;;;;;;;;215:190:60;582:20:41;578:50;;477:1;-1:-1:-1;;;;;;;;;;;215:190:60;4184:61:44;;:::i;:::-;7197:14:55;215:190:60;;;;;;7197:32:55;;;;;;215:190:60;7193:88:55;;;7294:9;:14;7290:70;;7394:2;215:190:60;;;;7374:22:55;;;7370:197;;16316:30;;;:::i;:::-;215:190:60;;;;477:1:41;215:190:60;;;;;;;;;-1:-1:-1;;215:190:60;;;;;:::i;:::-;;;;;;;16373:24:55;-1:-1:-1;;;;;215:190:60;7667:10:55;7647:30;7643:89;;215:190:60;;7667:10:55;215:190:60;;;;7399:21:42;215:190:60;;;;;7399:21:42;;7667:10:55;7399:21:42;:41;215:190:60;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;;;;;;8110:9:55;7294;7667:10;8110:9;:::i;:::-;4769:35:42;215:190:60;8239:25:55;215:190:60;8220:44:55;;;8216:525;;215:190:60;7742:1149:55;;;;;215:190:60;-1:-1:-1;;;;;;;;;;;215:190:60;;;8216:525:55;215:190:60;4985:27:42;215:190:60;;-1:-1:-1;;;;;8326:15:55;215:190:60;;;;-1:-1:-1;8216:525:55;8284:443;215:190:60;;;7197:14:55;215:190:60;;;7197:14:55;215:190:60;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;8413:39:55;;;;;;;;;;;;8603:37;215:190:60;;;;;8569:16:55;215:190:60;;;;8603:37:55;;;:::i;:::-;8560:148;;;;;;215:190:60;;;;;;;;;;;;8560:148:55;;215:190:60;8560:148:55;;215:190:60;8560:148:55;;;;;;;;215:190:60;8284:443:55;8216:525;;8560:148;;;;:::i;:::-;215:190:60;;8560:148:55;;;;215:190:60;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;;477:1:41;215:190:60;;;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;7742:1149:55;215:190:60;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;19228:11:42;215:190:60;;;;;;;:::i;:::-;661:28:43;215:190:60;;;2774:63:43;;215:190:60;;;7667:10:55;215:190:60;2774:63:43;;215:190:60;;;;2735:15:43;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;477:1:41;215:190:60;;;;:::i;:::-;477:1:41;215:190:60;;;:::i;:::-;;;;;;;;;;;661:28:43;215:190:60;;-1:-1:-1;;;;;;;;;;;215:190:60;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;2774:63:43;;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;;;;-1:-1:-1;;;;;2882:23:43;;;:::i;:::-;215:190:60;-1:-1:-1;;;;;215:190:60;19228:11:42;215:190:60;;;19228:11:42;215:190:60;;;;;;;661:28:43;215:190:60;;7667:10:55;215:190:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:43;;;8870:9:55;7294;7667:10;8870:9;:::i;:::-;7742:1149;;215:190:60;;;;-1:-1:-1;215:190:60;;;;;477:1:41;215:190:60;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;-1:-1:-1;;;;;;;;;;;215:190:60;;477:1:41;215:190:60;661:28:43;215:190:60;;;;;;;;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:41;215:190:60;;;;;;;;;;;;;;;;;;;7394:2:55;215:190:60;;;;;;;;;;;;;;;;7643:89:55;215:190:60;;-1:-1:-1;;;7700:21:55;;215:190:60;;7700:21:55;7370:197;215:190:60;;-1:-1:-1;;;7532:24:55;;215:190:60;;7532:24:55;7290:70;215:190:60;;-1:-1:-1;;;7331:18:55;;215:190:60;;7331:18:55;7193:88;215:190:60;;-1:-1:-1;;;7252:18:55;;215:190:60;;7252:18:55;7197:32;215:190:60;;;;;;7197:32:55;;;215:190:60;;;;;;;;;;;;;477:1:41;247:48;-1:-1:-1;;;;;;;;;;;215:190:60;;;582:20:41;578:50;;215:190:60;;;12730:10:55;215:190:60;;;;3737:13:42;215:190:60;;;;;;;;;;;;;;1856:16:42;;;1852:78;;215:190:60;;;;;1974:25:42;;2009:14;;;2098:13;;;;2033:477;477:1:41;;;2033:477:42;215:190:60;;;;20199:36:42;215:190:60;20199:36:42;215:190:60;;;;;;;;;;;;;;;;;;;;;;;3786:14:42;3782:76;;2033:477;3897:6;12730:10:55;;3897:6:42;:::i;:::-;215:190:60;;;12730:10:55;215:190:60;;;;;;;;;;;;;;;;;20199:36:42;;;;215:190:60;;;3782:76:42;12730:10:55;215:190:60;;;;3737:13:42;215:190:60;;;;;12730:10:55;;215:190:60;3782:76:42;;2033:477;215:190:60;;;;;;;2040:10:42;;;;;;;215:190:60;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2283:12:42;-1:-1:-1;2259:76:42;;2349:24;;;;;;;;;;;;;:::i;:::-;215:190:60;;;;;;;;;;;;;;;;;;;;;2033:477:42;;;2259:76;2315:5;;;;;;;;2040:10;;;;;;;1852:78;215:190:60;;-1:-1:-1;;;1895:24:42;;215:190:60;;1895:24:42;215:190:60;;;;;;;;;;;;;4184:61:44;;:::i;:::-;215:190:60;15815:86:42;215:190:60;15815:32:42;215:190:60;;;15860:31:42;215:190:60;;15815:86:42;;:::i;:::-;215:190:60;12417:97:55;;12524:8;215:190:60;;-1:-1:-1;;215:190:60;;;;;12558:16:55;215:190:60;;;-1:-1:-1;;;;;215:190:60;12549:33:55;;;;;215:190:60;;;;;;;;;;;;12549:33:55;;;;;;;;;;215:190:60;;;12549:33:55;;;;:::i;12417:97::-;215:190:60;;-1:-1:-1;;;12477:26:55;;215:190:60;;12477:26:55;215:190:60;;;;;;;;;;4184:61:44;;:::i;:::-;4237:1;;:::i;215:190:60:-;;;;;;;-1:-1:-1;;215:190:60;;;;375:20;215:190;;:::i;:::-;;;;;;;-1:-1:-1;;215:190:60;;;;4184:61:44;;:::i;:::-;4237:1;215:190:60;;4237:1:44;:::i;215:190:60:-;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13064:10:55;;215:190:60;;1317:17:50;215:190:60;;;;;;;;1317:33:50;13026:107:55;;215:190:60;;13146:29:55;13142:81;;13064:10;215:190:60;;13232:16:55;215:190:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:13;13064:10:55;8399:50:13;:::i;215:190:60:-;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13142:81:55;215:190:60;;-1:-1:-1;;;13198:14:55;;215:190:60;;13198:14:55;13026:107;215:190:60;;-1:-1:-1;;;13098:24:55;;13064:10;215:190:60;13098:24:55;;215:190:60;;;13098:24:55;215:190:60;;;;;;;;;;;5558:9:55;:14;5554:68;;215:190:60;;5636:14:55;215:190:60;;;;5632:79:55;;5742:10;215:190:60;;;;;;;;;5725:33:55;5721:101;;215:190:60;5742:10:55;215:190:60;;;;;;;;5832:41:55;5558:9;215:190:60;;5832:41:55;:::i;:::-;215:190:60;;5883:32:55;5558:9;5883:19;215:190:60;5883:32:55;:::i;:::-;:19;215:190:60;;;5721:101:55;215:190:60;;-1:-1:-1;;;215:190:60;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;5742:10:55;215:190:60;;;;;;;;5721:101:55;;215:190:60;-1:-1:-1;;;215:190:60;;;;;;;;5554:68:55;-1:-1:-1;;;5595:16:55;;215:190:60;;5595:16:55;215:190:60;-1:-1:-1;;;;;215:190:60;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:190:60;;;;;;-1:-1:-1;;215:190:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;:::o;:::-;-1:-1:-1;215:190:60;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:190:60;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:190:60;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:190:60;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:190:60;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;;;-1:-1:-1;;215:190:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;215:190:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;-1:-1:-1;215:190:60;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;-1:-1:-1;215:190:60;:::o;2215:404:13:-;-1:-1:-1;215:190:60;;;4352:12:13;215:190:60;;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;;;4352:12:13;215:190:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:13;215:190:60;;;;4352:12:13;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;215:190:60;;;;;;;;;;;4352:24:13;2294:319;215:190:60;;;;;;-1:-1:-1;;;215:190:60;;;;;4352:12:13;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:13;2548:11;:::o;215:190:60:-;-1:-1:-1;;;215:190:60;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;2294:319:13;-1:-1:-1;2590:12:13;-1:-1:-1;;2590:12:13:o;215:190:60:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;215:190:60;;;;-1:-1:-1;215:190:60;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;215:190:60;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20907:1621:42:-;21089:11;215:190:60;-1:-1:-1;;;;;215:190:60;;;;;;;;21115:56:42;;215:190:60;;;;-1:-1:-1;;;21194:28:42;;;;;21111:221;215:190:60;;;;;21243:56:42;;21239:93;;215:190:60;;;;;;21424:24:42;215:190:60;;;;21424:24:42;;;;22433:23;;;215:190:60;22433:23:42;;22472:49;22433:23;;:::i;:::-;-1:-1:-1;;;21089:11:42;215:190:60;;;;;;-1:-1:-1;;;215:190:60;;;21089:11:42;215:190:60;;;;;22472:49:42;20907:1621::o;21406:16::-;3139:36:43;;-1:-1:-1;;;;;215:190:60;;;3139:15:43;215:190:60;;;;;;;3139:36:43;21553:16:42;;;;215:190:60;;;-1:-1:-1;;;;;215:190:60;21553:16:42;;215:190:60;;;;21553:16:42;215:190:60;;;;;;;;21588:41:42;;;;;21553:16;;-1:-1:-1;;;;;;;215:190:60;;;;;;;7399:21:42;215:190:60;;;;;;;;21697:14:42;;;21649:45;215:190:60;:::i;:::-;3297:36:43;;-1:-1:-1;;;;;215:190:60;;;3139:15:43;215:190:60;;;;;;;3297:36:43;3704:45:44;;215:190:60;;;;;;;;;;;:::i;:::-;;;;;21406:16:42;;21584:694;215:190:60;;;;;;;;;;;;;;21778:14:42;;;215:190:60;:::i;:::-;;;;:::i;:::-;21767:37:42;215:190:60;;;;21767:37:42;;215:190:60;;;;21767:37:42;;;;;215:190:60;21827:38:42;;21823:441;3139:15:43;;;21931:6:42;;;;;;:::i;:::-;21960:14;215:190:60;3226:35:42;;:12;:35;:::i;:::-;215:190:60;;;;;;;:::i;:::-;;;;3303:54:42;;;215:190:60;;;-1:-1:-1;;;;;215:190:60;;;;;;3737:13:42;215:190:60;;;;;3303:54:42;;215:190:60;;;;;;;;;;;;;;;;;;;1352:22:42;;;;:::i;:::-;215:190:60;3704:45:44;;215:190:60;;;1385:13:42;;;215:190:60;;;;;;;;;;;;1441:10:42;;;:::i;:::-;215:190:60;;;;;;;;;;;;;;;;;;;;;;3422:85:42;;;22038:16;215:190:60;;22029:47:42;;;;;;215:190:60;;;;;;;;;;;;;;;22029:47:42;;;;;215:190:60;22029:47:42;;;;;;;;;;;;;;;21823:441;;21584:694;;22029:47;;;;:::i;:::-;;;;;215:190:60;;;;;;;;;;21823:441:42;22164:6;;;;;;;;;;:::i;:::-;22202:16;215:190:60;;22193:52:42;;;;;;215:190:60;;;;;;22193:52:42;;3704:45:44;22193:52:42;3704:45:44;;22193:52:42;;;;;;;;;;;;;;;;;;21823:441;21584:694;;215:190:60;;3704:45:44;215:190:60;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;8382:408:42:-;;8768:13;8382:408;8649:39;215:190:60;;;;;;;;;-1:-1:-1;215:190:60;8511:15:42;215:190:60;;8511:55:42;215:190:60;;-1:-1:-1;215:190:60;;8511:55:42;:::i;:::-;215:190:60;-1:-1:-1;215:190:60;8511:15:42;215:190:60;;;;-1:-1:-1;215:190:60;;8649:29:42;215:190:60;8649:39:42;:::i;:::-;:29;215:190:60;8768:13:42;:::i;215:190:60:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;8796:623:42:-;;9347:13;9373:39;8796:623;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;8926:15:42;215:190:60;;8926:55:42;215:190:60;;;;;8926:55:42;:::i;:::-;215:190:60;;;8926:15:42;215:190:60;;;;;;9017:42:42;;215:190:60;;;9074:18:42;;:42;;;;8796:623;-1:-1:-1;9070:199:42;;;215:190:60;;;8926:15:42;215:190:60;;;;;;;;:::i;:::-;9347:13:42;:::i;:::-;9373:29;215:190:60;9373:39:42;:::i;:::-;:29;215:190:60;8796:623:42:o;9070:199::-;215:190:60;;;;9347:13:42;:::i;9074:42::-;9096:20;;;9074:42;;;9514:2248;;;215:190:60;;;;;;;;;-1:-1:-1;;215:190:60;;;;;1317:17:50;215:190:60;;;;;;;;;;;;9630:231:42;;215:190:60;22123:14:42;215:190:60;;;9634:21:42;215:190:60;;-1:-1:-1;10031:267:42;;10888:31;;;:::i;:::-;10933:35;;;;10929:462;;215:190:60;;;;1317:17:50;215:190:60;;;;;;;;11401:234:42;;11681:11;;;;;11708:47;;11681:11;;;;;:::i;:::-;215:190:60;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;11708:47:42;;;;9514:2248::o;11401:234::-;3223:36:48;;;;;;;;;:::i;:::-;215:190:60;;;5270:21:42;215:190:60;;;;;;;;3396:3:48;4737:452;215:190:60;;;;;4744:7:48;;;;215:190:60;;;;;;;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;;;;6878:7:48;5017:43;5013:87;;5145:3;;;;:::i;:::-;4737:452;;5013:87;-1:-1:-1;;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;-1:-1:-1;;;;215:190:60;;;;;;;5080:5:48;;-1:-1:-1;11543:61:42;;-1:-1:-1;215:190:60;;;;11543:61:42;215:190:60;4744:7:48;;;;;;;11543:61:42;4744:7:48;;;;;11543:61:42;4744:7:48;;;;10929:462:42;11010:4;;;11312:48;11010:4;;;1317:17:50;11010:4:42;;;;11312:48;11010:4;;;;;:::i;:::-;215:190:60;;;;;;11030:140:42;;10929:462;11219:11;;;:::i;:::-;11281:10;;;:::i;:::-;215:190:60;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;11030:140:42;11143:11;;;:::i;:::-;11030:140;;10031:267;10190:11;;;;;10221:46;;10190:11;;;;;:::i;9630:231::-;2960:36:49;;;;;;;;;;;:::i;:::-;215:190:60;;;5270:21:42;215:190:60;;;;;;;;3133:3:49;5016:7;3133:3;5016:7;:::i;:::-;215:190:60;9634:21:42;215:190:60;;5107:792:49;;215:190:60;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;:::-;5269:187;;:::i;:::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;5695:85;-1:-1:-1;;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;-1:-1:-1;;;;215:190:60;;;;;;;5760:5:49;;-1:-1:-1;9770:60:42;;-1:-1:-1;215:190:60;;-1:-1:-1;215:190:60;;;9770:60:42;215:190:60;5146:437:49;215:190:60;;;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;;;5146:437:49;;5114:16;;;;;;;;;9770:60:42;5114:16:49;;;;;9770:60:42;5114:16:49;;;;11858:2071:42;;215:190:60;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;1317:17:50;215:190:60;;;;;;;;;;;;11973:431:42;;215:190:60;;;1317:17:50;215:190:60;;;;;;;;1317:33:50;12438:106:42;;12608:18;;12604:523;;3361:36:49;;;:::i;:::-;215:190:60;;;5270:21:42;215:190:60;;;;;;;3534:3:49;4411:462;215:190:60;;;;;4418:7:49;;;;215:190:60;;;;;;;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;;;;6540:7:49;4702:42;4698:86;;4829:3;;;;:::i;:::-;4411:462;;4698:86;4764:5;;;;;;;;;;;;4411:462;11977:22:42;215:190:60;;13208:37:42;13204:74;;13342:31;;:::i;:::-;13439:32;;;:::i;:::-;13485:42;;;13481:368;;-1:-1:-1;;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;;;;;13864:58:42;;215:190:60;;;;13864:58:42;215:190:60;13481:368:42;13569:4;;;;13766:52;;13569:4;;;:::i;:::-;13615;;:::i;13204:74::-;13261:7;;;:::o;4418::49:-;;;;;;;;;;;;;;;12604:523:42;12686:9;;;;;;;12715:30;12686:9;;;;;:::i;:::-;215:190:60;;;;;12715:30:42;11977:22;215:190:60;;12760:336:42;;13110:7;:::o;12760:336::-;13037:44;;12866:32;;;:::i;:::-;12943:4;;;;;:::i;:::-;13001:12;;;:::i;12438:106::-;215:190:60;;-1:-1:-1;;;12507:26:42;;1317:17:50;;12507:26:42;11973:431;12039:18;;;;;;;;;;12035:190;;3687:36:48;215:190:60;3687:36:48;;;;;;:::i;:::-;215:190:60;;;5270:21:42;215:190:60;;;;;;;;3860:3:48;;215:190:60;;;;;;;;;11977:22:42;215:190:60;;5446:792:48;215:190:60;;;5446:792:48;-1:-1:-1;;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;-1:-1:-1;;;;215:190:60;;;;;;;-1:-1:-1;215:190:60;;-1:-1:-1;12314:59:42;;-1:-1:-1;215:190:60;-1:-1:-1;215:190:60;;;;12314:59:42;215:190:60;5446:792:48;215:190:60;;;5453:16:48;;;;;5489:15;;-1:-1:-1;;;5489:15:48;;;5763:12;;;;5608:186;5763:12;;:::i;:::-;5608:186;;:::i;:::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;6033:86;6099:5;;5485:436;215:190:60;;1966:17:50;215:190:60;;;;;;;;;;;;;;;;;;;5485:436:48;;5453:16;;;;12035:190:42;12122:9;;;;;;;;12155:31;12122:9;;;:::i;:::-;215:190:60;;;;12155:31:42;12204:7::o;998:459:48:-;1429:19;998:459;215:190:60;;1119:19:48;215:190:60;11034:22:42;215:190:60;;1119:19:48;:::i;:::-;215:190:60;;;;;;;-1:-1:-1;215:190:60;;;;1149:23:48;215:190:60;;;;;;;;;;;;;;;;;;;;;;;1200:23:48;215:190:60;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;11034:22:42;215:190:60;;;11034:22:42;215:190:60;;;5270:21:42;215:190:60;;;;1429:19:48;;:::i;215:190:60:-;;;;;-1:-1:-1;;215:190:60;;;;;;;:::o;1587:415:48:-;215:190:60;;11977:22:42;215:190:60;;1044:14:50;;1040:61;;215:190:60;2137:25:50;2144:17;;;;2137:25;:::i;:::-;215:190:60;;;;2224:17:50;215:190:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;2307:17:50;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;2224:17:50;;215:190:60;;;;;1841:4:48;;1808:8;;215:190:60;1808:8:48;:::i;:::-;215:190:60;;11977:22:42;215:190:60;;;11977:22:42;215:190:60;1841:4:48;:::i;:::-;215:190:60;;;;;;;;;;;;;;5270:21:42;215:190:60;;;;;;;;5201:1043:48;;;5314:26;1966:17:50;215:190:60;11977:22:42;215:190:60;;5446:792:48;215:190:60;;;5446:792:48;1587:415;;;;;;;;;;;;:::o;5446:792::-;215:190:60;;;5453:16:48;;;;;5489:15;;;;;;5763:12;;;5608:186;5763:12;;:::i;5608:186::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;6033:86;6099:5;;5485:436;215:190:60;;;;;;;;;;;;;;;;;;;;;;;5485:436:48;;5453:16;;;;1040:61:50;215:190:60;;-1:-1:-1;;;1081:9:50;;;;;2137:807:48;2266:36;2137:807;2266:36;:::i;:::-;215:190:60;;11034:22:42;215:190:60;;2377:4:48;;;;;:::i;:::-;2438:8;;;;:::i;:::-;215:190:60;;;11034:22:42;215:190:60;;;11034:22:42;215:190:60;2471:4:48;;;:::i;:::-;215:190:60;;;2491:11:48;;;2487:48;;-1:-1:-1;;215:190:60;-1:-1:-1;;215:190:60;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;;;;;;5270:21:42;215:190:60;;;;2736:3:48;215:190:60;;;;2736:3:48;;:::i;:::-;215:190:60;;;;;;;;;;;;;;;;;;;;2932:3:48;;215:190:60;;;;;;;;;11034:22:42;215:190:60;;5446:792:48;215:190:60;;;2137:807:48;;;;;;;;;;;;:::o;5446:792::-;215:190:60;;;5453:16:48;;;;;5489:15;;;;;;5763:12;;;5608:186;5763:12;;:::i;5608:186::-;5578:216;;5485:436;;6878:7;;6037:42;6033:86;;6163:3;;;;:::i;:::-;6220:7;6181:14;6220:7;:::i;:::-;5446:792;;;5485:436;215:190:60;;;;;;;;;;;;;;;;;;;;;;;5485:436:48;;4002:309;215:190:60;9634:21:42;215:190:60;;1044:14:50;1040:61;;215:190:60;;-1:-1:-1;;;;;215:190:60;-1:-1:-1;215:190:60;;;5270:21:42;215:190:60;;;;;;;;4002:309:48:o;:::-;215:190:60;11977:22:42;215:190:60;;1044:14:50;1040:61;;215:190:60;;-1:-1:-1;;;;;215:190:60;-1:-1:-1;215:190:60;;;5270:21:42;215:190:60;;;;;;;;4002:309:48:o;4563:632::-;;;;4737:452;4750:1;215:190:60;;;;4744:7:48;;;;215:190:60;;;;;-1:-1:-1;;;215:190:60;;;;;1966:17:50;215:190:60;;5270:21:42;215:190:60;;;;;;;;;;;;;;;;;6878:7:48;5017:43;5013:87;;5145:3;;;;:::i;:::-;4737:452;;5013:87;5080:5;;;;4563:632::o;215:190:60:-;;;;;;;;;;;;;;:::o;6305:470:48:-;;;;215:190:60;-1:-1:-1;215:190:60;-1:-1:-1;215:190:60;;;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;5270:21:42;215:190:60;;;;;;;;;;;1966:17:50;215:190:60;;;;;;;;;5270:21:42;215:190:60;;;;6878:7:48;;;;6653:85;;6747:21;;;6305:470;:::o;6653:85::-;6706:21;-1:-1:-1;6706:21:48;;-1:-1:-1;6706:21:48:o;924:459:49:-;1355:19;924:459;215:190:60;;1045:19:49;215:190:60;9634:21:42;215:190:60;;1045:19:49;:::i;:::-;215:190:60;;;;;;;-1:-1:-1;215:190:60;;;;1075:23:49;215:190:60;;;;;;;;;;;;;;;;;;;;;;;1126:23:49;215:190:60;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;9634:21:42;215:190:60;;;9634:21:42;215:190:60;;;5270:21:42;215:190:60;;;;1355:19:49;;:::i;1450:415::-;215:190:60;;9634:21:42;215:190:60;;1044:14:50;;1040:61;;215:190:60;2137:25:50;2144:17;;;;2137:25;:::i;:::-;215:190:60;;;;2224:17:50;215:190:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;2307:17:50;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;;2224:17:50;;215:190:60;;;;;1704:4:49;;1671:8;;215:190:60;1671:8:49;:::i;:::-;215:190:60;;9634:21:42;215:190:60;;;9634:21:42;215:190:60;1704:4:49;:::i;:::-;215:190:60;;;;;;;;;;;;;;5270:21:42;215:190:60;;;;;;;;4885:1020:49;;;4998:25;1966:17:50;215:190:60;9634:21:42;215:190:60;;5107:792:49;215:190:60;;;1450:415:49;;;;;;;;;;;;:::o;5107:792::-;215:190:60;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;5269:187::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;;5146:437;215:190:60;;;;;;;;;;;;;;;;;;;;;;;5146:437:49;;1937:807;2066:36;1937:807;2066:36;:::i;:::-;215:190:60;;;;12443:21:42;215:190:60;;2177:4:49;;;;;:::i;:::-;2238:8;;;;:::i;:::-;215:190:60;;;12443:21:42;215:190:60;;;12443:21:42;215:190:60;2271:4:49;;;:::i;:::-;215:190:60;;;2291:11:49;;;2287:48;;-1:-1:-1;215:190:60;;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;;;;;;;;5270:21:42;215:190:60;;;;2536:3:49;215:190:60;;;;2536:3:49;;:::i;:::-;215:190:60;;;;;;;;;;;;;;;;;;;;2732:3:49;5016:7;2732:3;5016:7;:::i;:::-;215:190:60;12443:21:42;215:190:60;;5107:792:49;;215:190:60;;;5114:16:49;;;;;5150:15;;;;;;5425:12;;;5269:187;5425:12;;:::i;5269:187::-;5239:217;;5146:437;;6540:7;;5699:41;5695:85;;5824:3;;;;:::i;:::-;5881:7;5842:14;5881:7;:::i;:::-;5107:792;;5695:85;5760:5;;;;;;;;;;;;1937:807::o;5146:437::-;215:190:60;;;;;;;;;;;;;;;;;;;;;;;5146:437:49;;5114:16;;;;;;;;;;;;;;1937:807::o;2287:48::-;2318:7;;;;:::o;4237:642::-;;;;4411:462;4424:1;215:190:60;;;;4418:7:49;;;;215:190:60;;;;;-1:-1:-1;;;215:190:60;;;;;1966:17:50;215:190:60;;5270:21:42;215:190:60;;;;;;;;;;;;;;;;;6540:7:49;4702:42;4698:86;;4829:3;;;;:::i;:::-;4411:462;;5967:471;;;215:190:60;;-1:-1:-1;215:190:60;;;;;1966:17:50;215:190:60;;;;;;;;;;;;;;;5270:21:42;215:190:60;;;;;;;;;;;1966:17:50;215:190:60;;;;;;;;;5270:21:42;215:190:60;;;;6540:7:49;;;;6320:33;6316:85;;6410:21;;;5967:471;:::o;1363:226:50:-;-1:-1:-1;;;;;215:190:60;-1:-1:-1;215:190:60;;;1474:17:50;215:190:60;;;;;;;;;1516:8:50;;1512:71;;1363:226::o;1512:71::-;215:190:60;;-1:-1:-1;;;1547:25:50;;;;;1363:226;-1:-1:-1;;;;;215:190:60;-1:-1:-1;215:190:60;;;1474:17:50;215:190:60;;;;;;;;;1516:8:50;;1512:71;;1363:226::o;1595:184::-;215:190:60;;-1:-1:-1;215:190:60;;;1671:17:50;215:190:60;;;;;;;;;;-1:-1:-1;;;;;;215:190:60;;;;;-1:-1:-1;;;;;215:190:60;;;1749:17:50;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;1595:184:50:o;:::-;215:190:60;;-1:-1:-1;215:190:60;;;1671:17:50;215:190:60;;;;;;;;;;-1:-1:-1;;;;;;215:190:60;;;;;-1:-1:-1;;;;;215:190:60;;;1749:17:50;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;1595:184:50:o;215:190:60:-;;;;:::o;:::-;;;;;;;;;;;;2057:412:50;2172:25;215:190:60;;;9634:21:42;215:190:60;;;;2144:17:50;2137:25;2144:17;;;;2137:25;:::i;:::-;215:190:60;2179:17:50;;;;2172:25;:::i;:::-;-1:-1:-1;215:190:60;;;2224:17:50;215:190:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;2307:17:50;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:190:60;;;;;;;;;;;;;;;;;;;2057:412:50:o;:::-;2172:25;215:190:60;;;11405:22:42;215:190:60;;;;2144:17:50;2137:25;2144:17;;;;2137:25;:::i;2172:::-;-1:-1:-1;215:190:60;;;2224:17:50;215:190:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;2307:17:50;215:190:60;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:190:60;;;;;;;;;;;;;;;;;;;2057:412:50:o;1530:331:6:-;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;215:190:60;1749:33:6;;215:190:60;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:6;215:190:60;;;;;;1796:8:6;1792:63;;1530:331::o;1792:63::-;215:190:60;;-1:-1:-1;;;1827:17:6;;;;;215:190:60;;;1611:109:6;215:190:60;;-1:-1:-1;;;1668:41:6;;1623:4;1668:41;;;215:190:60;;;1668:41:6;215:190:60;17506:19:42;215:190:60;;;;;;;;17506:19:42;-1:-1:-1;215:190:60;;;;;-1:-1:-1;215:190:60;:::o;16914:1335:42:-;;17295:6;16914:1335;17172:6;;;;:::i;:::-;17295;;:::i;:::-;215:190:60;17318:14:42;215:190:60;;;;17317:15:42;17313:930;;16914:1335;:::o;17313:930::-;17506:19;215:190:60;;3704:45:44;17506:19:42;3704:45:44;17562:10:42;;;;;;17546:270;17833:17;;;17829:404;;17313:930;;16914:1335;:::o;17829:404::-;-1:-1:-1;;;;;215:190:60;;;;;;7399:21:42;215:190:60;;;;;;;;;;;17891:25:42;18107:45;215:190:60;;;;;;:::i;:::-;;;17988:183:42;;215:190:60;17988:183:42;;;215:190:60;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;17988:183:42;;215:190:60;;;-1:-1:-1;;;215:190:60;;;;;;;;;;;;;:::i;:::-;;;;;;17891:25:42;215:190:60;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;3704:45:44;215:190:60;;;;;;;;;;;;;;;;;;;13261:7:42:o;215:190:60:-;;;;-1:-1:-1;215:190:60;;;;;;;;;;;;;3704:45:44;215:190:60;;3704:45:44;215:190:60;;3704:45:44;215:190:60;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;;;;;3704:45:44;215:190:60;3704:45:44;215:190:60;;;3704:45:44;215:190:60;17551:9:42;17598:22;;;;:::i;:::-;-1:-1:-1;17598:27:42;215:190:60;-1:-1:-1;;;;;215:190:60;;;;;17598:40:42;17594:137;;215:190:60;17551:9:42;;;;17594:137;17662:23;;;17707:5;;;;7765:175;215:190:60;;;;;;-1:-1:-1;215:190:60;7875:21:42;215:190:60;;7875:58:42;215:190:60;;-1:-1:-1;215:190:60;7875:48:42;215:190:60;;;7875:58:42;:::i;:::-;215:190:60;;7765:175:42:o;19328:256::-;;;215:190:60;;;;1953:18:43;;;;;215:190:60;1953:18:43;;;;;;:::i;:::-;-1:-1:-1;;;;;215:190:60;19475:11:42;215:190:60;;;;;;;;;:::i;:::-;-1:-1:-1;215:190:60;;;;2774:63:43;;;215:190:60;;;;2774:63:43;;;215:190:60;;;;;;;;;;;;;;;;;2735:15:43;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;2882:23:43;;;:::i;:::-;215:190:60;-1:-1:-1;;;;;215:190:60;19475:11:42;215:190:60;;;19475:11:42;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:190:60;19570:6:42;215:190:60;;;;;;;;;;;;;;;;;2187:195:43;;;;19570:6:42;:::i;215:190:60:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;-1:-1:-1;215:190:60;;;;;;;;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;3989:118:44;215:190:60;4038:8:44;215:190:60;;;;4034:67:44;;3989:118::o;4034:67::-;215:190:60;;-1:-1:-1;;;4069:21:44;;;;;8972:627:55;9170:14;215:190:60;;;;;;9166:70:55;;9249:9;:14;9245:70;;9351:10;215:190:60;;;;7399:21:42;215:190:60;;;;;15306:52:42;;215:190:60;15306:57:42;9325:88:55;;215:190:60;;;;9427:15:55;9423:118;;9582:9;9249;9351:10;9582:9;:::i;9423:118::-;9500:9;9249;9351:10;9500:9;:::i;9325:88::-;215:190:60;;-1:-1:-1;;;9385:17:55;;;;;9765:784;9971:14;215:190:60;;;;;;9967:70:55;;10050:11;;10046:68;;10181:10;215:190:60;;;;7399:21:42;215:190:60;;;;;16380:52:42;;215:190:60;10207:15:55;;10203:77;;10293:20;-1:-1:-1;10293:20:55;10289:79;;215:190:60;;;;10381:15:55;10377:116;;10535:6;10181:10;;10535:6;:::i;10377:116::-;10181:10;18699:6:42;18929;10181:10:55;;18699:6:42;:::i;:::-;18823;10181:10:55;;18823:6:42;:::i;10289:79:55:-;215:190:60;;-1:-1:-1;;;10336:21:55;;;;;10046:68;215:190:60;;-1:-1:-1;;;10084:19:55;;;;;8012:364:42;-1:-1:-1;;;;;215:190:60;-1:-1:-1;215:190:60;;;8139:21:42;215:190:60;;;;;;8139:48:42;215:190:60;;;8201:14:42;;;8197:81;;8288:15;;;:::i;:::-;215:190:60;-1:-1:-1;215:190:60;8139:21:42;215:190:60;;;;-1:-1:-1;215:190:60;8313:48:42;215:190:60;8012:364:42:o;8197:81::-;215:190:60;;-1:-1:-1;;;8238:29:42;;;;;19630:259;;;215:190:60;;1310:18:43;;;;;215:190:60;1310:18:43;;;;;;:::i;:::-;-1:-1:-1;;;;;215:190:60;19778:11:42;215:190:60;;;;;;;;;:::i;:::-;1463:25:43;215:190:60;;1310:18:43;2774:63;;215:190:60;;;;;;;;;;;;;;2774:63:43;;215:190:60;-1:-1:-1;215:190:60;;;;2735:15:43;1310:18;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:25:43;215:190:60;;;;;;;;;;:::i;:::-;1310:18:43;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;1463:25:43;215:190:60;;;;;;;;;;;;;;;2774:63:43;;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;;;;2882:23:43;;;:::i;:::-;215:190:60;-1:-1:-1;;;;;215:190:60;19778:11:42;215:190:60;;;19778:11:42;215:190:60;;;;1463:25:43;215:190:60;;;;1310:18:43;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;19875:6:42;215:190:60;;;;;;;-1:-1:-1;;;;;;;;;;;215:190:60;;;;;;;;;;;;;;;;;;;;1545:196:43;;;;19875:6:42;:::i;215:190:60:-;;1310:18:43;215:190:60;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;;;1310:18:43;215:190:60;;;;-1:-1:-1;;215:190:60;;;;;;;;;;;1463:25:43;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1463:25:43;215:190:60;;;;1310:18:43;215:190:60;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;10729:1523:55;11119:14;215:190:60;;;;;;11119:32:55;;;;10729:1523;11115:88;;;11324:10;215:190:60;;;;7399:21:42;215:190:60;;;;;16380:52:42;;215:190:60;11349:11:55;;11345:73;;8720:53:13;11324:10:55;8720:53:13;:::i;:::-;;-1:-1:-1;11324:10:55;;215:190:60;;11532:16:55;215:190:60;;;;;;;;;;:::i;:::-;;;;10729:1523:55;215:190:60;;;;11119:14:55;215:190:60;;;;11575:15:55;11571:626;;12238:6;11324:10;;;12238:6;:::i;11571:626::-;215:190:60;18929:6:42;11324:10:55;;215:190:60;;11728:16:55;215:190:60;;;;11774:19:55;11770:262;;11571:626;11324:10;18699:6:42;11324:10:55;;18699:6:42;:::i;11770:262:55:-;215:190:60;11864:37:55;12002:14;215:190:60;16380:25:42;215:190:60;11864:37:55;:::i;:::-;16380:25:42;215:190:60;11943:10:55;11324;11943;:::i;12002:14::-;11770:262;;;215:190:60;;11479:17:55;215:190:60;;;11479:17:55;;;215:190:60;;;;;;;;;;;;;;;;11479:17:55;215:190:60;;;;;;;;;16380:52:42;215:190:60;;;:::i;:::-;;;;;11119:32:55;215:190:60;;;;;;11119:32:55;;;2787:1388:13;-1:-1:-1;215:190:60;;;2990:12:13;215:190:60;;;;;;;-1:-1:-1;;2990:12:13;;3024:15;;;;-1:-1:-1;;215:190:60;;;;;;;;;11479:17:55;215:190:60;;;;;;;;;;3506:26:13;;;3502:398;;3020:1149;215:190:60;;;11479:17:55;215:190:60;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11479:17:55;215:190:60;;;;;;;;;2990:12:13;4104:11;:::o;215:190:60:-;-1:-1:-1;;;215:190:60;;;;;;;;3502:398:13;215:190:60;3572:22:13;3694:26;3572:22;;:::i;:::-;215:190:60;;;;;;3694:26:13;;;;:::i;215:190:60:-;;;;;;;;;;;;3502:398:13;;;;;215:190:60;-1:-1:-1;;;215:190:60;;;;;;;;;-1:-1:-1;;;215:190:60;;;;;;;;3020:1149:13;4146:12;;;;:::o;215:190:60:-;;;;;;;;;;;;;;;:::o;13759:902:55:-;13869:11;;13865:48;;-1:-1:-1;;;;;215:190:60;;;13955:21:55;215:190:60;;;;;;;;;;;13879:1:55;215:190:60;;;;;;14014:18:55;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14121:19:55;;;14117:56;;14186:23;;;14182:238;;215:190:60;;;14492:9:55;;14503:18;;;;;;13759:902;;;;;;;:::o;14492:9::-;215:190:60;;-1:-1:-1;;;;;14556:11:55;215:190:60;14556:11:55;;:::i;:::-;215:190:60;;;;14539:16:55;215:190:60;;;;;14539:46:55;215:190:60;;;14539:46:55;:::i;:::-;215:190:60;;;14492:9:55;;14182:238;14403:7;;;;;;:::o;215:190:60:-;;;;;;;;;;;;-1:-1:-1;215:190:60;;;;;;15231:888:55;;215:190:60;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;215:190:60;;;:::i;:::-;;;;;;;;;;-1:-1:-1;6725:8:42;;;;;;15625:36:55;;-1:-1:-1;215:190:60;;;5969:27:42;215:190:60;;;6021:12:42;;;;6016:250;215:190:60;;;6016:250:42;215:190:60;;;;;;15712:20:55;215:190:60;;;;;;;;;;;;;;;;;;;15736:3:55;15798:229;215:190:60;;15798:229:55;;:::i;:::-;16042:6;;16038:75;;15231:888;;:::o;16038:75::-;215:190:60;;;;;;;;;;16071:31:55;;;;;;215:190:60;16071:31:55;;;215:190:60;16071:31:55;215:190:60;;;;-1:-1:-1;215:190:60;;;;;-1:-1:-1;215:190:60;6021:12:42;215:190:60;;;;;;;;;6035:9:42;;;;;-1:-1:-1;215:190:60;;;598:23:49;215:190:60;;;;;;-1:-1:-1;;;;;215:190:60;;;7399:21:42;215:190:60;;;;;;;;;;;;;6137:59:42;;215:190:60;6137:59:42;;:::i;:::-;215:190:60;;;6021:12:42;;;;6035:9;;;;;;6714;-1:-1:-1;;;;;215:190:60;6786:12:42;;;;:::i;:::-;215:190:60;;-1:-1:-1;215:190:60;1317:17:50;215:190:60;;;;-1:-1:-1;215:190:60;;;1317:33:50;6751:116:42;;6925:12;6903:35;215:190:60;6925:12:42;;;;;:::i;:::-;215:190:60;;-1:-1:-1;;;;;215:190:60;;;;;7399:21:42;215:190:60;;;;;;;6903:35:42;215:190:60;6880:78:42;;;;:::i;:::-;215:190:60;;6714:9:42;;6751:116;6839:12;;;215:190:60;6839:12:42;;;:::i;:::-;215:190:60;;;-1:-1:-1;;;6826:26:42;;215:190:60;;6826:26:42;;;215:190:60;6826:26:42;1271:1329:40;215:190:60;;1271:1329:40;;215:190:60;;;1628:21:40;;1624:90;;215:190:60;;1728:38:40;;;;:76;;;1271:1329;1724:148;;1887:9;;;;;1882:568;1898:20;;;;;;2463:19;;;;;;;;2459:75;;215:190:60;2543:50:40;2559:33;1271:1329;:::o;2459:75::-;215:190:60;2498:25:40;215:190:60;2498:25:40;:::o;1887:9::-;2063:13;;;;;;1989:102;2063:13;;;;:::i;:::-;;1989:102;;:::i;:::-;215:190:60;;;;;;;;;;2105:116:40;;-1:-1:-1;;;;;215:190:60;2251:14:40;;;;:::i;:::-;215:190:60;;;;2238:27:40;2234:105;;2370:10;2361:19;215:190:60;2370:10:40;;;;;:::i;:::-;215:190:60;2361:19:40;;:::i;:::-;215:190:60;;1887:9:40;;;;;;;2234:105;2285:39;;;;;;;;;;215:190:60;2285:39:40;;:::o;2105:116::-;2167:39;;;;;;;;;;215:190:60;2167:39:40;2183:22;2167:39;:::o;215:190:60:-;;;;;;;;;;;;1724:148:40;1820:41;;;;;;;;215:190:60;1820:41:40;:::o;1728:76::-;215:190:60;;;1770:34:40;;;1728:76;;1624:90;1665:38;;;;;;;;1681:21;1665:38;:::o;2483:766:9:-;215:190:60;;;2483:766:9;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:9;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:9;;;;;;;;;;;;;;-1:-1:-1;;;;;215:190:60;;6946:20:9;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;215:190:60;;;;;;;;;;6633:164:9;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;16525:481:55:-;16608:20;215:190:60;;;16650:9:55;16608:1;16661:10;;;;;;16525:481;;;;:::o;16650:9::-;16693:23;;;:::i;:::-;215:190:60;;;;-1:-1:-1;;;;;215:190:60;;;;;;;;;;16693:31:55;16689:242;;215:190:60;;;;16650:9:55;;16689:242;215:190:60;;;;;;;;;;;;;;;;16770:32:55;16744:23;16770:32;;16744:58;16770:32;;:::i;:::-;215:190:60;;;;;;;16744:23:55;;:::i;:::-;:58;215:190:60;;;;;;;;;;;;;;;;;;;;;;;;;;16744:58:55;215:190:60;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16911:5:55;;;;;;215:190:60;;;;;;16608:1:55;215:190:60;;;16608:1:55;215:190:60;;;;;;;16608:1:55;215:190:60;;;16608:1:55;215:190:60","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":311,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","confirmChange(uint64)":"350a14bf","distributeRewardToRelayers(uint64,uint256)":"f9002bb1","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","stake()":"3a4b66f1","submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":"a8284de3","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointMessagesHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStakedBefore\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_configurationNumber\",\"type\":\"uint64\"}],\"name\":\"confirmChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"height\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"blockHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"crossMessagesHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"distributeRewardToRelayers(uint64,uint256)\":{\"details\":\"The reward includes the fixed relayer reward and accumulated cross-message fees received from the gateway.\",\"params\":{\"height\":\"height of the checkpoint the relayers are rewarded for\",\"reward\":\"The sum of cross-message fees in the checkpoint\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"leave()\":{\"details\":\"it also return the validators initial balance if the subnet was not yet bootstrapped.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\"},\"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint\",\"messages\":\"The list of executed cross-messages\",\"signatories\":\"The addresses of the signatories\",\"signatures\":\"The collected checkpoint signatures\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"add a bootstrap node\"},\"claim()\":{\"notice\":\"Validator claims their released collateral\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward\"},\"distributeRewardToRelayers(uint64,uint256)\":{\"notice\":\"reward the relayers for of the previous checkpoint after processing the one at height `height`.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left. It is not a privileged operation.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake\"},\"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])\":{\"notice\":\"submit a checkpoint for execution.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/subnetActorMock/SubnetManagerTestUtil.sol\":\"SubnetManagerTestUtil\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846\",\"dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194\",\"dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x5d8db3a26a3cb3dfbb61fa5bce7dbaaac4aed0a25cdefdc32453534a5882b39c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f6d26bd882d8fd63c96c78cd028f14453da46fe9955486e53d6c9242e08f0759\",\"dweb:/ipfs/QmWmVEVCZtARF9XndnszZ7Lw8fWz2xroxmjFxufSSbfB2w\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xfd9e0a2943ae6c7a8e102e6e98d73b9397dee93366548d0f0a30712f5d834d19\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1ab497074b6d27cf31091535a3f07fccc219f021cf4a67e773ac7fa7cb68493e\",\"dweb:/ipfs/QmdMDKETq23qTmTeCEeVJ9awFXNxigk2cAYhaaPcckTAce\"]},\"test/subnetActorMock/SubnetManagerTestUtil.sol\":{\"keccak256\":\"0x73c852d5c9a92c1b535ac892fb417af1685af419ad95760c278be8d69618c9c3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0298b53b7a8b3025906fba4593dba27610858c1259773bba682f739c14ba74e9\",\"dweb:/ipfs/QmR5H5geAtHv9z1FSsUyTSmtvRqWQ2GXkb37RNqmxz1wxP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointMessagesHash"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[],"type":"error","name":"NotStakedBefore"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint64","name":"epoch","type":"uint64","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"epoch","type":"uint64","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"_configurationNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"confirmChange"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint64","name":"blockHeight","type":"uint64"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"},{"internalType":"bytes32","name":"crossMessagesHash","type":"bytes32"}]},{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"distributeRewardToRelayers(uint64,uint256)":{"details":"The reward includes the fixed relayer reward and accumulated cross-message fees received from the gateway.","params":{"height":"height of the checkpoint the relayers are rewarded for","reward":"The sum of cross-message fees in the checkpoint"}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"leave()":{"details":"it also return the validators initial balance if the subnet was not yet bootstrapped."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps."},"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint","messages":"The list of executed cross-messages","signatories":"The addresses of the signatories","signatures":"The collected checkpoint signatures"}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"add a bootstrap node"},"claim()":{"notice":"Validator claims their released collateral"},"claimRewardForRelayer()":{"notice":"Relayer claims its reward"},"distributeRewardToRelayers(uint64,uint256)":{"notice":"reward the relayers for of the previous checkpoint after processing the one at height `height`."},"join(bytes)":{"notice":"method that allows a validator to join the subnet"},"kill()":{"notice":"method that allows to kill the subnet when all validators left. It is not a privileged operation."},"leave()":{"notice":"method that allows a validator to leave the subnet"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"stake()":{"notice":"method that allows a validator to increase its stake"},"submitCheckpoint(((uint64,address[]),uint64,bytes32,uint64,bytes32),((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[],address[],bytes[])":{"notice":"submit a checkpoint for execution."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet"},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/subnetActorMock/SubnetManagerTestUtil.sol":"SubnetManagerTestUtil"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x38a9c1e7dc30db637b36e87eb8b21563a0acad65beb1583431ce5b165ae45905","urls":["bzz-raw://215522a9761c5534ea7c7cbb968fd9013f7d07cb79953a689534b7bc2517f846","dweb:/ipfs/QmVkgQMKh1Mw8URtGW1ytEj817B88HtWKyh78qMD9uGskE"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x8c0a78278d6f861c74f166f4e61505cfa60282081523801fa7d3e2008045bbfb","urls":["bzz-raw://da9d6dd3613f7a4c20038309585c1283825d0326cd65020d77562b7b268c4194","dweb:/ipfs/QmQnnhxXe3ZS9VrxdEyRMhzAqazGCPhurzXQwADHro91XF"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x5d8db3a26a3cb3dfbb61fa5bce7dbaaac4aed0a25cdefdc32453534a5882b39c","urls":["bzz-raw://f6d26bd882d8fd63c96c78cd028f14453da46fe9955486e53d6c9242e08f0759","dweb:/ipfs/QmWmVEVCZtARF9XndnszZ7Lw8fWz2xroxmjFxufSSbfB2w"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xfd9e0a2943ae6c7a8e102e6e98d73b9397dee93366548d0f0a30712f5d834d19","urls":["bzz-raw://1ab497074b6d27cf31091535a3f07fccc219f021cf4a67e773ac7fa7cb68493e","dweb:/ipfs/QmdMDKETq23qTmTeCEeVJ9awFXNxigk2cAYhaaPcckTAce"],"license":"MIT OR Apache-2.0"},"test/subnetActorMock/SubnetManagerTestUtil.sol":{"keccak256":"0x73c852d5c9a92c1b535ac892fb417af1685af419ad95760c278be8d69618c9c3","urls":["bzz-raw://0298b53b7a8b3025906fba4593dba27610858c1259773bba682f739c14ba74e9","dweb:/ipfs/QmR5H5geAtHv9z1FSsUyTSmtvRqWQ2GXkb37RNqmxz1wxP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/subnetActorMock/SubnetManagerTestUtil.sol","id":18254,"exportedSymbols":{"LibStaking":[13299],"SubnetActorManagerFacet":[17951],"SubnetManagerTestUtil":[18253]},"nodeType":"SourceUnit","src":"46:360:60","nodes":[{"id":18234,"nodeType":"PragmaDirective","src":"46:23:60","nodes":[],"literals":["solidity","0.8",".19"]},{"id":18236,"nodeType":"ImportDirective","src":"71:85:60","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":18254,"sourceUnit":17952,"symbolAliases":[{"foreign":{"id":18235,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17951,"src":"79:23:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":18238,"nodeType":"ImportDirective","src":"157:56:60","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../src/lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":18254,"sourceUnit":13522,"symbolAliases":[{"foreign":{"id":18237,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"165:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":18253,"nodeType":"ContractDefinition","src":"215:190:60","nodes":[{"id":18252,"nodeType":"FunctionDefinition","src":"279:124:60","nodes":[],"body":{"id":18251,"nodeType":"Block","src":"340:63:60","nodes":[],"statements":[{"expression":{"arguments":[{"id":18248,"name":"_configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"375:20:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":18245,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13299,"src":"350:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$13299_$","typeString":"type(library LibStaking)"}},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"361:13:60","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":13298,"src":"350:24:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":18249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"350:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18250,"nodeType":"ExpressionStatement","src":"350:46:60"}]},"functionSelector":"350a14bf","implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"288:13:60","parameters":{"id":18243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18242,"mutability":"mutable","name":"_configurationNumber","nameLocation":"309:20:60","nodeType":"VariableDeclaration","scope":18252,"src":"302:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18241,"name":"uint64","nodeType":"ElementaryTypeName","src":"302:6:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"301:29:60"},"returnParameters":{"id":18244,"nodeType":"ParameterList","parameters":[],"src":"340:0:60"},"scope":18253,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":18239,"name":"SubnetActorManagerFacet","nameLocations":["249:23:60"],"nodeType":"IdentifierPath","referencedDeclaration":17951,"src":"249:23:60"},"id":18240,"nodeType":"InheritanceSpecifier","src":"249:23:60"}],"canonicalName":"SubnetManagerTestUtil","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[18253,17951,11446,13893,8919],"name":"SubnetManagerTestUtil","nameLocation":"224:21:60","scope":18254,"usedErrors":[1248,1256,6051,6055,6057,6069,6071,6083,6085,6111,6115,6121,6127,6135,6139,6143,6151,6153,6157,6163,6167,6169,6177,6183,6187,6197,11394]}],"license":"MIT OR Apache-2.0"},"id":60} \ No newline at end of file diff --git a/contracts/out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json b/contracts/out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json deleted file mode 100644 index c800eda1cc..0000000000 --- a/contracts/out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220351e70360d30dac1af3d973102a564a83f6cd8b5c875db8f506bb690fa184c6f64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"617:2909:16:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;617:2909:16;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;617:2909:16;1000:28;996:87;;617:2909;;;;-1:-1:-1;;;;;617:2909:16;1096:32;1092:89;;617:2909;;;;-1:-1:-1;;;;;617:2909:16;1194:33;1190:90;;2258:16:37;617:2909:16;;-1:-1:-1;;;;;;617:2909:16;1318:10;617:2909;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;-1:-1:-1;617:2909:16;;;;-1:-1:-1;2937:19:37;;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;;;;;;;3911:74:37;617:2909:16;;;;;-1:-1:-1;617:2909:16;;;;;;;;;;;;:::i;:::-;3911:74:37;;;1549:22:16;617:2909;;;;;;;;-1:-1:-1;;617:2909:16;;;;;;;;;;;;;;;;;-1:-1:-1;;;;617:2909:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;-1:-1:-1;;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;1549:22;617:2909;;;;;;;;;;;;;;1927:28;617:2909;;1549:22;;1927:28;;617:2909;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;-1:-1:-1;617:2909:16;;;;;-1:-1:-1;617:2909:16;;;;;;-1:-1:-1;;;617:2909:16;;;;;;;;;;-1:-1:-1;;;;617:2909:16;;1992:29;617:2909;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;1965:24;617:2909;;1965:24;617:2909;;;;;;;;;;1965:24;-1:-1:-1;617:2909:16;;;-1:-1:-1;617:2909:16;;;;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:25;617:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:25;617:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1965:24;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;1965:24;617:2909;;-1:-1:-1;617:2909:16;;;-1:-1:-1;617:2909:16;-1:-1:-1;617:2909:16;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;1572:25;617:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:25;617:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:37;617:2909:16;3010:23:37;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:37;;;;:::i;:::-;;617:2909:16;;;;;3142:29:37;3138:122;;617:2909:16;3309:23:37;;;;:::i;:::-;;:30;617:2909:16;;;;;;;3357:37:37;;;4150:27;;;4146:116;;617:2909:16;-1:-1:-1;;;;;;;;;;;617:2909:16;;4385:74:37;617:2909:16;;:::i;:::-;;;;;;;;;-1:-1:-1;;;617:2909:16;;;;4385:74:37;;:::i;:::-;617:2909:16;;4526:21:37;-1:-1:-1;4521:677:37;4549:22;;;;;;3353:466;;;;;617:2909:16;3353:466:37;;617:2909:16;2917:18:37;;4526:21;4607:33;;;;:::i;:::-;617:2909:16;-1:-1:-1;;;;;;617:2909:16;;-1:-1:-1;617:2909:16;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;;;-1:-1:-1;;;;;617:2909:16;4751:128:37;;617:2909:16;;;:::i;:::-;;;;;;;;;;4939:107:37;;;617:2909:16;;;-1:-1:-1;;;;;;617:2909:16;;-1:-1:-1;617:2909:16;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;;;;;;;-1:-1:-1;;;;;;617:2909:16;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;-1:-1:-1;;;617:2909:16;;;;;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:37;;;617:2909:16;;;;-1:-1:-1;617:2909:16;;;;;-1:-1:-1;617:2909:16;4751:128:37;617:2909:16;;-1:-1:-1;;;4811:53:37;;-1:-1:-1;;;;;;617:2909:16;;4811:53:37;;;617:2909:16;;;4811:53:37;4146:116;617:2909:16;;-1:-1:-1;;;4200:51:37;;617:2909:16;4200:51:37;;;617:2909:16;;;;;;;;;;;:::i;:::-;4200:51:37;;;3353:466;617:2909:16;3484:41:37;;617:2909:16;;5372:27:37;;;5368:131;;5508:81;617:2909:16;;:::i;:::-;;;;;;;;;-1:-1:-1;;;617:2909:16;;;;5508:81:37;;:::i;:::-;617:2909:16;;5652:21:37;-1:-1:-1;5675:18:37;;;;;;3480:339;;;;617:2909:16;3480:339:37;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:37;;;;:::i;:::-;617:2909:16;;-1:-1:-1;617:2909:16;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;-1:-1:-1;;;;;617:2909:16;6011:4:37;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;617:2909:16;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;-1:-1:-1;;;;;;617:2909:16;;;;;;;5652:21:37;;6268:123;617:2909:16;;;;6328:48:37;;;;;;;;;617:2909:16;6328:48:37;6111:144;617:2909:16;;-1:-1:-1;;;6174:66:37;;;;;617:2909:16;;;;;6174:66:37;5980:118;617:2909:16;;-1:-1:-1;;;6043:40:37;;;;;617:2909:16;;;;;6043:40:37;5368:131;617:2909:16;;-1:-1:-1;;;5422:66:37;;617:2909:16;5422:66:37;;;617:2909:16;;;;;;;;;;;:::i;3480:339:37:-;3629:30;3619:40;;3629:30;;617:2909:16;-1:-1:-1;;;;;;;;;;;617:2909:16;6826:27:37;;6822:115;;617:2909:16;;;6999:21:37;-1:-1:-1;7022:18:37;;;;;;3615:204;;;;617:2909:16;3615:204:37;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:37;;;;:::i;:::-;617:2909:16;;;;-1:-1:-1;617:2909:16;-1:-1:-1;;;;;;;;;;;617:2909:16;;;-1:-1:-1;617:2909:16;;;;:::i;:::-;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;;7278:61:37;7274:153;;617:2909:16;;-1:-1:-1;;;;;617:2909:16;7597:4:37;7538:64;7534:149;;617:2909:16;;;;;;;7747:15:37;617:2909:16;;;;;;;;7780:68:37;7776:412;;6999:21;617:2909:16;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;;-1:-1:-1;;617:2909:16;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;617:2909:16;-1:-1:-1;617:2909:16;-1:-1:-1;;;;;;;;;;;617:2909:16;;-1:-1:-1;617:2909:16;;;;;6999:21:37;;617:2909:16;;;;-1:-1:-1;617:2909:16;;;;;-1:-1:-1;617:2909:16;7776:412:37;617:2909:16;;7890:27:37;8033:140;7890:27;;:::i;:::-;617:2909:16;;;;;;;;7935:65:37;617:2909:16;;;;;;7935:65:37;:::i;:::-;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;617:2909:16;-1:-1:-1;617:2909:16;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;-1:-1:-1;;;;617:2909:16;;;;;;;-1:-1:-1;;;617:2909:16;;;;;8033:140:37;7776:412;;;;7534:149;617:2909:16;;-1:-1:-1;;;7629:39:37;;;;;617:2909:16;;;;;7629:39:37;7274:153;617:2909:16;;-1:-1:-1;;;7366:46:37;;;;;617:2909:16;;;;;7366:46:37;6822:115;617:2909:16;;;;6876:50:37;;;;;;;;;617:2909:16;6876:50:37;3615:204;617:2909:16;;-1:-1:-1;;;3773:31:37;;617:2909:16;;;;3773:31:37;;;;617:2909:16;:::i;:::-;3773:31:37;617:2909:16;;;;-1:-1:-1;617:2909:16;;;;;-1:-1:-1;617:2909:16;3138:122:37;617:2909:16;;-1:-1:-1;;;3198:47:37;;;;;617:2909:16;;;;;3198:47:37;1190:90:16;617:2909;;-1:-1:-1;;;1250:19:16;;;;;996:87;617:2909;;-1:-1:-1;;;1051:21:16;;;;;617:2909;-1:-1:-1;617:2909:16;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;617:2909:16;;;-1:-1:-1;;;;;617:2909:16;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;617:2909:16;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;617:2909:16;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;617:2909:16;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;617:2909:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;617:2909:16;;;;;;;-1:-1:-1;617:2909:16;;;-1:-1:-1;617:2909:16;;;;;;;;;;:::o;9308:320:37:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;617:2909:16;;;-1:-1:-1;;;9566:45:37;;-1:-1:-1;;;;;617:2909:16;;;9566:45:37;;;617:2909:16;;;;;;;;;;;;;;;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220351e70360d30dac1af3d973102a564a83f6cd8b5c875db8f506bb690fa184c6f64736f6c63430008130033","sourceMap":"617:2909:16:-:0;;;;;;;-1:-1:-1;2417:7:16;;-1:-1:-1;;;;;;2417:7:16;260:43:37;;;;;;617:2909:16;260:43:37;;;-1:-1:-1;;;;;260:43:37;;2452:19:16;;2448:82;;617:2909;;;;;2674:593;;;617:2909;;2674:593;;;;;;;;;;;;;;;;;2448:82;260:43:37;;617:2909:16;260:43:37;2494:25:16;;;;;;;;;260:43:37;2494:25:16;617:2909;-1:-1:-1;2417:7:16;;-1:-1:-1;;;;;;2417:7:16;260:43:37;;;;;;617:2909:16;260:43:37;;;-1:-1:-1;;;;;260:43:37;;2452:19:16;;2448:82;;617:2909;;;;;2674:593;;;617:2909;;2674:593;;;;;;;;;;;;;2448:82;2494:25;;;617:2909;2494:25;;260:43:37;2494:25:16;617:2909;2494:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistryDiamond.sol\":\"SubnetRegistryDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x7626ac21fea0b16241edbde8233650b8c7cc4e0faf7ac0f34f7cadf1db03a4fd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://535bd318976c3d4c9a1df5af71a70e47df7021acdc54909de919b16b61fe250b\",\"dweb:/ipfs/QmShbYA6XA4sXFs7QvTAsCcdYmKq1DCLBBgZ7oGKu4pYsC\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0x1a20ec92afa140b1929565892f699b0cfcfb9e3e066f8db754be58671bc0c683\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://648856f5fa57d453a349aba19ec2f3ff69c90b2345db043c16392c4e241bc07a\",\"dweb:/ipfs/QmeuSFveDD2HYTE6exB9pmx9VFU9MVa4oc6QdxsWhRUyfY\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940\",\"dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab\",\"dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb\",\"dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc\",\"dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91\",\"dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff\",\"dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318\",\"dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642\",\"dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014\",\"dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97\",\"dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c\",\"dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a\",\"dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b\",\"dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetRegistryDiamond.sol":"SubnetRegistryDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x7626ac21fea0b16241edbde8233650b8c7cc4e0faf7ac0f34f7cadf1db03a4fd","urls":["bzz-raw://535bd318976c3d4c9a1df5af71a70e47df7021acdc54909de919b16b61fe250b","dweb:/ipfs/QmShbYA6XA4sXFs7QvTAsCcdYmKq1DCLBBgZ7oGKu4pYsC"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0x1a20ec92afa140b1929565892f699b0cfcfb9e3e066f8db754be58671bc0c683","urls":["bzz-raw://648856f5fa57d453a349aba19ec2f3ff69c90b2345db043c16392c4e241bc07a","dweb:/ipfs/QmeuSFveDD2HYTE6exB9pmx9VFU9MVa4oc6QdxsWhRUyfY"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0xe09e20d591a8c9cabf6f2e44a90029fb3b2a8cdd6c09dc4105b81781ffb44546","urls":["bzz-raw://b3c4df8d0fd2aa770abf8b43a134ce0fc0bc3091f97ec02415d09cca09f4f940","dweb:/ipfs/QmSUpMfWLN8WWhvLmbZymCdR48ZmpsuyvBnSPeAtdorxDx"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x805445ebb35ec35ffb437762862b8b6543f5c7bd05da3b5986df4b8c9dfd1b48","urls":["bzz-raw://1946e36135de4476c2889f405a0f0e8d7d03835e19dad9162f6c036fea105cab","dweb:/ipfs/Qma8TsbkvzwLjaDqz5GrLnGupc1zvrrvqhrBhwCGEkEsGJ"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xb4209b44c3965fd233387ece78149461bd64a47788c3af24edb7c99ea1ef8868","urls":["bzz-raw://4db7a4573100063387e170c55a69772b20e403444e9d97b24cc220a71a52fbbb","dweb:/ipfs/QmTYsSjmFsTwuNTXBByZKueJZLpe7RwNzLRWNPxXGA3YKB"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0xd5f3c0079e3002218c63b70b43f6e018eb5d39f064b7d4321b6409c84f6a22b5","urls":["bzz-raw://e5857fe645e020bc964cd53a33e1fbd4fd9d0de405170a8251cc0b040519cbdc","dweb:/ipfs/QmaFUeVbA1mqn7dTJMqgX4DbKx6yzBrSkmeNTcaVjBJd9z"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0xb61284e3d7981a233030df31db55602fb104692d7cb92c6e58ecb54f8836b942","urls":["bzz-raw://00632f2695c5a40776b5c489b3c49fb01f316eab112de788929e2076bdb82e91","dweb:/ipfs/QmVzmckZQ931PvfhXVbZzC5Qa721WTu9bkefQcbQ8WjHqv"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0xb6ca249f7087f420c81d6405b122d7c8386fe3815169c01d338435f534a941f2","urls":["bzz-raw://57203af0442e93b342cbf6dc0cb72d7b25c57d2c520c49221268806ac1171dff","dweb:/ipfs/QmaCcc95fKYZsKkghaNfNdC8U9x7SBWd8ob1BLL1PvYiUs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0x1ec44b7c417dae8bec87da6f1f48eb10a1eacdfb4935144dd9094dc1bbe9aa9b","urls":["bzz-raw://d6fcbd14fe0743c0ea0a8a8d2ea851b4864559c3553773f07d6ae708bcc83318","dweb:/ipfs/QmYb6v6U27FAY4ut6gCZy6oK1MjN165RTxUGhrY6zxtg93"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0xa6c6005ec113e9a508ea3853a7a3a245cbe02f96e7499849f2ac5f4c29c8782c","urls":["bzz-raw://ccfcb933e842c4cb22cc81f9aecfe8924c1a78590b649e7055016e175479f642","dweb:/ipfs/QmQpFyDfkspyXDdtigYwS431ZutgauzVwJiM2xC52ovWQo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x57844d18d78e8e555b2de3581a5e2908403e75252018b9c85d0274799e12a131","urls":["bzz-raw://9125638cad4d136be39501e18307484f7b072ab0a882dc83da0b3a3569337014","dweb:/ipfs/QmZ7Ho1edVXaPn2EwZwvrrwyHfqvZL1WUbt6ionX5GNX7V"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x7ca7b9c2c57102005714da3bdb1684050afd3f3d1e90c9dd5929a005eb17efa3","urls":["bzz-raw://e958a3990a39a77b71b84c241ac3342262349fa38fcbb68fb7f50ddab6d3ba97","dweb:/ipfs/QmQggiqv5n3xPW2dChtqDw2yiRjPsukLWuM58jqcsVo9M4"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0x4d4290087995d669e80f8fdd405bfaae545323393c0c54689b84965ffb87303e","urls":["bzz-raw://c21b563f6bf23afacb38fc97ab94d1afe12e4ad3dfde96d4484068bf26b13a2c","dweb:/ipfs/Qmd5d3EnZwaSRnjG4ZFH2X8HKgymzd6vQgus8A6oEoh5pJ"],"license":"MIT OR Apache-2.0"},"src/structs/Checkpoint.sol":{"keccak256":"0x1982a747516dce183434bbf0e96b5b1fedbf3a90928beffcc046cadf47ee0746","urls":["bzz-raw://253b9df56334aae80fe4a0da805e4fdc3d186fb2624edade864ae06bfd472f2a","dweb:/ipfs/QmVAaz1ViF96LjM9Aknn3vtwQ5a5oDiJRZP47ddJ1V9Fww"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x1ddb626039baf4a4411f06b5340aaa80dcd65e9980da7673b73ab16633d871ce","urls":["bzz-raw://af017eef4cb46262ac29b4cf47faa1fc5d2b61970ec7d6d021eae4cf45b5577b","dweb:/ipfs/QmZJiA2t934fbe62513neQYzxSNswnCRTJybp7d6X2RyWR"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetRegistryDiamond.sol","id":5528,"exportedSymbols":{"FacetCannotBeZero":[6189],"FunctionNotFound":[5310],"GatewayCannotBeZero":[6079],"IDiamond":[8675],"IDiamondCut":[8694],"IDiamondLoupe":[8735],"IERC165":[8746],"LibDiamond":[10200],"SubnetActorDiamond":[5287],"SubnetRegistryActorStorage":[13923],"SubnetRegistryDiamond":[5527]},"nodeType":"SourceUnit","src":"46:3481:16","nodes":[{"id":5289,"nodeType":"PragmaDirective","src":"46:23:16","nodes":[],"literals":["solidity","0.8",".19"]},{"id":5291,"nodeType":"ImportDirective","src":"71:60:16","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"./SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":5288,"symbolAliases":[{"foreign":{"id":5290,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5287,"src":"79:18:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5293,"nodeType":"ImportDirective","src":"132:51:16","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":8676,"symbolAliases":[{"foreign":{"id":5292,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"140:8:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5295,"nodeType":"ImportDirective","src":"184:62:16","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../src/interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":8695,"symbolAliases":[{"foreign":{"id":5294,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"192:11:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5297,"nodeType":"ImportDirective","src":"247:61:16","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":8736,"symbolAliases":[{"foreign":{"id":5296,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"255:13:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5299,"nodeType":"ImportDirective","src":"309:49:16","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":8747,"symbolAliases":[{"foreign":{"id":5298,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"317:7:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5301,"nodeType":"ImportDirective","src":"359:78:16","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"./lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":13924,"symbolAliases":[{"foreign":{"id":5300,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"367:26:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5304,"nodeType":"ImportDirective","src":"438:78:16","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":6198,"symbolAliases":[{"foreign":{"id":5302,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"446:19:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5303,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"467:17:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5306,"nodeType":"ImportDirective","src":"517:48:16","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":5528,"sourceUnit":10201,"symbolAliases":[{"foreign":{"id":5305,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"525:10:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5310,"nodeType":"ErrorDefinition","src":"566:49:16","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"572:16:16","parameters":{"id":5309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5308,"mutability":"mutable","name":"_functionSelector","nameLocation":"596:17:16","nodeType":"VariableDeclaration","scope":5310,"src":"589:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5307,"name":"bytes4","nodeType":"ElementaryTypeName","src":"589:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"588:26:16"}},{"id":5527,"nodeType":"ContractDefinition","src":"617:2909:16","nodes":[{"id":5313,"nodeType":"VariableDeclaration","src":"654:37:16","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"690:1:16","scope":5527,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":5312,"nodeType":"UserDefinedTypeName","pathNode":{"id":5311,"name":"SubnetRegistryActorStorage","nameLocations":["654:26:16"],"nodeType":"IdentifierPath","referencedDeclaration":13923,"src":"654:26:16"},"referencedDeclaration":13923,"src":"654:26:16","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":5326,"nodeType":"StructDefinition","src":"698:197:16","nodes":[],"canonicalName":"SubnetRegistryDiamond.ConstructorParams","members":[{"constant":false,"id":5315,"mutability":"mutable","name":"gateway","nameLocation":"741:7:16","nodeType":"VariableDeclaration","scope":5326,"src":"733:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5314,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5317,"mutability":"mutable","name":"getterFacet","nameLocation":"766:11:16","nodeType":"VariableDeclaration","scope":5326,"src":"758:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5316,"name":"address","nodeType":"ElementaryTypeName","src":"758:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5319,"mutability":"mutable","name":"managerFacet","nameLocation":"795:12:16","nodeType":"VariableDeclaration","scope":5326,"src":"787:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5318,"name":"address","nodeType":"ElementaryTypeName","src":"787:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5322,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"826:21:16","nodeType":"VariableDeclaration","scope":5326,"src":"817:30:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":5320,"name":"bytes4","nodeType":"ElementaryTypeName","src":"817:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5321,"nodeType":"ArrayTypeName","src":"817:8:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":5325,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"866:22:16","nodeType":"VariableDeclaration","scope":5326,"src":"857:31:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":5323,"name":"bytes4","nodeType":"ElementaryTypeName","src":"857:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":5324,"nodeType":"ArrayTypeName","src":"857:8:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"705:17:16","scope":5527,"visibility":"public"},{"id":5471,"nodeType":"FunctionDefinition","src":"901:1127:16","nodes":[],"body":{"id":5470,"nodeType":"Block","src":"986:1042:16","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5336,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1000:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1007:7:16","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":5315,"src":"1000:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1026:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1018:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5338,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:16","typeDescriptions":{}}},"id":5341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1018:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1000:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5347,"nodeType":"IfStatement","src":"996:87:16","trueBody":{"id":5346,"nodeType":"Block","src":"1030:53:16","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5343,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"1051:19:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1051:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5345,"nodeType":"RevertStatement","src":"1044:28:16"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5348,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1096:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1103:11:16","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":5317,"src":"1096:18:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1126:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1118:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5350,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:16","typeDescriptions":{}}},"id":5353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1118:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1096:32:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5359,"nodeType":"IfStatement","src":"1092:89:16","trueBody":{"id":5358,"nodeType":"Block","src":"1130:51:16","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5355,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"1151:17:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5357,"nodeType":"RevertStatement","src":"1144:26:16"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5360,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1194:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1201:12:16","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":5319,"src":"1194:19:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1225:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1217:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5362,"name":"address","nodeType":"ElementaryTypeName","src":"1217:7:16","typeDescriptions":{}}},"id":5365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1217:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1194:33:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5371,"nodeType":"IfStatement","src":"1190:90:16","trueBody":{"id":5370,"nodeType":"Block","src":"1229:51:16","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5367,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"1250:17:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1250:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5369,"nodeType":"RevertStatement","src":"1243:26:16"}]}},{"expression":{"arguments":[{"expression":{"id":5375,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1318:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1322:6:16","memberName":"sender","nodeType":"MemberAccess","src":"1318:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5372,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1290:10:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1301:16:16","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":9620,"src":"1290:27:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1290:39:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5378,"nodeType":"ExpressionStatement","src":"1290:39:16"},{"expression":{"arguments":[{"id":5382,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5330,"src":"1375:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":5385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1403:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1395:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5383,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:16","typeDescriptions":{}}},"id":5386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1395:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1428:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1418:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5387,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5379,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1339:10:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1350:10:16","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":9780,"src":"1339:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":5391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1362:11:16","1388:5:16","1407:9:16"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1339:93:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5392,"nodeType":"ExpressionStatement","src":"1339:93:16"},{"assignments":[5397],"declarations":[{"constant":false,"id":5397,"mutability":"mutable","name":"ds","nameLocation":"1477:2:16","nodeType":"VariableDeclaration","scope":5470,"src":"1443:36:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5396,"nodeType":"UserDefinedTypeName","pathNode":{"id":5395,"name":"LibDiamond.DiamondStorage","nameLocations":["1443:10:16","1454:14:16"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"1443:25:16"},"referencedDeclaration":9590,"src":"1443:25:16","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5401,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5398,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"1482:10:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1493:14:16","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":9602,"src":"1482:25:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$9590_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":5400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:27:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1443:66:16"},{"expression":{"id":5411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":5402,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"1549:2:16","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1552:19:16","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"1549:22:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":5409,"indexExpression":{"expression":{"arguments":[{"id":5405,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"1577:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8746_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8746_$","typeString":"type(contract IERC165)"}],"id":5404,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1572:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8746","typeString":"type(contract IERC165)"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1586:11:16","memberName":"interfaceId","nodeType":"MemberAccess","src":"1572:25:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1549:49:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1601:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1549:56:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5412,"nodeType":"ExpressionStatement","src":"1549:56:16"},{"expression":{"id":5422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":5413,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"1615:2:16","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1618:19:16","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"1615:22:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":5420,"indexExpression":{"expression":{"arguments":[{"id":5416,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"1643:11:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$8694_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$8694_$","typeString":"type(contract IDiamondCut)"}],"id":5415,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1638:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1638:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$8694","typeString":"type(contract IDiamondCut)"}},"id":5418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1656:11:16","memberName":"interfaceId","nodeType":"MemberAccess","src":"1638:29:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1615:53:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1671:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1615:60:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5423,"nodeType":"ExpressionStatement","src":"1615:60:16"},{"expression":{"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":5424,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"1685:2:16","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1688:19:16","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":9587,"src":"1685:22:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":5431,"indexExpression":{"expression":{"arguments":[{"id":5427,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"1713:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$8735_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$8735_$","typeString":"type(contract IDiamondLoupe)"}],"id":5426,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1708:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$8735","typeString":"type(contract IDiamondLoupe)"}},"id":5429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1728:11:16","memberName":"interfaceId","nodeType":"MemberAccess","src":"1708:31:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1685:55:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1743:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1685:62:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5434,"nodeType":"ExpressionStatement","src":"1685:62:16"},{"expression":{"id":5440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5435,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"1758:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":5437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1760:7:16","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":13897,"src":"1758:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5438,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1770:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1777:7:16","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":5315,"src":"1770:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1758:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5441,"nodeType":"ExpressionStatement","src":"1758:26:16"},{"expression":{"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5442,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"1794:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":5444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1796:19:16","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":13900,"src":"1794:21:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5445,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1818:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1825:11:16","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":5317,"src":"1818:18:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1794:42:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5448,"nodeType":"ExpressionStatement","src":"1794:42:16"},{"expression":{"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5449,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"1846:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":5451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1848:20:16","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":13902,"src":"1846:22:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5452,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1871:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1878:12:16","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":5319,"src":"1871:19:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1846:44:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5455,"nodeType":"ExpressionStatement","src":"1846:44:16"},{"expression":{"id":5461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5456,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"1901:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":5458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1903:21:16","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":13906,"src":"1901:23:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5459,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1927:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1934:21:16","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":5322,"src":"1927:28:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1901:54:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5462,"nodeType":"ExpressionStatement","src":"1901:54:16"},{"expression":{"id":5468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5463,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"1965:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$13923_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":5465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1967:22:16","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":13910,"src":"1965:24:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1992:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":5467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1999:22:16","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":5325,"src":"1992:29:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1965:56:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":5469,"nodeType":"ExpressionStatement","src":"1965:56:16"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5330,"mutability":"mutable","name":"_diamondCut","nameLocation":"940:11:16","nodeType":"VariableDeclaration","scope":5471,"src":"913:38:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":5328,"nodeType":"UserDefinedTypeName","pathNode":{"id":5327,"name":"IDiamond.FacetCut","nameLocations":["913:8:16","922:8:16"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"913:17:16"},"referencedDeclaration":8664,"src":"913:17:16","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$8664_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":5329,"nodeType":"ArrayTypeName","src":"913:19:16","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$8664_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":5333,"mutability":"mutable","name":"params","nameLocation":"978:6:16","nodeType":"VariableDeclaration","scope":5471,"src":"953:31:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":5332,"nodeType":"UserDefinedTypeName","pathNode":{"id":5331,"name":"ConstructorParams","nameLocations":["953:17:16"],"nodeType":"IdentifierPath","referencedDeclaration":5326,"src":"953:17:16"},"referencedDeclaration":5326,"src":"953:17:16","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5326_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"912:73:16"},"returnParameters":{"id":5335,"nodeType":"ParameterList","parameters":[],"src":"986:0:16"},"scope":5527,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5510,"nodeType":"FunctionDefinition","src":"2034:1239:16","nodes":[],"body":{"id":5509,"nodeType":"Block","src":"2064:1209:16","nodes":[],"statements":[{"assignments":[5478],"declarations":[{"constant":false,"id":5478,"mutability":"mutable","name":"ds","nameLocation":"2108:2:16","nodeType":"VariableDeclaration","scope":5509,"src":"2074:36:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":5477,"nodeType":"UserDefinedTypeName","pathNode":{"id":5476,"name":"LibDiamond.DiamondStorage","nameLocations":["2074:10:16","2085:14:16"],"nodeType":"IdentifierPath","referencedDeclaration":9590,"src":"2074:25:16"},"referencedDeclaration":9590,"src":"2074:25:16","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":5479,"nodeType":"VariableDeclarationStatement","src":"2074:36:16"},{"assignments":[5481],"declarations":[{"constant":false,"id":5481,"mutability":"mutable","name":"position","nameLocation":"2128:8:16","nodeType":"VariableDeclaration","scope":5509,"src":"2120:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2120:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5484,"initialValue":{"expression":{"id":5482,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"2139:10:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$10200_$","typeString":"type(library LibDiamond)"}},"id":5483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2150:24:16","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":9491,"src":"2139:35:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2120:54:16"},{"AST":{"nodeType":"YulBlock","src":"2270:43:16","statements":[{"nodeType":"YulAssignment","src":"2284:19:16","value":{"name":"position","nodeType":"YulIdentifier","src":"2295:8:16"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2284:7:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":5478,"isOffset":false,"isSlot":true,"src":"2284:7:16","suffix":"slot","valueSize":1},{"declaration":5481,"isOffset":false,"isSlot":false,"src":"2295:8:16","valueSize":1}],"id":5485,"nodeType":"InlineAssembly","src":"2261:52:16"},{"assignments":[5487],"declarations":[{"constant":false,"id":5487,"mutability":"mutable","name":"facet","nameLocation":"2374:5:16","nodeType":"VariableDeclaration","scope":5509,"src":"2366:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5486,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5494,"initialValue":{"expression":{"baseExpression":{"expression":{"id":5488,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5478,"src":"2382:2:16","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$9590_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":5489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2385:31:16","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":9580,"src":"2382:34:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$9575_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":5492,"indexExpression":{"expression":{"id":5490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2417:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:3:16","memberName":"sig","nodeType":"MemberAccess","src":"2417:7:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2382:43:16","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$9575_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":5493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2426:12:16","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":9572,"src":"2382:56:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2366:72:16"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5495,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5487,"src":"2452:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2469:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2461:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5496,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:16","typeDescriptions":{}}},"id":5499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2461:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2452:19:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5507,"nodeType":"IfStatement","src":"2448:82:16","trueBody":{"id":5506,"nodeType":"Block","src":"2473:57:16","statements":[{"errorCall":{"arguments":[{"expression":{"id":5502,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2511:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2515:3:16","memberName":"sig","nodeType":"MemberAccess","src":"2511:7:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5501,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5310,"src":"2494:16:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":5504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2494:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5505,"nodeType":"RevertStatement","src":"2487:32:16"}]}},{"AST":{"nodeType":"YulBlock","src":"2683:584:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2766:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2769:1:16","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2772:12:16"},"nodeType":"YulFunctionCall","src":"2772:14:16"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2753:12:16"},"nodeType":"YulFunctionCall","src":"2753:34:16"},"nodeType":"YulExpressionStatement","src":"2753:34:16"},{"nodeType":"YulVariableDeclaration","src":"2853:65:16","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2880:3:16"},"nodeType":"YulFunctionCall","src":"2880:5:16"},{"name":"facet","nodeType":"YulIdentifier","src":"2887:5:16"},{"kind":"number","nodeType":"YulLiteral","src":"2894:1:16","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2897:12:16"},"nodeType":"YulFunctionCall","src":"2897:14:16"},{"kind":"number","nodeType":"YulLiteral","src":"2913:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2916:1:16","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"2867:12:16"},"nodeType":"YulFunctionCall","src":"2867:51:16"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"2857:6:16","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2982:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2985:1:16","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2988:14:16"},"nodeType":"YulFunctionCall","src":"2988:16:16"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2967:14:16"},"nodeType":"YulFunctionCall","src":"2967:38:16"},"nodeType":"YulExpressionStatement","src":"2967:38:16"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3118:59:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3143:1:16","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3146:14:16"},"nodeType":"YulFunctionCall","src":"3146:16:16"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3136:6:16"},"nodeType":"YulFunctionCall","src":"3136:27:16"},"nodeType":"YulExpressionStatement","src":"3136:27:16"}]},"nodeType":"YulCase","src":"3111:66:16","value":{"kind":"number","nodeType":"YulLiteral","src":"3116:1:16","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3198:59:16","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3223:1:16","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3226:14:16"},"nodeType":"YulFunctionCall","src":"3226:16:16"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"3216:6:16"},"nodeType":"YulFunctionCall","src":"3216:27:16"},"nodeType":"YulExpressionStatement","src":"3216:27:16"}]},"nodeType":"YulCase","src":"3190:67:16","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"3092:6:16"},"nodeType":"YulSwitch","src":"3085:172:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":5487,"isOffset":false,"isSlot":false,"src":"2887:5:16","valueSize":1}],"id":5508,"nodeType":"InlineAssembly","src":"2674:593:16"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2043:9:16","parameters":{"id":5472,"nodeType":"ParameterList","parameters":[],"src":"2052:2:16"},"returnParameters":{"id":5473,"nodeType":"ParameterList","parameters":[],"src":"2064:0:16"},"scope":5527,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5518,"nodeType":"FunctionDefinition","src":"3340:56:16","nodes":[],"body":{"id":5517,"nodeType":"Block","src":"3368:28:16","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5514,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"3378:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3378:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5516,"nodeType":"ExpressionStatement","src":"3378:11:16"}]},"documentation":{"id":5511,"nodeType":"StructuredDocumentation","src":"3279:56:16","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5512,"nodeType":"ParameterList","parameters":[],"src":"3348:2:16"},"returnParameters":{"id":5513,"nodeType":"ParameterList","parameters":[],"src":"3368:0:16"},"scope":5527,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":5526,"nodeType":"FunctionDefinition","src":"3469:55:16","nodes":[],"body":{"id":5525,"nodeType":"Block","src":"3496:28:16","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5522,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"3506:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3506:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5524,"nodeType":"ExpressionStatement","src":"3506:11:16"}]},"documentation":{"id":5519,"nodeType":"StructuredDocumentation","src":"3402:62:16","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5520,"nodeType":"ParameterList","parameters":[],"src":"3476:2:16"},"returnParameters":{"id":5521,"nodeType":"ParameterList","parameters":[],"src":"3496:0:16"},"scope":5527,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetRegistryDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5527],"name":"SubnetRegistryDiamond","nameLocation":"626:21:16","scope":5528,"usedErrors":[5310,6079,6189,9499,9504,9508,9512,9517,9523,9536,9540,9544,9548,9552,9556,9560]}],"license":"MIT OR Apache-2.0"},"id":16} \ No newline at end of file diff --git a/contracts/out/draft-IERC6093.sol/IERC1155Errors.json b/contracts/out/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 2571b391ac..0000000000 --- a/contracts/out/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC1155InsufficientApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155InsufficientApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the ERC6093 custom errors for ERC1155 tokens as defined in https://eips.ethereum.org/EIPS/eip-6093\",\"errors\":{\"ERC1155InsufficientApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155InsufficientApprovalForAll"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","id":568,"exportedSymbols":{"IERC1155Errors":[567],"IERC20Errors":[472],"IERC721Errors":[520]},"nodeType":"SourceUnit","src":"32:6415:2","nodes":[{"id":432,"nodeType":"PragmaDirective","src":"32:24:2","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":472,"nodeType":"ContractDefinition","src":"212:1764:2","nodes":[{"id":442,"nodeType":"ErrorDefinition","src":"555:80:2","nodes":[],"documentation":{"id":434,"nodeType":"StructuredDocumentation","src":"241:309:2","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","name":"ERC20InsufficientBalance","nameLocation":"561:24:2","parameters":{"id":441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":436,"mutability":"mutable","name":"sender","nameLocation":"594:6:2","nodeType":"VariableDeclaration","scope":442,"src":"586:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":435,"name":"address","nodeType":"ElementaryTypeName","src":"586:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":438,"mutability":"mutable","name":"balance","nameLocation":"610:7:2","nodeType":"VariableDeclaration","scope":442,"src":"602:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":437,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":440,"mutability":"mutable","name":"needed","nameLocation":"627:6:2","nodeType":"VariableDeclaration","scope":442,"src":"619:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":439,"name":"uint256","nodeType":"ElementaryTypeName","src":"619:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"585:49:2"}},{"id":447,"nodeType":"ErrorDefinition","src":"798:41:2","nodes":[],"documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"641:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","name":"ERC20InvalidSender","nameLocation":"804:18:2","parameters":{"id":446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":445,"mutability":"mutable","name":"sender","nameLocation":"831:6:2","nodeType":"VariableDeclaration","scope":447,"src":"823:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":444,"name":"address","nodeType":"ElementaryTypeName","src":"823:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"822:16:2"}},{"id":452,"nodeType":"ErrorDefinition","src":"1009:45:2","nodes":[],"documentation":{"id":448,"nodeType":"StructuredDocumentation","src":"845:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","name":"ERC20InvalidReceiver","nameLocation":"1015:20:2","parameters":{"id":451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"mutability":"mutable","name":"receiver","nameLocation":"1044:8:2","nodeType":"VariableDeclaration","scope":452,"src":"1036:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":449,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1035:18:2"}},{"id":461,"nodeType":"ErrorDefinition","src":"1410:85:2","nodes":[],"documentation":{"id":453,"nodeType":"StructuredDocumentation","src":"1060:345:2","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","name":"ERC20InsufficientAllowance","nameLocation":"1416:26:2","parameters":{"id":460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"mutability":"mutable","name":"spender","nameLocation":"1451:7:2","nodeType":"VariableDeclaration","scope":461,"src":"1443:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":454,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":457,"mutability":"mutable","name":"allowance","nameLocation":"1468:9:2","nodeType":"VariableDeclaration","scope":461,"src":"1460:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1460:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":459,"mutability":"mutable","name":"needed","nameLocation":"1487:6:2","nodeType":"VariableDeclaration","scope":461,"src":"1479:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1442:52:2"}},{"id":466,"nodeType":"ErrorDefinition","src":"1680:45:2","nodes":[],"documentation":{"id":462,"nodeType":"StructuredDocumentation","src":"1501:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","name":"ERC20InvalidApprover","nameLocation":"1686:20:2","parameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"mutability":"mutable","name":"approver","nameLocation":"1715:8:2","nodeType":"VariableDeclaration","scope":466,"src":"1707:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":463,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1706:18:2"}},{"id":471,"nodeType":"ErrorDefinition","src":"1931:43:2","nodes":[],"documentation":{"id":467,"nodeType":"StructuredDocumentation","src":"1731:195:2","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","name":"ERC20InvalidSpender","nameLocation":"1937:19:2","parameters":{"id":470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":469,"mutability":"mutable","name":"spender","nameLocation":"1965:7:2","nodeType":"VariableDeclaration","scope":471,"src":"1957:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":468,"name":"address","nodeType":"ElementaryTypeName","src":"1957:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1956:17:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":433,"nodeType":"StructuredDocumentation","src":"58:153:2","text":" @dev Standard ERC20 Errors\n Interface of the ERC6093 custom errors for ERC20 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[472],"name":"IERC20Errors","nameLocation":"222:12:2","scope":568,"usedErrors":[442,447,452,461,466,471]},{"id":520,"nodeType":"ContractDefinition","src":"2134:2092:2","nodes":[{"id":478,"nodeType":"ErrorDefinition","src":"2388:40:2","nodes":[],"documentation":{"id":474,"nodeType":"StructuredDocumentation","src":"2164:219:2","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","name":"ERC721InvalidOwner","nameLocation":"2394:18:2","parameters":{"id":477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"mutability":"mutable","name":"owner","nameLocation":"2421:5:2","nodeType":"VariableDeclaration","scope":478,"src":"2413:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":475,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2412:15:2"}},{"id":483,"nodeType":"ErrorDefinition","src":"2571:46:2","nodes":[],"documentation":{"id":479,"nodeType":"StructuredDocumentation","src":"2434:132:2","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","name":"ERC721NonexistentToken","nameLocation":"2577:22:2","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"tokenId","nameLocation":"2608:7:2","nodeType":"VariableDeclaration","scope":483,"src":"2600:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":480,"name":"uint256","nodeType":"ElementaryTypeName","src":"2600:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2599:17:2"}},{"id":492,"nodeType":"ErrorDefinition","src":"2917:75:2","nodes":[],"documentation":{"id":484,"nodeType":"StructuredDocumentation","src":"2623:289:2","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","name":"ERC721IncorrectOwner","nameLocation":"2923:20:2","parameters":{"id":491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"sender","nameLocation":"2952:6:2","nodeType":"VariableDeclaration","scope":492,"src":"2944:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":488,"mutability":"mutable","name":"tokenId","nameLocation":"2968:7:2","nodeType":"VariableDeclaration","scope":492,"src":"2960:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":487,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":490,"mutability":"mutable","name":"owner","nameLocation":"2985:5:2","nodeType":"VariableDeclaration","scope":492,"src":"2977:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"2977:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2943:48:2"}},{"id":497,"nodeType":"ErrorDefinition","src":"3155:42:2","nodes":[],"documentation":{"id":493,"nodeType":"StructuredDocumentation","src":"2998:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","name":"ERC721InvalidSender","nameLocation":"3161:19:2","parameters":{"id":496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":495,"mutability":"mutable","name":"sender","nameLocation":"3189:6:2","nodeType":"VariableDeclaration","scope":497,"src":"3181:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":494,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3180:16:2"}},{"id":502,"nodeType":"ErrorDefinition","src":"3367:46:2","nodes":[],"documentation":{"id":498,"nodeType":"StructuredDocumentation","src":"3203:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","name":"ERC721InvalidReceiver","nameLocation":"3373:21:2","parameters":{"id":501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":500,"mutability":"mutable","name":"receiver","nameLocation":"3403:8:2","nodeType":"VariableDeclaration","scope":502,"src":"3395:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":499,"name":"address","nodeType":"ElementaryTypeName","src":"3395:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3394:18:2"}},{"id":509,"nodeType":"ErrorDefinition","src":"3671:68:2","nodes":[],"documentation":{"id":503,"nodeType":"StructuredDocumentation","src":"3419:247:2","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","name":"ERC721InsufficientApproval","nameLocation":"3677:26:2","parameters":{"id":508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":505,"mutability":"mutable","name":"operator","nameLocation":"3712:8:2","nodeType":"VariableDeclaration","scope":509,"src":"3704:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":504,"name":"address","nodeType":"ElementaryTypeName","src":"3704:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":507,"mutability":"mutable","name":"tokenId","nameLocation":"3730:7:2","nodeType":"VariableDeclaration","scope":509,"src":"3722:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":506,"name":"uint256","nodeType":"ElementaryTypeName","src":"3722:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3703:35:2"}},{"id":514,"nodeType":"ErrorDefinition","src":"3924:46:2","nodes":[],"documentation":{"id":510,"nodeType":"StructuredDocumentation","src":"3745:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","name":"ERC721InvalidApprover","nameLocation":"3930:21:2","parameters":{"id":513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":512,"mutability":"mutable","name":"approver","nameLocation":"3960:8:2","nodeType":"VariableDeclaration","scope":514,"src":"3952:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":511,"name":"address","nodeType":"ElementaryTypeName","src":"3952:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3951:18:2"}},{"id":519,"nodeType":"ErrorDefinition","src":"4178:46:2","nodes":[],"documentation":{"id":515,"nodeType":"StructuredDocumentation","src":"3976:197:2","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","name":"ERC721InvalidOperator","nameLocation":"4184:21:2","parameters":{"id":518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":517,"mutability":"mutable","name":"operator","nameLocation":"4214:8:2","nodeType":"VariableDeclaration","scope":519,"src":"4206:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":516,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4205:18:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":473,"nodeType":"StructuredDocumentation","src":"1978:155:2","text":" @dev Standard ERC721 Errors\n Interface of the ERC6093 custom errors for ERC721 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[520],"name":"IERC721Errors","nameLocation":"2144:13:2","scope":568,"usedErrors":[478,483,492,497,502,509,514,519]},{"id":567,"nodeType":"ContractDefinition","src":"4386:2060:2","nodes":[{"id":532,"nodeType":"ErrorDefinition","src":"4731:99:2","nodes":[],"documentation":{"id":522,"nodeType":"StructuredDocumentation","src":"4417:309:2","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"03dee4c5","name":"ERC1155InsufficientBalance","nameLocation":"4737:26:2","parameters":{"id":531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":524,"mutability":"mutable","name":"sender","nameLocation":"4772:6:2","nodeType":"VariableDeclaration","scope":532,"src":"4764:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":523,"name":"address","nodeType":"ElementaryTypeName","src":"4764:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":526,"mutability":"mutable","name":"balance","nameLocation":"4788:7:2","nodeType":"VariableDeclaration","scope":532,"src":"4780:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":525,"name":"uint256","nodeType":"ElementaryTypeName","src":"4780:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"needed","nameLocation":"4805:6:2","nodeType":"VariableDeclaration","scope":532,"src":"4797:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":530,"mutability":"mutable","name":"tokenId","nameLocation":"4821:7:2","nodeType":"VariableDeclaration","scope":532,"src":"4813:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":529,"name":"uint256","nodeType":"ElementaryTypeName","src":"4813:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4763:66:2"}},{"id":537,"nodeType":"ErrorDefinition","src":"4993:43:2","nodes":[],"documentation":{"id":533,"nodeType":"StructuredDocumentation","src":"4836:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","name":"ERC1155InvalidSender","nameLocation":"4999:20:2","parameters":{"id":536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"sender","nameLocation":"5028:6:2","nodeType":"VariableDeclaration","scope":537,"src":"5020:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":534,"name":"address","nodeType":"ElementaryTypeName","src":"5020:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5019:16:2"}},{"id":542,"nodeType":"ErrorDefinition","src":"5206:47:2","nodes":[],"documentation":{"id":538,"nodeType":"StructuredDocumentation","src":"5042:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","name":"ERC1155InvalidReceiver","nameLocation":"5212:22:2","parameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"receiver","nameLocation":"5243:8:2","nodeType":"VariableDeclaration","scope":542,"src":"5235:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":539,"name":"address","nodeType":"ElementaryTypeName","src":"5235:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5234:18:2"}},{"id":549,"nodeType":"ErrorDefinition","src":"5520:73:2","nodes":[],"documentation":{"id":543,"nodeType":"StructuredDocumentation","src":"5259:256:2","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"313dd6cb","name":"ERC1155InsufficientApprovalForAll","nameLocation":"5526:33:2","parameters":{"id":548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":545,"mutability":"mutable","name":"operator","nameLocation":"5568:8:2","nodeType":"VariableDeclaration","scope":549,"src":"5560:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":544,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":547,"mutability":"mutable","name":"owner","nameLocation":"5586:5:2","nodeType":"VariableDeclaration","scope":549,"src":"5578:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":546,"name":"address","nodeType":"ElementaryTypeName","src":"5578:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5559:33:2"}},{"id":554,"nodeType":"ErrorDefinition","src":"5778:47:2","nodes":[],"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"5599:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","name":"ERC1155InvalidApprover","nameLocation":"5784:22:2","parameters":{"id":553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"approver","nameLocation":"5815:8:2","nodeType":"VariableDeclaration","scope":554,"src":"5807:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"5807:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5806:18:2"}},{"id":559,"nodeType":"ErrorDefinition","src":"6033:47:2","nodes":[],"documentation":{"id":555,"nodeType":"StructuredDocumentation","src":"5831:197:2","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","name":"ERC1155InvalidOperator","nameLocation":"6039:22:2","parameters":{"id":558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":557,"mutability":"mutable","name":"operator","nameLocation":"6070:8:2","nodeType":"VariableDeclaration","scope":559,"src":"6062:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":556,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6061:18:2"}},{"id":566,"nodeType":"ErrorDefinition","src":"6371:73:2","nodes":[],"documentation":{"id":560,"nodeType":"StructuredDocumentation","src":"6086:280:2","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","name":"ERC1155InvalidArrayLength","nameLocation":"6377:25:2","parameters":{"id":565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":562,"mutability":"mutable","name":"idsLength","nameLocation":"6411:9:2","nodeType":"VariableDeclaration","scope":566,"src":"6403:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":561,"name":"uint256","nodeType":"ElementaryTypeName","src":"6403:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":564,"mutability":"mutable","name":"valuesLength","nameLocation":"6430:12:2","nodeType":"VariableDeclaration","scope":566,"src":"6422:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":563,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6402:41:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":521,"nodeType":"StructuredDocumentation","src":"4228:157:2","text":" @dev Standard ERC1155 Errors\n Interface of the ERC6093 custom errors for ERC1155 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[567],"name":"IERC1155Errors","nameLocation":"4396:14:2","scope":568,"usedErrors":[532,537,542,549,554,559,566]}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/contracts/out/draft-IERC6093.sol/IERC20Errors.json b/contracts/out/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index 12fb237a3b..0000000000 --- a/contracts/out/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the ERC6093 custom errors for ERC20 tokens as defined in https://eips.ethereum.org/EIPS/eip-6093\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","id":568,"exportedSymbols":{"IERC1155Errors":[567],"IERC20Errors":[472],"IERC721Errors":[520]},"nodeType":"SourceUnit","src":"32:6415:2","nodes":[{"id":432,"nodeType":"PragmaDirective","src":"32:24:2","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":472,"nodeType":"ContractDefinition","src":"212:1764:2","nodes":[{"id":442,"nodeType":"ErrorDefinition","src":"555:80:2","nodes":[],"documentation":{"id":434,"nodeType":"StructuredDocumentation","src":"241:309:2","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","name":"ERC20InsufficientBalance","nameLocation":"561:24:2","parameters":{"id":441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":436,"mutability":"mutable","name":"sender","nameLocation":"594:6:2","nodeType":"VariableDeclaration","scope":442,"src":"586:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":435,"name":"address","nodeType":"ElementaryTypeName","src":"586:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":438,"mutability":"mutable","name":"balance","nameLocation":"610:7:2","nodeType":"VariableDeclaration","scope":442,"src":"602:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":437,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":440,"mutability":"mutable","name":"needed","nameLocation":"627:6:2","nodeType":"VariableDeclaration","scope":442,"src":"619:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":439,"name":"uint256","nodeType":"ElementaryTypeName","src":"619:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"585:49:2"}},{"id":447,"nodeType":"ErrorDefinition","src":"798:41:2","nodes":[],"documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"641:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","name":"ERC20InvalidSender","nameLocation":"804:18:2","parameters":{"id":446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":445,"mutability":"mutable","name":"sender","nameLocation":"831:6:2","nodeType":"VariableDeclaration","scope":447,"src":"823:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":444,"name":"address","nodeType":"ElementaryTypeName","src":"823:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"822:16:2"}},{"id":452,"nodeType":"ErrorDefinition","src":"1009:45:2","nodes":[],"documentation":{"id":448,"nodeType":"StructuredDocumentation","src":"845:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","name":"ERC20InvalidReceiver","nameLocation":"1015:20:2","parameters":{"id":451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"mutability":"mutable","name":"receiver","nameLocation":"1044:8:2","nodeType":"VariableDeclaration","scope":452,"src":"1036:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":449,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1035:18:2"}},{"id":461,"nodeType":"ErrorDefinition","src":"1410:85:2","nodes":[],"documentation":{"id":453,"nodeType":"StructuredDocumentation","src":"1060:345:2","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","name":"ERC20InsufficientAllowance","nameLocation":"1416:26:2","parameters":{"id":460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"mutability":"mutable","name":"spender","nameLocation":"1451:7:2","nodeType":"VariableDeclaration","scope":461,"src":"1443:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":454,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":457,"mutability":"mutable","name":"allowance","nameLocation":"1468:9:2","nodeType":"VariableDeclaration","scope":461,"src":"1460:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1460:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":459,"mutability":"mutable","name":"needed","nameLocation":"1487:6:2","nodeType":"VariableDeclaration","scope":461,"src":"1479:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1442:52:2"}},{"id":466,"nodeType":"ErrorDefinition","src":"1680:45:2","nodes":[],"documentation":{"id":462,"nodeType":"StructuredDocumentation","src":"1501:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","name":"ERC20InvalidApprover","nameLocation":"1686:20:2","parameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"mutability":"mutable","name":"approver","nameLocation":"1715:8:2","nodeType":"VariableDeclaration","scope":466,"src":"1707:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":463,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1706:18:2"}},{"id":471,"nodeType":"ErrorDefinition","src":"1931:43:2","nodes":[],"documentation":{"id":467,"nodeType":"StructuredDocumentation","src":"1731:195:2","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","name":"ERC20InvalidSpender","nameLocation":"1937:19:2","parameters":{"id":470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":469,"mutability":"mutable","name":"spender","nameLocation":"1965:7:2","nodeType":"VariableDeclaration","scope":471,"src":"1957:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":468,"name":"address","nodeType":"ElementaryTypeName","src":"1957:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1956:17:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":433,"nodeType":"StructuredDocumentation","src":"58:153:2","text":" @dev Standard ERC20 Errors\n Interface of the ERC6093 custom errors for ERC20 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[472],"name":"IERC20Errors","nameLocation":"222:12:2","scope":568,"usedErrors":[442,447,452,461,466,471]},{"id":520,"nodeType":"ContractDefinition","src":"2134:2092:2","nodes":[{"id":478,"nodeType":"ErrorDefinition","src":"2388:40:2","nodes":[],"documentation":{"id":474,"nodeType":"StructuredDocumentation","src":"2164:219:2","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","name":"ERC721InvalidOwner","nameLocation":"2394:18:2","parameters":{"id":477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"mutability":"mutable","name":"owner","nameLocation":"2421:5:2","nodeType":"VariableDeclaration","scope":478,"src":"2413:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":475,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2412:15:2"}},{"id":483,"nodeType":"ErrorDefinition","src":"2571:46:2","nodes":[],"documentation":{"id":479,"nodeType":"StructuredDocumentation","src":"2434:132:2","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","name":"ERC721NonexistentToken","nameLocation":"2577:22:2","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"tokenId","nameLocation":"2608:7:2","nodeType":"VariableDeclaration","scope":483,"src":"2600:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":480,"name":"uint256","nodeType":"ElementaryTypeName","src":"2600:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2599:17:2"}},{"id":492,"nodeType":"ErrorDefinition","src":"2917:75:2","nodes":[],"documentation":{"id":484,"nodeType":"StructuredDocumentation","src":"2623:289:2","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","name":"ERC721IncorrectOwner","nameLocation":"2923:20:2","parameters":{"id":491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"sender","nameLocation":"2952:6:2","nodeType":"VariableDeclaration","scope":492,"src":"2944:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":488,"mutability":"mutable","name":"tokenId","nameLocation":"2968:7:2","nodeType":"VariableDeclaration","scope":492,"src":"2960:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":487,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":490,"mutability":"mutable","name":"owner","nameLocation":"2985:5:2","nodeType":"VariableDeclaration","scope":492,"src":"2977:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"2977:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2943:48:2"}},{"id":497,"nodeType":"ErrorDefinition","src":"3155:42:2","nodes":[],"documentation":{"id":493,"nodeType":"StructuredDocumentation","src":"2998:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","name":"ERC721InvalidSender","nameLocation":"3161:19:2","parameters":{"id":496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":495,"mutability":"mutable","name":"sender","nameLocation":"3189:6:2","nodeType":"VariableDeclaration","scope":497,"src":"3181:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":494,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3180:16:2"}},{"id":502,"nodeType":"ErrorDefinition","src":"3367:46:2","nodes":[],"documentation":{"id":498,"nodeType":"StructuredDocumentation","src":"3203:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","name":"ERC721InvalidReceiver","nameLocation":"3373:21:2","parameters":{"id":501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":500,"mutability":"mutable","name":"receiver","nameLocation":"3403:8:2","nodeType":"VariableDeclaration","scope":502,"src":"3395:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":499,"name":"address","nodeType":"ElementaryTypeName","src":"3395:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3394:18:2"}},{"id":509,"nodeType":"ErrorDefinition","src":"3671:68:2","nodes":[],"documentation":{"id":503,"nodeType":"StructuredDocumentation","src":"3419:247:2","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","name":"ERC721InsufficientApproval","nameLocation":"3677:26:2","parameters":{"id":508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":505,"mutability":"mutable","name":"operator","nameLocation":"3712:8:2","nodeType":"VariableDeclaration","scope":509,"src":"3704:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":504,"name":"address","nodeType":"ElementaryTypeName","src":"3704:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":507,"mutability":"mutable","name":"tokenId","nameLocation":"3730:7:2","nodeType":"VariableDeclaration","scope":509,"src":"3722:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":506,"name":"uint256","nodeType":"ElementaryTypeName","src":"3722:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3703:35:2"}},{"id":514,"nodeType":"ErrorDefinition","src":"3924:46:2","nodes":[],"documentation":{"id":510,"nodeType":"StructuredDocumentation","src":"3745:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","name":"ERC721InvalidApprover","nameLocation":"3930:21:2","parameters":{"id":513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":512,"mutability":"mutable","name":"approver","nameLocation":"3960:8:2","nodeType":"VariableDeclaration","scope":514,"src":"3952:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":511,"name":"address","nodeType":"ElementaryTypeName","src":"3952:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3951:18:2"}},{"id":519,"nodeType":"ErrorDefinition","src":"4178:46:2","nodes":[],"documentation":{"id":515,"nodeType":"StructuredDocumentation","src":"3976:197:2","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","name":"ERC721InvalidOperator","nameLocation":"4184:21:2","parameters":{"id":518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":517,"mutability":"mutable","name":"operator","nameLocation":"4214:8:2","nodeType":"VariableDeclaration","scope":519,"src":"4206:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":516,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4205:18:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":473,"nodeType":"StructuredDocumentation","src":"1978:155:2","text":" @dev Standard ERC721 Errors\n Interface of the ERC6093 custom errors for ERC721 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[520],"name":"IERC721Errors","nameLocation":"2144:13:2","scope":568,"usedErrors":[478,483,492,497,502,509,514,519]},{"id":567,"nodeType":"ContractDefinition","src":"4386:2060:2","nodes":[{"id":532,"nodeType":"ErrorDefinition","src":"4731:99:2","nodes":[],"documentation":{"id":522,"nodeType":"StructuredDocumentation","src":"4417:309:2","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"03dee4c5","name":"ERC1155InsufficientBalance","nameLocation":"4737:26:2","parameters":{"id":531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":524,"mutability":"mutable","name":"sender","nameLocation":"4772:6:2","nodeType":"VariableDeclaration","scope":532,"src":"4764:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":523,"name":"address","nodeType":"ElementaryTypeName","src":"4764:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":526,"mutability":"mutable","name":"balance","nameLocation":"4788:7:2","nodeType":"VariableDeclaration","scope":532,"src":"4780:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":525,"name":"uint256","nodeType":"ElementaryTypeName","src":"4780:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"needed","nameLocation":"4805:6:2","nodeType":"VariableDeclaration","scope":532,"src":"4797:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":530,"mutability":"mutable","name":"tokenId","nameLocation":"4821:7:2","nodeType":"VariableDeclaration","scope":532,"src":"4813:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":529,"name":"uint256","nodeType":"ElementaryTypeName","src":"4813:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4763:66:2"}},{"id":537,"nodeType":"ErrorDefinition","src":"4993:43:2","nodes":[],"documentation":{"id":533,"nodeType":"StructuredDocumentation","src":"4836:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","name":"ERC1155InvalidSender","nameLocation":"4999:20:2","parameters":{"id":536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"sender","nameLocation":"5028:6:2","nodeType":"VariableDeclaration","scope":537,"src":"5020:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":534,"name":"address","nodeType":"ElementaryTypeName","src":"5020:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5019:16:2"}},{"id":542,"nodeType":"ErrorDefinition","src":"5206:47:2","nodes":[],"documentation":{"id":538,"nodeType":"StructuredDocumentation","src":"5042:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","name":"ERC1155InvalidReceiver","nameLocation":"5212:22:2","parameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"receiver","nameLocation":"5243:8:2","nodeType":"VariableDeclaration","scope":542,"src":"5235:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":539,"name":"address","nodeType":"ElementaryTypeName","src":"5235:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5234:18:2"}},{"id":549,"nodeType":"ErrorDefinition","src":"5520:73:2","nodes":[],"documentation":{"id":543,"nodeType":"StructuredDocumentation","src":"5259:256:2","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"313dd6cb","name":"ERC1155InsufficientApprovalForAll","nameLocation":"5526:33:2","parameters":{"id":548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":545,"mutability":"mutable","name":"operator","nameLocation":"5568:8:2","nodeType":"VariableDeclaration","scope":549,"src":"5560:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":544,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":547,"mutability":"mutable","name":"owner","nameLocation":"5586:5:2","nodeType":"VariableDeclaration","scope":549,"src":"5578:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":546,"name":"address","nodeType":"ElementaryTypeName","src":"5578:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5559:33:2"}},{"id":554,"nodeType":"ErrorDefinition","src":"5778:47:2","nodes":[],"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"5599:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","name":"ERC1155InvalidApprover","nameLocation":"5784:22:2","parameters":{"id":553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"approver","nameLocation":"5815:8:2","nodeType":"VariableDeclaration","scope":554,"src":"5807:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"5807:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5806:18:2"}},{"id":559,"nodeType":"ErrorDefinition","src":"6033:47:2","nodes":[],"documentation":{"id":555,"nodeType":"StructuredDocumentation","src":"5831:197:2","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","name":"ERC1155InvalidOperator","nameLocation":"6039:22:2","parameters":{"id":558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":557,"mutability":"mutable","name":"operator","nameLocation":"6070:8:2","nodeType":"VariableDeclaration","scope":559,"src":"6062:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":556,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6061:18:2"}},{"id":566,"nodeType":"ErrorDefinition","src":"6371:73:2","nodes":[],"documentation":{"id":560,"nodeType":"StructuredDocumentation","src":"6086:280:2","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","name":"ERC1155InvalidArrayLength","nameLocation":"6377:25:2","parameters":{"id":565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":562,"mutability":"mutable","name":"idsLength","nameLocation":"6411:9:2","nodeType":"VariableDeclaration","scope":566,"src":"6403:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":561,"name":"uint256","nodeType":"ElementaryTypeName","src":"6403:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":564,"mutability":"mutable","name":"valuesLength","nameLocation":"6430:12:2","nodeType":"VariableDeclaration","scope":566,"src":"6422:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":563,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6402:41:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":521,"nodeType":"StructuredDocumentation","src":"4228:157:2","text":" @dev Standard ERC1155 Errors\n Interface of the ERC6093 custom errors for ERC1155 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[567],"name":"IERC1155Errors","nameLocation":"4396:14:2","scope":568,"usedErrors":[532,537,542,549,554,559,566]}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/contracts/out/draft-IERC6093.sol/IERC721Errors.json b/contracts/out/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 4a4613ca48..0000000000 --- a/contracts/out/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the ERC6093 custom errors for ERC721 tokens as defined in https://eips.ethereum.org/EIPS/eip-6093\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","id":568,"exportedSymbols":{"IERC1155Errors":[567],"IERC20Errors":[472],"IERC721Errors":[520]},"nodeType":"SourceUnit","src":"32:6415:2","nodes":[{"id":432,"nodeType":"PragmaDirective","src":"32:24:2","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":472,"nodeType":"ContractDefinition","src":"212:1764:2","nodes":[{"id":442,"nodeType":"ErrorDefinition","src":"555:80:2","nodes":[],"documentation":{"id":434,"nodeType":"StructuredDocumentation","src":"241:309:2","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","name":"ERC20InsufficientBalance","nameLocation":"561:24:2","parameters":{"id":441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":436,"mutability":"mutable","name":"sender","nameLocation":"594:6:2","nodeType":"VariableDeclaration","scope":442,"src":"586:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":435,"name":"address","nodeType":"ElementaryTypeName","src":"586:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":438,"mutability":"mutable","name":"balance","nameLocation":"610:7:2","nodeType":"VariableDeclaration","scope":442,"src":"602:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":437,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":440,"mutability":"mutable","name":"needed","nameLocation":"627:6:2","nodeType":"VariableDeclaration","scope":442,"src":"619:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":439,"name":"uint256","nodeType":"ElementaryTypeName","src":"619:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"585:49:2"}},{"id":447,"nodeType":"ErrorDefinition","src":"798:41:2","nodes":[],"documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"641:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","name":"ERC20InvalidSender","nameLocation":"804:18:2","parameters":{"id":446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":445,"mutability":"mutable","name":"sender","nameLocation":"831:6:2","nodeType":"VariableDeclaration","scope":447,"src":"823:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":444,"name":"address","nodeType":"ElementaryTypeName","src":"823:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"822:16:2"}},{"id":452,"nodeType":"ErrorDefinition","src":"1009:45:2","nodes":[],"documentation":{"id":448,"nodeType":"StructuredDocumentation","src":"845:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","name":"ERC20InvalidReceiver","nameLocation":"1015:20:2","parameters":{"id":451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"mutability":"mutable","name":"receiver","nameLocation":"1044:8:2","nodeType":"VariableDeclaration","scope":452,"src":"1036:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":449,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1035:18:2"}},{"id":461,"nodeType":"ErrorDefinition","src":"1410:85:2","nodes":[],"documentation":{"id":453,"nodeType":"StructuredDocumentation","src":"1060:345:2","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","name":"ERC20InsufficientAllowance","nameLocation":"1416:26:2","parameters":{"id":460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"mutability":"mutable","name":"spender","nameLocation":"1451:7:2","nodeType":"VariableDeclaration","scope":461,"src":"1443:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":454,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":457,"mutability":"mutable","name":"allowance","nameLocation":"1468:9:2","nodeType":"VariableDeclaration","scope":461,"src":"1460:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1460:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":459,"mutability":"mutable","name":"needed","nameLocation":"1487:6:2","nodeType":"VariableDeclaration","scope":461,"src":"1479:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1442:52:2"}},{"id":466,"nodeType":"ErrorDefinition","src":"1680:45:2","nodes":[],"documentation":{"id":462,"nodeType":"StructuredDocumentation","src":"1501:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","name":"ERC20InvalidApprover","nameLocation":"1686:20:2","parameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"mutability":"mutable","name":"approver","nameLocation":"1715:8:2","nodeType":"VariableDeclaration","scope":466,"src":"1707:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":463,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1706:18:2"}},{"id":471,"nodeType":"ErrorDefinition","src":"1931:43:2","nodes":[],"documentation":{"id":467,"nodeType":"StructuredDocumentation","src":"1731:195:2","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","name":"ERC20InvalidSpender","nameLocation":"1937:19:2","parameters":{"id":470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":469,"mutability":"mutable","name":"spender","nameLocation":"1965:7:2","nodeType":"VariableDeclaration","scope":471,"src":"1957:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":468,"name":"address","nodeType":"ElementaryTypeName","src":"1957:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1956:17:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":433,"nodeType":"StructuredDocumentation","src":"58:153:2","text":" @dev Standard ERC20 Errors\n Interface of the ERC6093 custom errors for ERC20 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[472],"name":"IERC20Errors","nameLocation":"222:12:2","scope":568,"usedErrors":[442,447,452,461,466,471]},{"id":520,"nodeType":"ContractDefinition","src":"2134:2092:2","nodes":[{"id":478,"nodeType":"ErrorDefinition","src":"2388:40:2","nodes":[],"documentation":{"id":474,"nodeType":"StructuredDocumentation","src":"2164:219:2","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","name":"ERC721InvalidOwner","nameLocation":"2394:18:2","parameters":{"id":477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"mutability":"mutable","name":"owner","nameLocation":"2421:5:2","nodeType":"VariableDeclaration","scope":478,"src":"2413:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":475,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2412:15:2"}},{"id":483,"nodeType":"ErrorDefinition","src":"2571:46:2","nodes":[],"documentation":{"id":479,"nodeType":"StructuredDocumentation","src":"2434:132:2","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","name":"ERC721NonexistentToken","nameLocation":"2577:22:2","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"tokenId","nameLocation":"2608:7:2","nodeType":"VariableDeclaration","scope":483,"src":"2600:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":480,"name":"uint256","nodeType":"ElementaryTypeName","src":"2600:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2599:17:2"}},{"id":492,"nodeType":"ErrorDefinition","src":"2917:75:2","nodes":[],"documentation":{"id":484,"nodeType":"StructuredDocumentation","src":"2623:289:2","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","name":"ERC721IncorrectOwner","nameLocation":"2923:20:2","parameters":{"id":491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"sender","nameLocation":"2952:6:2","nodeType":"VariableDeclaration","scope":492,"src":"2944:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":488,"mutability":"mutable","name":"tokenId","nameLocation":"2968:7:2","nodeType":"VariableDeclaration","scope":492,"src":"2960:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":487,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":490,"mutability":"mutable","name":"owner","nameLocation":"2985:5:2","nodeType":"VariableDeclaration","scope":492,"src":"2977:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"2977:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2943:48:2"}},{"id":497,"nodeType":"ErrorDefinition","src":"3155:42:2","nodes":[],"documentation":{"id":493,"nodeType":"StructuredDocumentation","src":"2998:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","name":"ERC721InvalidSender","nameLocation":"3161:19:2","parameters":{"id":496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":495,"mutability":"mutable","name":"sender","nameLocation":"3189:6:2","nodeType":"VariableDeclaration","scope":497,"src":"3181:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":494,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3180:16:2"}},{"id":502,"nodeType":"ErrorDefinition","src":"3367:46:2","nodes":[],"documentation":{"id":498,"nodeType":"StructuredDocumentation","src":"3203:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","name":"ERC721InvalidReceiver","nameLocation":"3373:21:2","parameters":{"id":501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":500,"mutability":"mutable","name":"receiver","nameLocation":"3403:8:2","nodeType":"VariableDeclaration","scope":502,"src":"3395:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":499,"name":"address","nodeType":"ElementaryTypeName","src":"3395:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3394:18:2"}},{"id":509,"nodeType":"ErrorDefinition","src":"3671:68:2","nodes":[],"documentation":{"id":503,"nodeType":"StructuredDocumentation","src":"3419:247:2","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","name":"ERC721InsufficientApproval","nameLocation":"3677:26:2","parameters":{"id":508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":505,"mutability":"mutable","name":"operator","nameLocation":"3712:8:2","nodeType":"VariableDeclaration","scope":509,"src":"3704:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":504,"name":"address","nodeType":"ElementaryTypeName","src":"3704:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":507,"mutability":"mutable","name":"tokenId","nameLocation":"3730:7:2","nodeType":"VariableDeclaration","scope":509,"src":"3722:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":506,"name":"uint256","nodeType":"ElementaryTypeName","src":"3722:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3703:35:2"}},{"id":514,"nodeType":"ErrorDefinition","src":"3924:46:2","nodes":[],"documentation":{"id":510,"nodeType":"StructuredDocumentation","src":"3745:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","name":"ERC721InvalidApprover","nameLocation":"3930:21:2","parameters":{"id":513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":512,"mutability":"mutable","name":"approver","nameLocation":"3960:8:2","nodeType":"VariableDeclaration","scope":514,"src":"3952:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":511,"name":"address","nodeType":"ElementaryTypeName","src":"3952:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3951:18:2"}},{"id":519,"nodeType":"ErrorDefinition","src":"4178:46:2","nodes":[],"documentation":{"id":515,"nodeType":"StructuredDocumentation","src":"3976:197:2","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","name":"ERC721InvalidOperator","nameLocation":"4184:21:2","parameters":{"id":518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":517,"mutability":"mutable","name":"operator","nameLocation":"4214:8:2","nodeType":"VariableDeclaration","scope":519,"src":"4206:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":516,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4205:18:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":473,"nodeType":"StructuredDocumentation","src":"1978:155:2","text":" @dev Standard ERC721 Errors\n Interface of the ERC6093 custom errors for ERC721 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[520],"name":"IERC721Errors","nameLocation":"2144:13:2","scope":568,"usedErrors":[478,483,492,497,502,509,514,519]},{"id":567,"nodeType":"ContractDefinition","src":"4386:2060:2","nodes":[{"id":532,"nodeType":"ErrorDefinition","src":"4731:99:2","nodes":[],"documentation":{"id":522,"nodeType":"StructuredDocumentation","src":"4417:309:2","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"03dee4c5","name":"ERC1155InsufficientBalance","nameLocation":"4737:26:2","parameters":{"id":531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":524,"mutability":"mutable","name":"sender","nameLocation":"4772:6:2","nodeType":"VariableDeclaration","scope":532,"src":"4764:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":523,"name":"address","nodeType":"ElementaryTypeName","src":"4764:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":526,"mutability":"mutable","name":"balance","nameLocation":"4788:7:2","nodeType":"VariableDeclaration","scope":532,"src":"4780:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":525,"name":"uint256","nodeType":"ElementaryTypeName","src":"4780:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"needed","nameLocation":"4805:6:2","nodeType":"VariableDeclaration","scope":532,"src":"4797:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":530,"mutability":"mutable","name":"tokenId","nameLocation":"4821:7:2","nodeType":"VariableDeclaration","scope":532,"src":"4813:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":529,"name":"uint256","nodeType":"ElementaryTypeName","src":"4813:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4763:66:2"}},{"id":537,"nodeType":"ErrorDefinition","src":"4993:43:2","nodes":[],"documentation":{"id":533,"nodeType":"StructuredDocumentation","src":"4836:152:2","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","name":"ERC1155InvalidSender","nameLocation":"4999:20:2","parameters":{"id":536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"sender","nameLocation":"5028:6:2","nodeType":"VariableDeclaration","scope":537,"src":"5020:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":534,"name":"address","nodeType":"ElementaryTypeName","src":"5020:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5019:16:2"}},{"id":542,"nodeType":"ErrorDefinition","src":"5206:47:2","nodes":[],"documentation":{"id":538,"nodeType":"StructuredDocumentation","src":"5042:159:2","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","name":"ERC1155InvalidReceiver","nameLocation":"5212:22:2","parameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"receiver","nameLocation":"5243:8:2","nodeType":"VariableDeclaration","scope":542,"src":"5235:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":539,"name":"address","nodeType":"ElementaryTypeName","src":"5235:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5234:18:2"}},{"id":549,"nodeType":"ErrorDefinition","src":"5520:73:2","nodes":[],"documentation":{"id":543,"nodeType":"StructuredDocumentation","src":"5259:256:2","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"313dd6cb","name":"ERC1155InsufficientApprovalForAll","nameLocation":"5526:33:2","parameters":{"id":548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":545,"mutability":"mutable","name":"operator","nameLocation":"5568:8:2","nodeType":"VariableDeclaration","scope":549,"src":"5560:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":544,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":547,"mutability":"mutable","name":"owner","nameLocation":"5586:5:2","nodeType":"VariableDeclaration","scope":549,"src":"5578:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":546,"name":"address","nodeType":"ElementaryTypeName","src":"5578:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5559:33:2"}},{"id":554,"nodeType":"ErrorDefinition","src":"5778:47:2","nodes":[],"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"5599:174:2","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","name":"ERC1155InvalidApprover","nameLocation":"5784:22:2","parameters":{"id":553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"approver","nameLocation":"5815:8:2","nodeType":"VariableDeclaration","scope":554,"src":"5807:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"5807:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5806:18:2"}},{"id":559,"nodeType":"ErrorDefinition","src":"6033:47:2","nodes":[],"documentation":{"id":555,"nodeType":"StructuredDocumentation","src":"5831:197:2","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","name":"ERC1155InvalidOperator","nameLocation":"6039:22:2","parameters":{"id":558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":557,"mutability":"mutable","name":"operator","nameLocation":"6070:8:2","nodeType":"VariableDeclaration","scope":559,"src":"6062:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":556,"name":"address","nodeType":"ElementaryTypeName","src":"6062:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6061:18:2"}},{"id":566,"nodeType":"ErrorDefinition","src":"6371:73:2","nodes":[],"documentation":{"id":560,"nodeType":"StructuredDocumentation","src":"6086:280:2","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","name":"ERC1155InvalidArrayLength","nameLocation":"6377:25:2","parameters":{"id":565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":562,"mutability":"mutable","name":"idsLength","nameLocation":"6411:9:2","nodeType":"VariableDeclaration","scope":566,"src":"6403:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":561,"name":"uint256","nodeType":"ElementaryTypeName","src":"6403:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":564,"mutability":"mutable","name":"valuesLength","nameLocation":"6430:12:2","nodeType":"VariableDeclaration","scope":566,"src":"6422:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":563,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6402:41:2"}}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":521,"nodeType":"StructuredDocumentation","src":"4228:157:2","text":" @dev Standard ERC1155 Errors\n Interface of the ERC6093 custom errors for ERC1155 tokens\n as defined in https://eips.ethereum.org/EIPS/eip-6093"},"fullyImplemented":true,"linearizedBaseContracts":[567],"name":"IERC1155Errors","nameLocation":"4396:14:2","scope":568,"usedErrors":[532,537,542,549,554,559,566]}],"license":"MIT"},"id":2} \ No newline at end of file