From df95b4e5d3b48259e3db1044c7604c990e99e13d Mon Sep 17 00:00:00 2001 From: antazoey Date: Fri, 3 May 2024 08:27:32 -0600 Subject: [PATCH] fix: issue where could not have dependencies with `contracts_folder` pointed at the root project path (#2048) --- src/ape/api/projects.py | 2 -- src/ape/managers/config.py | 19 ++++++++++++++----- src/ape/managers/project/types.py | 14 +++++++++++--- tests/integration/cli/conftest.py | 4 ++++ .../projects/with-contracts/ape-config.yaml | 7 +++++++ .../RawVyperOutputDepNoContractsFolder.json | 1 + 6 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 tests/integration/cli/projects/with-contracts/dep_contracts_folder_root/RawVyperOutputDepNoContractsFolder.json diff --git a/src/ape/api/projects.py b/src/ape/api/projects.py index b8dd9afdac..f6ec71c1a2 100644 --- a/src/ape/api/projects.py +++ b/src/ape/api/projects.py @@ -515,11 +515,9 @@ def _extract_local_manifest( if project_path.is_file() and project_path.suffix == ".json": try: manifest = PackageManifest.model_validate_json(project_path.read_text()) - except ValueError as err: if project_path.parent.is_dir(): project_path = project_path.parent - else: raise ProjectError(f"Invalid manifest file: '{project_path}'.") from err diff --git a/src/ape/managers/config.py b/src/ape/managers/config.py index 9b439b2736..a7bc63dc95 100644 --- a/src/ape/managers/config.py +++ b/src/ape/managers/config.py @@ -200,7 +200,6 @@ def _plugin_configs(self) -> Dict[str, PluginConfig]: ) self.contracts_folder = configs["contracts_folder"] = contracts_folder - deployments = user_config.pop("deployments", {}) valid_ecosystems = dict(self.plugin_manager.ecosystems) valid_network_names = [n[1] for n in [e[1] for e in self.plugin_manager.networks]] @@ -335,9 +334,15 @@ def using_project( return self.PROJECT_FOLDER = project_folder - self.contracts_folder = ( - contracts_folder if contracts_folder else project_folder / "contracts" - ) + + if isinstance(contracts_folder, str): + contracts_folder = (project_folder / contracts_folder).expanduser().resolve() + elif isinstance(contracts_folder, Path): + contracts_folder = contracts_folder + else: + contracts_folder = project_folder / "contracts" + + self.contracts_folder = contracts_folder self.project_manager.path = project_folder os.chdir(project_folder) clean_config = False @@ -347,7 +352,11 @@ def using_project( project = self.project_manager.get_project( project_folder, contracts_folder=contracts_folder ) - clean_config = project.process_config_file(contracts_folder=contracts_folder, **config) + # Ensure this ends up in the project's config. + if "contracts_folder" not in config: + config["contracts_folder"] = contracts_folder + + clean_config = project.process_config_file(**config) self.load(force_reload=True) yield self.project_manager diff --git a/src/ape/managers/project/types.py b/src/ape/managers/project/types.py index 530d37ff10..ea55d7a7db 100644 --- a/src/ape/managers/project/types.py +++ b/src/ape/managers/project/types.py @@ -150,9 +150,17 @@ def process_config_file(self, **kwargs) -> bool: config_data["version"] = self.version contracts_folder = kwargs.get("contracts_folder") or self.contracts_folder - contracts_folder_config_item = ( - str(contracts_folder).replace(str(self.path), "").strip(os.path.sep) - ) + + if contracts_folder == self.path: + # Handle projects pointed at root path. + contracts_folder_config_item = "." + elif isinstance(contracts_folder, Path): + # Strip of path prefix. + contracts_folder_config_item = os.path.relpath(contracts_folder, self.path) + else: + # Was given a str. + contracts_folder_config_item = contracts_folder + config_data["contracts_folder"] = contracts_folder_config_item self.config_file.parent.mkdir(parents=True, exist_ok=True) self.config_file.touch() diff --git a/tests/integration/cli/conftest.py b/tests/integration/cli/conftest.py index d437950dde..a1f95b5451 100644 --- a/tests/integration/cli/conftest.py +++ b/tests/integration/cli/conftest.py @@ -144,11 +144,15 @@ def clean_cache(project): if cache_file.is_file(): cache_file.unlink() + project.local_project._cached_manifest = None + yield if cache_file.is_file(): cache_file.unlink() + project.local_project._cached_manifest = None + @pytest.fixture def switch_config(config): diff --git a/tests/integration/cli/projects/with-contracts/ape-config.yaml b/tests/integration/cli/projects/with-contracts/ape-config.yaml index 71f741b68d..50334e68ad 100644 --- a/tests/integration/cli/projects/with-contracts/ape-config.yaml +++ b/tests/integration/cli/projects/with-contracts/ape-config.yaml @@ -4,6 +4,13 @@ dependencies: - name: foodep local: ./dep + # Showing we can have dependencies with contracts_folder + # equal to the path. (used in `tests/integration/cli/test_pm.py -k test_install`) + - name: depcontractsfolderroot + local: ./dep_contracts_folder_root + config_override: + contracts_folder: . + test: # `false` because running pytest within pytest. disconnect_providers_after: false diff --git a/tests/integration/cli/projects/with-contracts/dep_contracts_folder_root/RawVyperOutputDepNoContractsFolder.json b/tests/integration/cli/projects/with-contracts/dep_contracts_folder_root/RawVyperOutputDepNoContractsFolder.json new file mode 100644 index 0000000000..51522736d4 --- /dev/null +++ b/tests/integration/cli/projects/with-contracts/dep_contracts_folder_root/RawVyperOutputDepNoContractsFolder.json @@ -0,0 +1 @@ +{"bytecode": "0x346119ab5760206119b06000396000516001553360005560016005556000600655600261040655600061040755600161040855600361080755600061080855600161080955600261080a55610c08546103ff81116119ab5760018101610c0855610c038102610c09016005548082558060051b60018301600082601f0160051c61040081116119ab5780156100a457905b806006015481840155600101818118610090575b505050505061040654806104018301558060051b6001610401840101600082601f0160051c61040081116119ab5780156100ef57905b806104070154818401556001018181186100da575b505050505061080754806108028301558060051b6001610802840101600082601f0160051c61040081116119ab57801561013a57905b80610808015481840155600101818118610125575b5050505050505062301809546103ff81116119ab57600181016230180955610c0381026230180a016005548082558060051b60018301600082601f0160051c61040081116119ab57801561019e57905b80600601548184015560010181811861018a575b505050505061040654806104018301558060051b6001610401840101600082601f0160051c61040081116119ab5780156101e957905b806104070154818401556001018181186101d4575b505050505061080754806108028301558060051b6001610802840101600082601f0160051c61040081116119ab57801561023457905b8061080801548184015560010181811861021f575b5050505050505062301809546103ff81116119ab57600181016230180955610c0381026230180a016005548082558060051b60018301600082601f0160051c61040081116119ab57801561029857905b806006015481840155600101818118610284575b505050505061040654806104018301558060051b6001610401840101600082601f0160051c61040081116119ab5780156102e357905b806104070154818401556001018181186102ce575b505050505061080754806108028301558060051b6001610802840101600082601f0160051c61040081116119ab57801561032e57905b80610808015481840155600101818118610319575b5050505050505061166361034761000039611663610000f36003361161000c5761164b565b60003560e01c3461165157632beb1711811861007c57600436186116515760007f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd60006040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced560006040a2005b633fb5c1cb81186101e95760243618611651576000543318156100f657600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6005600435146116515760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861023b5760243618611651576004358060a01c611651576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a960006060a2005b63e30443bc81186102845760443618611651576004358060a01c611651576040526004604051602052600052604060002080546024358082018281106116515790509050815550005b6309b1b3f281186102a957600436186116515733604052600143034060605260406040f35b6302f487d681186102d3576004361861165157336040526001430340606052600160805260606040f35b63a420b5a581186102fd576004361861165157600260405233606052600143034060805260606040f35b63e9f7fd14811861032c5760043618611651573360405260014303406060526001608052600160a05260806040f35b63a2fbee53811861035b5760043618611651576002604052600260605233608052600143034060a05260806040f35b637a79591d81186103de57600436186116515760006040526020806102e052806102e00160006040518083528060061b600082600a81116116515780156103c957905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861039e575b505082016020019150509050810190506102e0f35b63a4f6d26b81186104cd576004361861165157600060405260006102e05260408061058052806105800160006040518083528060061b600082600a811161165157801561045257905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610427575b50508201602001915050905081019050806105a052806105800160006102e0518083528060061b600082600a81116116515780156104b857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861048c575b50508201602001915050905081019050610580f35b63252e423e811861056d57600436186116515760a03660403760a060405161016052606051610180526080516101a05260a0516101c052806101e0528061016001600060c0518083528060061b6000826002811161165157801561055857905b8060061b60208701018160061b60e0018051825260208101516020830152505060010181811861052d575b50508201602001915050905081019050610160f35b63a5c1b662811861064e576004361861165157600060405260006101a05260408061044052806104400160006040518083528060051b600082600a81116116515780156105d357905b8060051b606001518160051b6020880101526001018181186105b6575b505082016020019150509050810190508061046052806104400160006101a0518083528060061b600082600a811161165157801561063957905b8060061b60208701018160061b6101c0018051825260208101516020830152505060010181811861060d575b50508201602001915050905081019050610440f35b6342ce1ec6811861068957600436186116515760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186106ec57600436186116515760208060405280604001600060008252600060006000600181116116515780156106d957905b60008160051b6020870101526001018181186106c2575b5050810160200190509050810190506040f35b63b345ad968118610767576004361861165157602080604052806040016000600160a052600160c052600060a0518084528060051b6000826001811161165157801561075157905b8060051b60c001518160051b602089010152600101818118610734575b5050820160200191505090509050810190506040f35b6335417bf481186107f0576004361861165157602080604052806040016000600360e052600161010052600261012052600361014052600060e0518084528060051b600082600381116116515780156107da57905b8060051b61010001518160051b6020890101526001018181186107bc575b5050820160200191505090509050810190506040f35b63a5b0930d811861086f576004361861165157602080604052806040016000600260c0523360e0523361010052600060c0518084528060051b6000826002811161165157801561085957905b8060051b60e001518160051b60208901015260010181811861083c575b5050820160200191505090509050810190506040f35b639bfb2ad88118610928576004361861165157602080604052806040016000600261014052336101605260014303406101805260016101a052336101c05260014303406101e052600261020052600061014051808452606081026000826002811161165157801561091257905b606081026020880101606082026101600180518252602081015160208301526040810151604083015250506001018181186108dc575b5050820160200191505090509050810190506040f35b633ce80e9481186109635760043618611651576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610984576004361861165157610280366040376102806040f35b63d4d64b3581186109a5576004361861165157610500366040376105006040f35b63650543a381186109c9576004361861165157607b60405261014160605260406040f35b63243e096381186109e857600436186116515760403660403760406040f35b638ba6052d8118610ab057600436186116515761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610ae7576004361861165157600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610b9c576004361861165157602080604052806040016000600362010080526001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600062010080518084528060061b6000826104008111611651578015610b8657905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610b59575b5050820160200191505090509050810190506040f35b6394a66fc98118610cbf57600436186116515760208060405280604001606080825280820160006005548083528060051b6000826104008111611651578015610bfb57905b80600601548160051b602088010152600101818118610be1575b505082016020019150509050810190508060208301528082016000610406548083528060051b6000826104008111611651578015610c5057905b8061040701548160051b602088010152600101818118610c35575b505082016020019150509050810190508060408301528082016000610807548083528060051b6000826104008111611651578015610ca557905b8061080801548160051b602088010152600101818118610c8a575b505082016020019150509050810190509050810190506040f35b63abeb2022811861141d5760043618611651576020806040528060400160a08082528082016000610c08548083528060051b6000826104008111611651578015610e3b57905b828160051b602088010152610c038102610c09018360208801016060808252808201600084548083528060051b6000826104008111611651578015610d6257905b8060018a0101548160051b602088010152600101818118610d46575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b6000826104008111611651578015610dbb57905b806001880101548160051b602088010152600101818118610d9f575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b6000826104008111611651578015610e1657905b806001880101548160051b602088010152600101818118610dfa575b5050820160200191505090509050810190509050905083019250600101818118610d05575b50508201602001915050905081019050806020830152808201600062301809548083528060051b6000826104008111611651578015610fad57905b828160051b602088010152610c0381026230180a018360208801016060808252808201600084548083528060051b6000826104008111611651578015610ed457905b8060018a0101548160051b602088010152600101818118610eb8575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b6000826104008111611651578015610f2d57905b806001880101548160051b602088010152600101818118610f11575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b6000826104008111611651578015610f8857905b806001880101548160051b602088010152600101818118610f6c575b5050820160200191505090509050810190509050905083019250600101818118610e76575b5050820160200191505090508101905080604083015280820160006260240a548083528060051b600082610400811161165157801561111f57905b828160051b602088010152610c0381026260240b018360208801016060808252808201600084548083528060051b600082610400811161165157801561104657905b8060018a0101548160051b60208801015260010181811861102a575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561109f57905b806001880101548160051b602088010152600101818118611083575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b60008261040081116116515780156110fa57905b806001880101548160051b6020880101526001018181186110de575b5050820160200191505090509050810190509050905083019250600101818118610fe8575b5050820160200191505090508101905080606083015280820160006290300b548083528060051b600082610400811161165157801561129157905b828160051b602088010152610c0381026290300c018360208801016060808252808201600084548083528060051b60008261040081116116515780156111b857905b8060018a0101548160051b60208801015260010181811861119c575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561121157905b806001880101548160051b6020880101526001018181186111f5575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b600082610400811161165157801561126c57905b806001880101548160051b602088010152600101818118611250575b505082016020019150509050905081019050905090508301925060010181811861115a575b50508201602001915050905081019050806080830152808201600062c03c0c548083528060051b600082610400811161165157801561140357905b828160051b602088010152610c03810262c03c0d018360208801016060808252808201600084548083528060051b600082610400811161165157801561132a57905b8060018a0101548160051b60208801015260010181811861130e575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561138357905b806001880101548160051b602088010152600101818118611367575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b60008261040081116116515780156113de57905b806001880101548160051b6020880101526001018181186113c2575b50508201602001915050905090508101905090509050830192506001018181186112cc575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186114cc5760043618611651576020806040528060400160006002620180805233620180a05233620180c05233620180e0526060366201810037600062018080518084526060810260008261040081116116515780156114b657905b60608102602088010160608202620180a001805182526020810151602083015260408101516040830152505060010181811861147f575b5050820160200191505090509050810190506040f35b63acab48d881186114e257610144361861165157005b638da5cb5b811861150157600436186116515760005460405260206040f35b6323fd0e40811861152057600436186116515760015460405260206040f35b634825cf6f811861153f57600436186116515760025460405260206040f35b636cbceeec811861155e57600436186116515760035460405260206040f35b6327e235e381186115995760243618611651576004358060a01c61165157604052600460405160205260005260406000205460605260206060f35b63d3aaff6d81186115db576044361861165157610401600435600281116116515702600501602435815481101561165157600182010190505460405260206040f35b63ae8ef2cb811861164957608436186116515762300c01600435600481116116515702610c0801610c03602435825481101561165157026001820101905061040160443560028111611651570281019050606435815481101561165157600182010190505460405260206040f35b505b60006000fd5b600080fda165767970657283000306000b005b600080fd", "bytecode_runtime": "0x6003361161000c5761164b565b60003560e01c3461165157632beb1711811861007c57600436186116515760007f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd60006040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced560006040a2005b633fb5c1cb81186101e95760243618611651576000543318156100f657600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6005600435146116515760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861023b5760243618611651576004358060a01c611651576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a960006060a2005b63e30443bc81186102845760443618611651576004358060a01c611651576040526004604051602052600052604060002080546024358082018281106116515790509050815550005b6309b1b3f281186102a957600436186116515733604052600143034060605260406040f35b6302f487d681186102d3576004361861165157336040526001430340606052600160805260606040f35b63a420b5a581186102fd576004361861165157600260405233606052600143034060805260606040f35b63e9f7fd14811861032c5760043618611651573360405260014303406060526001608052600160a05260806040f35b63a2fbee53811861035b5760043618611651576002604052600260605233608052600143034060a05260806040f35b637a79591d81186103de57600436186116515760006040526020806102e052806102e00160006040518083528060061b600082600a81116116515780156103c957905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861039e575b505082016020019150509050810190506102e0f35b63a4f6d26b81186104cd576004361861165157600060405260006102e05260408061058052806105800160006040518083528060061b600082600a811161165157801561045257905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610427575b50508201602001915050905081019050806105a052806105800160006102e0518083528060061b600082600a81116116515780156104b857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861048c575b50508201602001915050905081019050610580f35b63252e423e811861056d57600436186116515760a03660403760a060405161016052606051610180526080516101a05260a0516101c052806101e0528061016001600060c0518083528060061b6000826002811161165157801561055857905b8060061b60208701018160061b60e0018051825260208101516020830152505060010181811861052d575b50508201602001915050905081019050610160f35b63a5c1b662811861064e576004361861165157600060405260006101a05260408061044052806104400160006040518083528060051b600082600a81116116515780156105d357905b8060051b606001518160051b6020880101526001018181186105b6575b505082016020019150509050810190508061046052806104400160006101a0518083528060061b600082600a811161165157801561063957905b8060061b60208701018160061b6101c0018051825260208101516020830152505060010181811861060d575b50508201602001915050905081019050610440f35b6342ce1ec6811861068957600436186116515760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186106ec57600436186116515760208060405280604001600060008252600060006000600181116116515780156106d957905b60008160051b6020870101526001018181186106c2575b5050810160200190509050810190506040f35b63b345ad968118610767576004361861165157602080604052806040016000600160a052600160c052600060a0518084528060051b6000826001811161165157801561075157905b8060051b60c001518160051b602089010152600101818118610734575b5050820160200191505090509050810190506040f35b6335417bf481186107f0576004361861165157602080604052806040016000600360e052600161010052600261012052600361014052600060e0518084528060051b600082600381116116515780156107da57905b8060051b61010001518160051b6020890101526001018181186107bc575b5050820160200191505090509050810190506040f35b63a5b0930d811861086f576004361861165157602080604052806040016000600260c0523360e0523361010052600060c0518084528060051b6000826002811161165157801561085957905b8060051b60e001518160051b60208901015260010181811861083c575b5050820160200191505090509050810190506040f35b639bfb2ad88118610928576004361861165157602080604052806040016000600261014052336101605260014303406101805260016101a052336101c05260014303406101e052600261020052600061014051808452606081026000826002811161165157801561091257905b606081026020880101606082026101600180518252602081015160208301526040810151604083015250506001018181186108dc575b5050820160200191505090509050810190506040f35b633ce80e9481186109635760043618611651576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610984576004361861165157610280366040376102806040f35b63d4d64b3581186109a5576004361861165157610500366040376105006040f35b63650543a381186109c9576004361861165157607b60405261014160605260406040f35b63243e096381186109e857600436186116515760403660403760406040f35b638ba6052d8118610ab057600436186116515761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610ae7576004361861165157600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610b9c576004361861165157602080604052806040016000600362010080526001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600062010080518084528060061b6000826104008111611651578015610b8657905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610b59575b5050820160200191505090509050810190506040f35b6394a66fc98118610cbf57600436186116515760208060405280604001606080825280820160006005548083528060051b6000826104008111611651578015610bfb57905b80600601548160051b602088010152600101818118610be1575b505082016020019150509050810190508060208301528082016000610406548083528060051b6000826104008111611651578015610c5057905b8061040701548160051b602088010152600101818118610c35575b505082016020019150509050810190508060408301528082016000610807548083528060051b6000826104008111611651578015610ca557905b8061080801548160051b602088010152600101818118610c8a575b505082016020019150509050810190509050810190506040f35b63abeb2022811861141d5760043618611651576020806040528060400160a08082528082016000610c08548083528060051b6000826104008111611651578015610e3b57905b828160051b602088010152610c038102610c09018360208801016060808252808201600084548083528060051b6000826104008111611651578015610d6257905b8060018a0101548160051b602088010152600101818118610d46575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b6000826104008111611651578015610dbb57905b806001880101548160051b602088010152600101818118610d9f575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b6000826104008111611651578015610e1657905b806001880101548160051b602088010152600101818118610dfa575b5050820160200191505090509050810190509050905083019250600101818118610d05575b50508201602001915050905081019050806020830152808201600062301809548083528060051b6000826104008111611651578015610fad57905b828160051b602088010152610c0381026230180a018360208801016060808252808201600084548083528060051b6000826104008111611651578015610ed457905b8060018a0101548160051b602088010152600101818118610eb8575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b6000826104008111611651578015610f2d57905b806001880101548160051b602088010152600101818118610f11575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b6000826104008111611651578015610f8857905b806001880101548160051b602088010152600101818118610f6c575b5050820160200191505090509050810190509050905083019250600101818118610e76575b5050820160200191505090508101905080604083015280820160006260240a548083528060051b600082610400811161165157801561111f57905b828160051b602088010152610c0381026260240b018360208801016060808252808201600084548083528060051b600082610400811161165157801561104657905b8060018a0101548160051b60208801015260010181811861102a575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561109f57905b806001880101548160051b602088010152600101818118611083575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b60008261040081116116515780156110fa57905b806001880101548160051b6020880101526001018181186110de575b5050820160200191505090509050810190509050905083019250600101818118610fe8575b5050820160200191505090508101905080606083015280820160006290300b548083528060051b600082610400811161165157801561129157905b828160051b602088010152610c0381026290300c018360208801016060808252808201600084548083528060051b60008261040081116116515780156111b857905b8060018a0101548160051b60208801015260010181811861119c575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561121157905b806001880101548160051b6020880101526001018181186111f5575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b600082610400811161165157801561126c57905b806001880101548160051b602088010152600101818118611250575b505082016020019150509050905081019050905090508301925060010181811861115a575b50508201602001915050905081019050806080830152808201600062c03c0c548083528060051b600082610400811161165157801561140357905b828160051b602088010152610c03810262c03c0d018360208801016060808252808201600084548083528060051b600082610400811161165157801561132a57905b8060018a0101548160051b60208801015260010181811861130e575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561138357905b806001880101548160051b602088010152600101818118611367575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b60008261040081116116515780156113de57905b806001880101548160051b6020880101526001018181186113c2575b50508201602001915050905090508101905090509050830192506001018181186112cc575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186114cc5760043618611651576020806040528060400160006002620180805233620180a05233620180c05233620180e0526060366201810037600062018080518084526060810260008261040081116116515780156114b657905b60608102602088010160608202620180a001805182526020810151602083015260408101516040830152505060010181811861147f575b5050820160200191505090509050810190506040f35b63acab48d881186114e257610144361861165157005b638da5cb5b811861150157600436186116515760005460405260206040f35b6323fd0e40811861152057600436186116515760015460405260206040f35b634825cf6f811861153f57600436186116515760025460405260206040f35b636cbceeec811861155e57600436186116515760035460405260206040f35b6327e235e381186115995760243618611651576004358060a01c61165157604052600460405160205260005260406000205460605260206060f35b63d3aaff6d81186115db576044361861165157610401600435600281116116515702600501602435815481101561165157600182010190505460405260206040f35b63ae8ef2cb811861164957608436186116515762300c01600435600481116116515702610c0801610c03602435825481101561165157026001820101905061040160443560028111611651570281019050606435815481101561165157600182010190505460405260206040f35b505b60006000fd5b600080fda165767970657283000306000b", "blueprint_bytecode": "0x6119b33d81600a3d39f3fe7100346119ab5760206119b06000396000516001553360005560016005556000600655600261040655600061040755600161040855600361080755600061080855600161080955600261080a55610c08546103ff81116119ab5760018101610c0855610c038102610c09016005548082558060051b60018301600082601f0160051c61040081116119ab5780156100a457905b806006015481840155600101818118610090575b505050505061040654806104018301558060051b6001610401840101600082601f0160051c61040081116119ab5780156100ef57905b806104070154818401556001018181186100da575b505050505061080754806108028301558060051b6001610802840101600082601f0160051c61040081116119ab57801561013a57905b80610808015481840155600101818118610125575b5050505050505062301809546103ff81116119ab57600181016230180955610c0381026230180a016005548082558060051b60018301600082601f0160051c61040081116119ab57801561019e57905b80600601548184015560010181811861018a575b505050505061040654806104018301558060051b6001610401840101600082601f0160051c61040081116119ab5780156101e957905b806104070154818401556001018181186101d4575b505050505061080754806108028301558060051b6001610802840101600082601f0160051c61040081116119ab57801561023457905b8061080801548184015560010181811861021f575b5050505050505062301809546103ff81116119ab57600181016230180955610c0381026230180a016005548082558060051b60018301600082601f0160051c61040081116119ab57801561029857905b806006015481840155600101818118610284575b505050505061040654806104018301558060051b6001610401840101600082601f0160051c61040081116119ab5780156102e357905b806104070154818401556001018181186102ce575b505050505061080754806108028301558060051b6001610802840101600082601f0160051c61040081116119ab57801561032e57905b80610808015481840155600101818118610319575b5050505050505061166361034761000039611663610000f36003361161000c5761164b565b60003560e01c3461165157632beb1711811861007c57600436186116515760007f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd60006040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced560006040a2005b633fb5c1cb81186101e95760243618611651576000543318156100f657600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6005600435146116515760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861023b5760243618611651576004358060a01c611651576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a960006060a2005b63e30443bc81186102845760443618611651576004358060a01c611651576040526004604051602052600052604060002080546024358082018281106116515790509050815550005b6309b1b3f281186102a957600436186116515733604052600143034060605260406040f35b6302f487d681186102d3576004361861165157336040526001430340606052600160805260606040f35b63a420b5a581186102fd576004361861165157600260405233606052600143034060805260606040f35b63e9f7fd14811861032c5760043618611651573360405260014303406060526001608052600160a05260806040f35b63a2fbee53811861035b5760043618611651576002604052600260605233608052600143034060a05260806040f35b637a79591d81186103de57600436186116515760006040526020806102e052806102e00160006040518083528060061b600082600a81116116515780156103c957905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861039e575b505082016020019150509050810190506102e0f35b63a4f6d26b81186104cd576004361861165157600060405260006102e05260408061058052806105800160006040518083528060061b600082600a811161165157801561045257905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610427575b50508201602001915050905081019050806105a052806105800160006102e0518083528060061b600082600a81116116515780156104b857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861048c575b50508201602001915050905081019050610580f35b63252e423e811861056d57600436186116515760a03660403760a060405161016052606051610180526080516101a05260a0516101c052806101e0528061016001600060c0518083528060061b6000826002811161165157801561055857905b8060061b60208701018160061b60e0018051825260208101516020830152505060010181811861052d575b50508201602001915050905081019050610160f35b63a5c1b662811861064e576004361861165157600060405260006101a05260408061044052806104400160006040518083528060051b600082600a81116116515780156105d357905b8060051b606001518160051b6020880101526001018181186105b6575b505082016020019150509050810190508061046052806104400160006101a0518083528060061b600082600a811161165157801561063957905b8060061b60208701018160061b6101c0018051825260208101516020830152505060010181811861060d575b50508201602001915050905081019050610440f35b6342ce1ec6811861068957600436186116515760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186106ec57600436186116515760208060405280604001600060008252600060006000600181116116515780156106d957905b60008160051b6020870101526001018181186106c2575b5050810160200190509050810190506040f35b63b345ad968118610767576004361861165157602080604052806040016000600160a052600160c052600060a0518084528060051b6000826001811161165157801561075157905b8060051b60c001518160051b602089010152600101818118610734575b5050820160200191505090509050810190506040f35b6335417bf481186107f0576004361861165157602080604052806040016000600360e052600161010052600261012052600361014052600060e0518084528060051b600082600381116116515780156107da57905b8060051b61010001518160051b6020890101526001018181186107bc575b5050820160200191505090509050810190506040f35b63a5b0930d811861086f576004361861165157602080604052806040016000600260c0523360e0523361010052600060c0518084528060051b6000826002811161165157801561085957905b8060051b60e001518160051b60208901015260010181811861083c575b5050820160200191505090509050810190506040f35b639bfb2ad88118610928576004361861165157602080604052806040016000600261014052336101605260014303406101805260016101a052336101c05260014303406101e052600261020052600061014051808452606081026000826002811161165157801561091257905b606081026020880101606082026101600180518252602081015160208301526040810151604083015250506001018181186108dc575b5050820160200191505090509050810190506040f35b633ce80e9481186109635760043618611651576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610984576004361861165157610280366040376102806040f35b63d4d64b3581186109a5576004361861165157610500366040376105006040f35b63650543a381186109c9576004361861165157607b60405261014160605260406040f35b63243e096381186109e857600436186116515760403660403760406040f35b638ba6052d8118610ab057600436186116515761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610ae7576004361861165157600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610b9c576004361861165157602080604052806040016000600362010080526001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600062010080518084528060061b6000826104008111611651578015610b8657905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610b59575b5050820160200191505090509050810190506040f35b6394a66fc98118610cbf57600436186116515760208060405280604001606080825280820160006005548083528060051b6000826104008111611651578015610bfb57905b80600601548160051b602088010152600101818118610be1575b505082016020019150509050810190508060208301528082016000610406548083528060051b6000826104008111611651578015610c5057905b8061040701548160051b602088010152600101818118610c35575b505082016020019150509050810190508060408301528082016000610807548083528060051b6000826104008111611651578015610ca557905b8061080801548160051b602088010152600101818118610c8a575b505082016020019150509050810190509050810190506040f35b63abeb2022811861141d5760043618611651576020806040528060400160a08082528082016000610c08548083528060051b6000826104008111611651578015610e3b57905b828160051b602088010152610c038102610c09018360208801016060808252808201600084548083528060051b6000826104008111611651578015610d6257905b8060018a0101548160051b602088010152600101818118610d46575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b6000826104008111611651578015610dbb57905b806001880101548160051b602088010152600101818118610d9f575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b6000826104008111611651578015610e1657905b806001880101548160051b602088010152600101818118610dfa575b5050820160200191505090509050810190509050905083019250600101818118610d05575b50508201602001915050905081019050806020830152808201600062301809548083528060051b6000826104008111611651578015610fad57905b828160051b602088010152610c0381026230180a018360208801016060808252808201600084548083528060051b6000826104008111611651578015610ed457905b8060018a0101548160051b602088010152600101818118610eb8575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b6000826104008111611651578015610f2d57905b806001880101548160051b602088010152600101818118610f11575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b6000826104008111611651578015610f8857905b806001880101548160051b602088010152600101818118610f6c575b5050820160200191505090509050810190509050905083019250600101818118610e76575b5050820160200191505090508101905080604083015280820160006260240a548083528060051b600082610400811161165157801561111f57905b828160051b602088010152610c0381026260240b018360208801016060808252808201600084548083528060051b600082610400811161165157801561104657905b8060018a0101548160051b60208801015260010181811861102a575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561109f57905b806001880101548160051b602088010152600101818118611083575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b60008261040081116116515780156110fa57905b806001880101548160051b6020880101526001018181186110de575b5050820160200191505090509050810190509050905083019250600101818118610fe8575b5050820160200191505090508101905080606083015280820160006290300b548083528060051b600082610400811161165157801561129157905b828160051b602088010152610c0381026290300c018360208801016060808252808201600084548083528060051b60008261040081116116515780156111b857905b8060018a0101548160051b60208801015260010181811861119c575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561121157905b806001880101548160051b6020880101526001018181186111f5575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b600082610400811161165157801561126c57905b806001880101548160051b602088010152600101818118611250575b505082016020019150509050905081019050905090508301925060010181811861115a575b50508201602001915050905081019050806080830152808201600062c03c0c548083528060051b600082610400811161165157801561140357905b828160051b602088010152610c03810262c03c0d018360208801016060808252808201600084548083528060051b600082610400811161165157801561132a57905b8060018a0101548160051b60208801015260010181811861130e575b505082016020019150509050810190508060208301526104018301818301600082548083528060051b600082610400811161165157801561138357905b806001880101548160051b602088010152600101818118611367575b5050820160200191505090509050810190508060408301526108028301818301600082548083528060051b60008261040081116116515780156113de57905b806001880101548160051b6020880101526001018181186113c2575b50508201602001915050905090508101905090509050830192506001018181186112cc575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186114cc5760043618611651576020806040528060400160006002620180805233620180a05233620180c05233620180e0526060366201810037600062018080518084526060810260008261040081116116515780156114b657905b60608102602088010160608202620180a001805182526020810151602083015260408101516040830152505060010181811861147f575b5050820160200191505090509050810190506040f35b63acab48d881186114e257610144361861165157005b638da5cb5b811861150157600436186116515760005460405260206040f35b6323fd0e40811861152057600436186116515760015460405260206040f35b634825cf6f811861153f57600436186116515760025460405260206040f35b636cbceeec811861155e57600436186116515760035460405260206040f35b6327e235e381186115995760243618611651576004358060a01c61165157604052600460405160205260005260406000205460605260206060f35b63d3aaff6d81186115db576044361861165157610401600435600281116116515702600501602435815481101561165157600182010190505460405260206040f35b63ae8ef2cb811861164957608436186116515762300c01600435600481116116515702610c0801610c03602435825481101561165157026001820101905061040160443560028111611651570281019050606435815481101561165157600182010190505460405260206040f35b505b60006000fd5b600080fda165767970657283000306000b005b600080fd", "abi": [{"name": "NumberChange", "inputs": [{"name": "b", "type": "bytes32", "indexed": false}, {"name": "prevNum", "type": "uint256", "indexed": false}, {"name": "dynData", "type": "string", "indexed": false}, {"name": "newNum", "type": "uint256", "indexed": true}, {"name": "dynIndexed", "type": "string", "indexed": true}], "anonymous": false, "type": "event"}, {"name": "AddressChange", "inputs": [{"name": "newAddress", "type": "address", "indexed": true}], "anonymous": false, "type": "event"}, {"name": "FooHappened", "inputs": [{"name": "foo", "type": "uint256", "indexed": true}], "anonymous": false, "type": "event"}, {"name": "BarHappened", "inputs": [{"name": "bar", "type": "uint256", "indexed": true}], "anonymous": false, "type": "event"}, {"stateMutability": "nonpayable", "type": "constructor", "inputs": [{"name": "num", "type": "uint256"}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "fooAndBar", "inputs": [], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "setNumber", "inputs": [{"name": "num", "type": "uint256"}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "setAddress", "inputs": [{"name": "_address", "type": "address"}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "setBalance", "inputs": [{"name": "_address", "type": "address"}, {"name": "bal", "type": "uint256"}], "outputs": []}, {"stateMutability": "view", "type": "function", "name": "getStruct", "inputs": [], "outputs": [{"name": "", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}, {"stateMutability": "view", "type": "function", "name": "getNestedStruct1", "inputs": [], "outputs": [{"name": "", "type": "tuple", "components": [{"name": "t", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}, {"name": "foo", "type": "uint256"}]}]}, {"stateMutability": "view", "type": "function", "name": "getNestedStruct2", "inputs": [], "outputs": [{"name": "", "type": "tuple", "components": [{"name": "foo", "type": "uint256"}, {"name": "t", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}]}, {"stateMutability": "view", "type": "function", "name": "getNestedStructWithTuple1", "inputs": [], "outputs": [{"name": "", "type": "tuple", "components": [{"name": "t", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}, {"name": "foo", "type": "uint256"}]}, {"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "getNestedStructWithTuple2", "inputs": [], "outputs": [{"name": "", "type": "uint256"}, {"name": "", "type": "tuple", "components": [{"name": "foo", "type": "uint256"}, {"name": "t", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}]}, {"stateMutability": "pure", "type": "function", "name": "getEmptyDynArrayOfStructs", "inputs": [], "outputs": [{"name": "", "type": "tuple[]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}, {"stateMutability": "pure", "type": "function", "name": "getEmptyTupleOfDynArrayStructs", "inputs": [], "outputs": [{"name": "", "type": "tuple[]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}, {"name": "", "type": "tuple[]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}, {"stateMutability": "view", "type": "function", "name": "getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs", "inputs": [], "outputs": [{"name": "", "type": "tuple[2]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}, {"name": "", "type": "tuple[]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}, {"stateMutability": "pure", "type": "function", "name": "getEmptyTupleOfIntAndDynArray", "inputs": [], "outputs": [{"name": "", "type": "uint256[]"}, {"name": "", "type": "tuple[]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}, {"stateMutability": "view", "type": "function", "name": "getStructWithArray", "inputs": [], "outputs": [{"name": "", "type": "tuple", "components": [{"name": "foo", "type": "uint256"}, {"name": "arr", "type": "tuple[2]", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}, {"name": "bar", "type": "uint256"}]}]}, {"stateMutability": "pure", "type": "function", "name": "getEmptyArray", "inputs": [], "outputs": [{"name": "", "type": "uint256[]"}]}, {"stateMutability": "pure", "type": "function", "name": "getSingleItemArray", "inputs": [], "outputs": [{"name": "", "type": "uint256[]"}]}, {"stateMutability": "pure", "type": "function", "name": "getFilledArray", "inputs": [], "outputs": [{"name": "", "type": "uint256[]"}]}, {"stateMutability": "view", "type": "function", "name": "getAddressArray", "inputs": [], "outputs": [{"name": "", "type": "address[]"}]}, {"stateMutability": "view", "type": "function", "name": "getDynamicStructArray", "inputs": [], "outputs": [{"name": "", "type": "tuple[]", "components": [{"name": "t", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}, {"name": "foo", "type": "uint256"}]}]}, {"stateMutability": "view", "type": "function", "name": "getStaticStructArray", "inputs": [], "outputs": [{"name": "", "type": "tuple[2]", "components": [{"name": "foo", "type": "uint256"}, {"name": "t", "type": "tuple", "components": [{"name": "a", "type": "address"}, {"name": "b", "type": "bytes32"}]}]}]}, {"stateMutability": "pure", "type": "function", "name": "getArrayWithBiggerSize", "inputs": [], "outputs": [{"name": "", "type": "uint256[20]"}]}, {"stateMutability": "pure", "type": "function", "name": "getTupleOfArrays", "inputs": [], "outputs": [{"name": "", "type": "uint256[20]"}, {"name": "", "type": "uint256[20]"}]}, {"stateMutability": "pure", "type": "function", "name": "getMultipleValues", "inputs": [], "outputs": [{"name": "", "type": "uint256"}, {"name": "", "type": "uint256"}]}, {"stateMutability": "pure", "type": "function", "name": "getUnnamedTuple", "inputs": [], "outputs": [{"name": "", "type": "uint256"}, {"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "getTupleOfAddressArray", "inputs": [], "outputs": [{"name": "", "type": "address[20]"}, {"name": "", "type": "uint128[20]"}]}, {"stateMutability": "view", "type": "function", "name": "getNestedArrayFixedFixed", "inputs": [], "outputs": [{"name": "", "type": "uint256[2][3]"}]}, {"stateMutability": "view", "type": "function", "name": "getNestedArrayDynamicFixed", "inputs": [], "outputs": [{"name": "", "type": "uint256[2][]"}]}, {"stateMutability": "view", "type": "function", "name": "getNestedArrayFixedDynamic", "inputs": [], "outputs": [{"name": "", "type": "uint256[][3]"}]}, {"stateMutability": "view", "type": "function", "name": "getNestedArrayMixedDynamic", "inputs": [], "outputs": [{"name": "", "type": "uint256[][3][][5]"}]}, {"stateMutability": "view", "type": "function", "name": "getNestedAddressArray", "inputs": [], "outputs": [{"name": "", "type": "address[3][]"}]}, {"stateMutability": "view", "type": "function", "name": "functionWithUniqueAmountOfArguments", "inputs": [{"name": "a0", "type": "uint256"}, {"name": "a1", "type": "uint256"}, {"name": "a2", "type": "uint256"}, {"name": "a3", "type": "uint256"}, {"name": "a4", "type": "uint256"}, {"name": "a5", "type": "uint256"}, {"name": "a6", "type": "uint256"}, {"name": "a7", "type": "uint256"}, {"name": "a8", "type": "uint256"}, {"name": "a9", "type": "uint256"}], "outputs": []}, {"stateMutability": "view", "type": "function", "name": "owner", "inputs": [], "outputs": [{"name": "", "type": "address"}]}, {"stateMutability": "view", "type": "function", "name": "myNumber", "inputs": [], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "prevNumber", "inputs": [], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "theAddress", "inputs": [], "outputs": [{"name": "", "type": "address"}]}, {"stateMutability": "view", "type": "function", "name": "balances", "inputs": [{"name": "arg0", "type": "address"}], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "dynArray", "inputs": [{"name": "arg0", "type": "uint256"}, {"name": "arg1", "type": "uint256"}], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "mixedArray", "inputs": [{"name": "arg0", "type": "uint256"}, {"name": "arg1", "type": "uint256"}, {"name": "arg2", "type": "uint256"}, {"name": "arg3", "type": "uint256"}], "outputs": [{"name": "", "type": "uint256"}]}], "layout": {"storage_layout": {"owner": {"type": "address", "slot": 0}, "myNumber": {"type": "uint256", "slot": 1}, "prevNumber": {"type": "uint256", "slot": 2}, "theAddress": {"type": "address", "slot": 3}, "balances": {"type": "HashMap[address, uint256]", "slot": 4}, "dynArray": {"type": "DynArray[uint256, 1024][3]", "slot": 5}, "mixedArray": {"type": "DynArray[DynArray[uint256, 1024][3], 1024][5]", "slot": 3080}}, "code_layout": {}}, "source_map": {"breakpoints": [], "error_map": {"150": "user revert with reason", "153": "user revert with reason", "246": "user revert with reason", "253": "user assert", "256": "user assert", "516": "uint160 bounds check", "519": "uint160 bounds check", "598": "uint160 bounds check", "601": "uint160 bounds check", "632": "safeadd", "635": "safeadd", "5497": "uint160 bounds check", "5500": "uint160 bounds check", "5559": "clamp lt 3", "5562": "clamp lt 3", "5574": "clamp lt [sload, val]", "5575": "clamp lt [sload, val]", "5578": "clamp lt [sload, val]", "5626": "clamp lt 5", "5629": "clamp lt 5", "5645": "clamp lt [sload, val]", "5646": "clamp lt [sload, val]", "5649": "clamp lt [sload, val]", "5668": "clamp lt 3", "5671": "clamp lt 3", "5684": "clamp lt [sload, val]", "5685": "clamp lt [sload, val]", "5688": "clamp lt [sload, val]", "5712": "fallback function"}, "pc_breakpoints": [], "pc_jump_map": {"0": "-", "7": "-", "11": "-", "12": "-", "23": "-", "34": "-", "42": "-", "124": "-", "135": "-", "143": "-", "153": "-", "246": "-", "256": "-", "489": "-", "500": "-", "508": "-", "519": "-", "571": "-", "582": "-", "590": "-", "601": "-", "635": "-", "644": "-", "655": "-", "663": "-", "681": "-", "692": "-", "700": "-", "723": "-", "734": "-", "742": "-", "765": "-", "776": "-", "784": "-", "812": "-", "823": "-", "831": "-", "859": "-", "870": "-", "878": "-", "918": "-", "924": "-", "926": "-", "968": "-", "969": "-", "990": "-", "1001": "-", "1009": "-", "1055": "-", "1061": "-", "1063": "-", "1105": "-", "1106": "-", "1156": "-", "1162": "-", "1164": "-", "1207": "-", "1208": "-", "1229": "-", "1240": "-", "1248": "-", "1317": "-", "1323": "-", "1325": "-", "1367": "-", "1368": "-", "1389": "-", "1400": "-", "1408": "-", "1454": "-", "1460": "-", "1462": "-", "1490": "-", "1491": "-", "1541": "-", "1547": "-", "1549": "-", "1592": "-", "1593": "-", "1614": "-", "1625": "-", "1633": "-", "1673": "-", "1684": "-", "1692": "-", "1722": "-", "1728": "-", "1730": "-", "1752": "-", "1753": "-", "1772": "-", "1783": "-", "1791": "-", "1836": "-", "1842": "-", "1844": "-", "1872": "-", "1873": "-", "1895": "-", "1906": "-", "1914": "-", "1972": "-", "1978": "-", "1980": "-", "2009": "-", "2010": "-", "2032": "-", "2043": "-", "2051": "-", "2100": "-", "2106": "-", "2108": "-", "2136": "-", "2137": "-", "2159": "-", "2170": "-", "2178": "-", "2260": "-", "2266": "-", "2268": "-", "2321": "-", "2322": "-", "2344": "-", "2355": "-", "2363": "-", "2403": "-", "2414": "-", "2422": "-", "2436": "-", "2447": "-", "2455": "-", "2469": "-", "2480": "-", "2488": "-", "2505": "-", "2516": "-", "2524": "-", "2536": "-", "2547": "-", "2555": "-", "2736": "-", "2747": "-", "2755": "-", "2791": "-", "2802": "-", "2810": "-", "2897": "-", "2903": "-", "2905": "-", "2949": "-", "2950": "-", "2972": "-", "2983": "-", "2991": "-", "3033": "-", "3039": "-", "3041": "-", "3066": "-", "3067": "-", "3117": "-", "3123": "-", "3125": "-", "3151": "-", "3152": "-", "3202": "-", "3208": "-", "3210": "-", "3236": "-", "3237": "-", "3263": "-", "3274": "-", "3282": "-", "3325": "-", "3331": "-", "3333": "-", "3390": "-", "3396": "-", "3398": "-", "3425": "-", "3426": "-", "3479": "-", "3485": "-", "3487": "-", "3514": "-", "3515": "-", "3570": "-", "3576": "-", "3578": "-", "3605": "-", "3606": "-", "3642": "-", "3643": "-", "3694": "-", "3700": "-", "3702": "-", "3760": "-", "3766": "-", "3768": "-", "3795": "-", "3796": "-", "3849": "-", "3855": "-", "3857": "-", "3884": "-", "3885": "-", "3940": "-", "3946": "-", "3948": "-", "3975": "-", "3976": "-", "4012": "-", "4013": "-", "4064": "-", "4070": "-", "4072": "-", "4130": "-", "4136": "-", "4138": "-", "4165": "-", "4166": "-", "4219": "-", "4225": "-", "4227": "-", "4254": "-", "4255": "-", "4310": "-", "4316": "-", "4318": "-", "4345": "-", "4346": "-", "4382": "-", "4383": "-", "4434": "-", "4440": "-", "4442": "-", "4500": "-", "4506": "-", "4508": "-", "4535": "-", "4536": "-", "4589": "-", "4595": "-", "4597": "-", "4624": "-", "4625": "-", "4680": "-", "4686": "-", "4688": "-", "4715": "-", "4716": "-", "4752": "-", "4753": "-", "4804": "-", "4810": "-", "4812": "-", "4870": "-", "4876": "-", "4878": "-", "4905": "-", "4906": "-", "4959": "-", "4965": "-", "4967": "-", "4994": "-", "4995": "-", "5050": "-", "5056": "-", "5058": "-", "5085": "-", "5086": "-", "5122": "-", "5123": "-", "5149": "-", "5160": "-", "5168": "-", "5239": "-", "5245": "-", "5247": "-", "5301": "-", "5302": "-", "5324": "-", "5335": "-", "5344": "-", "5346": "-", "5357": "-", "5365": "-", "5377": "-", "5388": "-", "5396": "-", "5408": "-", "5419": "-", "5427": "-", "5439": "-", "5450": "-", "5458": "-", "5470": "-", "5481": "-", "5489": "-", "5500": "-", "5529": "-", "5540": "-", "5548": "-", "5562": "-", "5578": "-", "5595": "-", "5606": "-", "5614": "-", "5629": "-", "5649": "-", "5671": "-", "5688": "-", "5705": "-", "5707": "-", "5713": "-"}, "pc_pos_map": {"43": [57, 22, 57, 22], "45": [57, 4, 57, 22], "78": [57, 4, 57, 22], "80": [57, 4, 57, 22], "82": [57, 4, 57, 22], "83": [58, 22, 58, 22], "85": [58, 4, 58, 22], "118": [58, 4, 58, 22], "120": [58, 4, 58, 22], "122": [58, 4, 58, 22], "144": [62, 25, 62, 35], "146": [62, 11, 62, 35], "147": [62, 11, 62, 21], "148": [62, 11, 62, 35], "149": [62, 11, 62, 35], "150": [62, 4, 62, 50], "153": [62, 4, 62, 50], "158": [62, 37, 62, 50], "194": [62, 37, 62, 50], "195": [62, 37, 62, 50], "197": [62, 4, 62, 50], "246": [62, 4, 62, 50], "247": [63, 18, 63, 19], "249": [66, 65, 66, 68], "251": [63, 11, 63, 19], "253": [63, 4, 63, 19], "256": [63, 4, 63, 19], "257": [64, 22, 64, 35], "260": [64, 4, 64, 19], "263": [66, 65, 66, 68], "266": [65, 4, 65, 17], "268": [65, 4, 65, 23], "273": [66, 70, 66, 79], "309": [66, 70, 66, 79], "310": [66, 70, 66, 79], "319": [66, 4, 66, 80], "320": [66, 4, 66, 80], "321": [66, 65, 66, 68], "323": [66, 4, 66, 80], "324": [66, 4, 66, 80], "363": [66, 21, 66, 35], "367": [66, 37, 66, 52], "382": [66, 54, 66, 63], "418": [66, 54, 66, 63], "419": [66, 54, 66, 63], "485": [66, 4, 66, 80], "487": [66, 4, 66, 80], "520": [69, 15, 69, 32], "522": [69, 15, 69, 32], "523": [70, 22, 70, 30], "526": [70, 4, 70, 19], "529": [71, 22, 71, 30], "531": [71, 4, 71, 31], "532": [71, 4, 71, 31], "565": [71, 4, 71, 31], "567": [71, 4, 71, 31], "569": [71, 4, 71, 31], "602": [74, 15, 74, 32], "604": [74, 15, 74, 32], "605": [75, 4, 75, 17], "607": [75, 18, 75, 26], "610": [75, 4, 75, 27], "612": [75, 4, 75, 27], "613": [75, 4, 75, 27], "615": [75, 4, 75, 27], "616": [75, 4, 75, 27], "618": [75, 4, 75, 27], "620": [75, 4, 75, 27], "621": [75, 4, 75, 34], "622": [75, 4, 75, 34], "623": [75, 31, 75, 34], "627": [75, 4, 75, 34], "629": [75, 4, 75, 34], "636": [75, 4, 75, 34], "637": [75, 4, 75, 34], "638": [75, 4, 75, 34], "639": [75, 4, 75, 34], "640": [75, 4, 75, 34], "642": [75, 4, 75, 34], "664": [80, 24, 80, 34], "672": [80, 39, 80, 53], "701": [85, 42, 85, 52], "709": [85, 57, 85, 71], "713": [85, 80, 85, 81], "743": [90, 31, 90, 32], "748": [90, 50, 90, 60], "756": [90, 65, 90, 79], "785": [95, 43, 95, 53], "793": [95, 58, 95, 72], "797": [95, 81, 95, 82], "802": [95, 86, 95, 87], "832": [100, 12, 100, 13], "837": [100, 35, 100, 36], "842": [100, 54, 100, 64], "850": [100, 69, 100, 83], "883": [105, 4, 105, 44], "898": [106, 11, 106, 22], "1014": [111, 4, 111, 46], "1020": [112, 4, 112, 46], "1035": [113, 12, 113, 25], "1135": [113, 27, 113, 40], "1249": [118, 4, 118, 51], "1251": [118, 4, 118, 51], "1252": [118, 4, 118, 51], "1254": [118, 4, 118, 51], "1297": [120, 27, 120, 40], "1413": [125, 4, 125, 41], "1419": [126, 4, 126, 44], "1434": [127, 11, 127, 20], "1520": [127, 22, 127, 33], "1634": [134, 17, 134, 18], "1639": [136, 29, 136, 39], "1647": [136, 44, 136, 58], "1651": [137, 29, 137, 39], "1659": [137, 44, 137, 58], "1663": [139, 17, 139, 18], "1809": [151, 12, 151, 13], "1932": [156, 12, 156, 13], "1938": [156, 15, 156, 16], "1944": [156, 18, 156, 19], "2069": [161, 12, 161, 22], "2073": [161, 24, 161, 34], "2197": [168, 39, 168, 49], "2206": [168, 54, 168, 68], "2211": [168, 77, 168, 78], "2217": [169, 39, 169, 49], "2226": [169, 54, 169, 68], "2231": [169, 77, 169, 78], "2364": [176, 28, 176, 29], "2369": [176, 47, 176, 57], "2377": [176, 62, 176, 76], "2381": [177, 28, 177, 29], "2386": [177, 47, 177, 57], "2394": [177, 62, 177, 76], "2489": [194, 12, 194, 15], "2494": [194, 17, 194, 20], "2562": [204, 4, 204, 47], "2563": [205, 19, 205, 29], "2564": [205, 4, 205, 16], "2566": [205, 4, 205, 29], "2756": [211, 13, 211, 14], "2761": [211, 16, 211, 17], "2766": [211, 21, 211, 22], "2771": [211, 24, 211, 25], "2776": [211, 29, 211, 30], "2781": [211, 32, 211, 33], "2830": [216, 13, 216, 14], "2837": [216, 16, 216, 17], "2844": [216, 21, 216, 22], "2851": [216, 24, 216, 25], "2858": [216, 29, 216, 30], "2865": [216, 32, 216, 33], "5188": [231, 13, 231, 23], "5194": [231, 25, 231, 35], "5200": [231, 37, 231, 47]}, "pc_pos_map_compressed": "-1:-1:0:-;;;;:::-;;:::-;:::-;;;;;;;:::-;;;;;:::-;;;;;:::-;1171:0;1153:18;;;;1194:0;1176:18;;;;-1:-1;:::-;;;;;:::-;;;;;:::-;1260:10;1246:24;:10;:24;;1239:46;:::-;-1:-1;;1272:13;-1:-1;;1272:13;;1239:46;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1239:46::-;1304:1;1431:3;1297:8;-1:-1;1290:15;:::-;1328:13;-1:-1;1310:15;-1:-1;1431:3;-1:-1;1346:13;:19;-1:-1;;1436:9;-1:-1;;1436:9;;-1:-1;;;;;;1370:76;;1431:3;1370:76;;-1:-1;;;;1387:14;-1:-1;;1403:15;-1:-1;;;;;;;;1420:9;-1:-1;;1420:9;;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1370:76;;-1:-1;:::-;;;;;:::-;;;;;:::-;;;;;;;:::-;1473:17;;1515:8;-1:-1;1497:15;-1:-1;1546:8;1528:27;;;;;-1:-1;:::-;;;;;:::-;;;;;:::-;;;;;;;:::-;1582:17;;1620:13;1634:8;-1:-1;1620:23;;;;;;;:30;;1647:3;-1:-1;;1620:30;-1:-1;1620:30;-1:-1;;;:::-;1620:30;;;;;-1:-1;1620:30;-1:-1;:::-;;;;;:::-;;;;;:::-;1721:10;-1:-1;;;;;1736:14;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;1853:10;-1:-1;;;;;1868:14;-1:-1;;1891:1;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;1984:1;-1:-1;;2003:10;-1:-1;;;;;2018:14;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;2158:10;-1:-1;;;;;2173:14;-1:-1;;2196:1;-1:-1;;2201:1;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;2294:1;-1:-1;;2317:1;-1:-1;;2336:10;-1:-1;;;;;2351:14;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;;;2451:40;-1:-1;;;;;;;;2503:11;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;2626:42;-1:-1;;2673:42;-1:-1;;;;;;;;2728:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;2743:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;2876:47;;;;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;2997:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;3121:37;-1:-1;;3163:40;-1:-1;;;;;;;;3215:9;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;3226:11;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;3343:1;-1:-1;;3394:10;-1:-1;;;;;3409:14;-1:-1;;3456:10;-1:-1;;;;;3471:14;-1:-1;;3520:1;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;3693:1;-1:-1;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;3771:1;-1:-1;;3774:1;-1:-1;;3777:1;-1:-1;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;3856:10;-1:-1;;3868:10;-1:-1;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;4009:10;-1:-1;;;;;4024:14;-1:-1;;4047:1;-1:-1;;4091:10;-1:-1;;;;;4106:14;-1:-1;;4129:1;-1:-1;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;4245:1;-1:-1;;4264:10;-1:-1;;;;;4279:14;-1:-1;;4327:1;-1:-1;;4346:10;-1:-1;;;;;4361:14;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;4678:3;-1:-1;;4683:3;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;4849:43;4912:10;4897:12;:25;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;5045:1;-1:-1;;5048:1;-1:-1;;5053:1;-1:-1;;5056:1;-1:-1;;5061:1;-1:-1;;5064:1;-1:-1;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;5162:1;-1:-1;;5165:1;-1:-1;;5170:1;-1:-1;;5173:1;-1:-1;;5178:1;-1:-1;;5181:1;-1:-1;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;;;;;5507:10;-1:-1;;5519:10;-1:-1;;5531:10;-1:-1;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;:::-;;;;;;;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;;;;;;;;:::-;;;;;;;;;;;;;:::-;;;;;:::-;;;;;:::-;;;;;;;;:::-;;;;;;;;;;;;;:::-;;;;;;;;;;;;;;;:::-;;;;;;;;;;;;;;:::-;;;;;;;;;;;;;:::-;;:::-;;;;:::-;;;"}, "method_identifiers": {"__init__(uint256)": "0xd6cdca0d", "fooAndBar()": "0x2beb1711", "setNumber(uint256)": "0x3fb5c1cb", "setAddress(address)": "0xe30081a0", "setBalance(address,uint256)": "0xe30443bc", "getStruct()": "0x9b1b3f2", "getNestedStruct1()": "0x2f487d6", "getNestedStruct2()": "0xa420b5a5", "getNestedStructWithTuple1()": "0xe9f7fd14", "getNestedStructWithTuple2()": "0xa2fbee53", "getEmptyDynArrayOfStructs()": "0x7a79591d", "getEmptyTupleOfDynArrayStructs()": "0xa4f6d26b", "getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs()": "0x252e423e", "getEmptyTupleOfIntAndDynArray()": "0xa5c1b662", "getStructWithArray()": "0x42ce1ec6", "getEmptyArray()": "0x52f3e76", "getSingleItemArray()": "0xb345ad96", "getFilledArray()": "0x35417bf4", "getAddressArray()": "0xa5b0930d", "getDynamicStructArray()": "0x9bfb2ad8", "getStaticStructArray()": "0x3ce80e94", "getArrayWithBiggerSize()": "0x43790b64", "getTupleOfArrays()": "0xd4d64b35", "getMultipleValues()": "0x650543a3", "getUnnamedTuple()": "0x243e0963", "getTupleOfAddressArray()": "0x8ba6052d", "getNestedArrayFixedFixed()": "0xccd62aa4", "getNestedArrayDynamicFixed()": "0x6126c87f", "getNestedArrayFixedDynamic()": "0x94a66fc9", "getNestedArrayMixedDynamic()": "0xabeb2022", "getNestedAddressArray()": "0x99e74a4c", "functionWithUniqueAmountOfArguments(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)": "0xacab48d8", "owner()": "0x8da5cb5b", "myNumber()": "0x23fd0e40", "prevNumber()": "0x4825cf6f", "theAddress()": "0x6cbceeec", "balances(address)": "0x27e235e3", "dynArray(uint256,uint256)": "0xd3aaff6d", "mixedArray(uint256,uint256,uint256,uint256)": "0xae8ef2cb"}, "userdoc": {}, "devdoc": {}} \ No newline at end of file