@tokamak-network/thanos-contracts
Version:
1 lines • 298 kB
JSON
{"abi":[{"type":"function","name":"get","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Deployment","components":[{"name":"name","type":"string","internalType":"string"},{"name":"addr","type":"address","internalType":"address payable"}]}],"stateMutability":"view"},{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"has","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadInitializedSlot","inputs":[{"name":"_contractName","type":"string","internalType":"string"}],"outputs":[{"name":"initialized_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"mustGetAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"newDeployments","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Deployment[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"addr","type":"address","internalType":"address payable"}]}],"stateMutability":"view"},{"type":"function","name":"prankDeployment","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_addr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"save","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_deployed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"DeploymentDoesNotExist","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"FfiFailed","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidDeployment","inputs":[{"name":"","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"get(string)":"693ec85e","getAddress(string)":"bf40fac1","has(string)":"a8e52294","loadInitializedSlot(string)":"c7834271","mustGetAddress(string)":"3fb90271","newDeployments()":"e8727781","prankDeployment(string,address)":"6f9e93dd","save(string,address)":"4b64367e","setUp()":"0a9254e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"DeploymentDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"FfiFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"get\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"}],\"internalType\":\"struct Deployment\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"has\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_contractName\",\"type\":\"string\"}],\"name\":\"loadInitializedSlot\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"initialized_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"mustGetAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newDeployments\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"}],\"internalType\":\"struct Deployment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"prankDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_deployed\",\"type\":\"address\"}],\"name\":\"save\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"get(string)\":{\"params\":{\"_name\":\"The name of the deployment.\"},\"returns\":{\"_0\":\"The deployment.\"}},\"getAddress(string)\":{\"params\":{\"_name\":\"The name of the deployment.\"},\"returns\":{\"_0\":\"The address of the deployment. May be `address(0)` if the deployment does not exist.\"}},\"has(string)\":{\"params\":{\"_name\":\"The name of the deployment.\"},\"returns\":{\"_0\":\"Whether the deployment exists or not.\"}},\"mustGetAddress(string)\":{\"returns\":{\"_0\":\"The address of the deployment.\"}},\"prankDeployment(string,address)\":{\"params\":{\"_addr\":\"The mock address of the deployment.\",\"_name\":\"The name of the deployment.\"}},\"save(string,address)\":{\"params\":{\"_deployed\":\"The address of the deployment.\",\"_name\":\"The name of the deployment.\"}}},\"title\":\"Artifacts\",\"version\":1},\"userdoc\":{\"errors\":{\"DeploymentDoesNotExist(string)\":[{\"notice\":\"Error for when attempting to fetch a deployment and it does not exist\"}],\"FfiFailed(string)\":[{\"notice\":\"Error for when an ffi command fails.\"}],\"InvalidDeployment(string)\":[{\"notice\":\"Error for when trying to save an invalid deployment\"}]},\"kind\":\"user\",\"methods\":{\"get(string)\":{\"notice\":\"Returns a deployment that is suitable to be used to interact with contracts.\"},\"getAddress(string)\":{\"notice\":\"Returns the address of a deployment. Also handles the predeploys.\"},\"has(string)\":{\"notice\":\"Returns whether or not a particular deployment exists.\"},\"loadInitializedSlot(string)\":{\"notice\":\"Returns the value of the internal `_initialized` storage slot for a given contract.\"},\"mustGetAddress(string)\":{\"notice\":\"Returns the address of a deployment and reverts if the deployment does not exist.\"},\"newDeployments()\":{\"notice\":\"Returns all of the deployments done in the current context.\"},\"prankDeployment(string,address)\":{\"notice\":\"Stubs a deployment retrieved through `get`.\"},\"save(string,address)\":{\"notice\":\"Appends a deployment to disk as a JSON deploy artifact.\"},\"setUp()\":{\"notice\":\"Setup function. The arguments here\"}},\"notice\":\"Useful for accessing deployment artifacts from within scripts. When a contract is deployed, call the `save` function to write its name and contract address to disk. Inspired by `forge-deploy`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Artifacts.s.sol\":\"Artifacts\"},\"evmVersion\":\"cancun\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"scripts/Artifacts.s.sol\":{\"keccak256\":\"0xf22eabc7ede49a6b02d02abfd3f2af092e2316f7e17371b236ded6981483340d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde726a7044d8b34c3dfd66b319bc78c98591d895639ac6ac44096f8d796329f\",\"dweb:/ipfs/QmNhuLxsv4GMjLHPYvevW2SGaxDhwcvX11edKQL15p5MEY\"]},\"scripts/Config.sol\":{\"keccak256\":\"0x8ca0f72a6f788d56aa88d5854badab58eeb3a06d8324565e2fb532ec3fe213d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b60e6cd83217ff105667720366cd5562db5c88bf2e6b74e985ff34dea6e26b92\",\"dweb:/ipfs/QmZLZYwAtRUCZiizvQ9jsdt7HfBwAa6xmThJnqdNd89smP\"]},\"scripts/Executables.sol\":{\"keccak256\":\"0x111dbe563e6013c1264f27b962e2c2bd9c39bb0967f8532d2443588930d74ba1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a04f796d9a7bcf97902c9dcd48c8c106f9cc7d8443b5699027bd7c1238cfc23d\",\"dweb:/ipfs/Qma8AwPLD1MG9FwGbSwJgY3CwrwwtJ8ym89QCGG22VkFT1\"]},\"scripts/ForgeArtifacts.sol\":{\"keccak256\":\"0xb08a4120bffbfdd21ed439c04325230c9314ea31f2e9283cf86d2f4f82680901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18a233ba20fc54af2649ae6761246f3b6ed405d97097b62bd5ff4dc58bcd7600\",\"dweb:/ipfs/Qmb2Xa5cfuHNnvcng1SybUa6UK3hyQbwxyhbFyt1amK7kh\"]},\"scripts/interfaces/IAddressManager.sol\":{\"keccak256\":\"0x8535ed4854cada3ed9eca1a04a6fd2567862f7bd7dc4a8a1be36095ec437da53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afd8602362aee418eac66093e59bab8da103122a3c08c8f79f44effdfe4fd6ce\",\"dweb:/ipfs/QmUBeiKWmEpx2yK4237QMz12nrPhmbWe56xd6QFH9vfrPt\"]},\"scripts/libraries/Process.sol\":{\"keccak256\":\"0xf2ad1d9d948fb8914adc25b691f2ec18c396930069c492f5d3d3b67b0a5e0920\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://912b145d1a5dd62c18e22c0058e345c55ebf8157e704f2e6dbd90fb8cff9fa1c\",\"dweb:/ipfs/QmNweSeEiuML5bYbHGDw98Rkup1e1URWWdQJqUBbQPQGPP\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3\",\"dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3\"]},\"test/mocks/EIP1967Helper.sol\":{\"keccak256\":\"0xd9d733dc223cd612def7a4b19310c05816a8b3aa23b67be7149bb66bde9fd967\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f18f09dd627c175a39b83f9849a7e2288846160852facfbc7b312a941d450e4\",\"dweb:/ipfs/QmYmj5hMmKmReU6Zc6BYgA3H8piAgSpt93shNMfx2rm3K8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"DeploymentDoesNotExist"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"FfiFailed"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidDeployment"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"get","outputs":[{"internalType":"struct Deployment","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address payable","name":"addr","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"has","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"_contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadInitializedSlot","outputs":[{"internalType":"uint8","name":"initialized_","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"mustGetAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"newDeployments","outputs":[{"internalType":"struct Deployment[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address payable","name":"addr","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prankDeployment"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_deployed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"save"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"}],"devdoc":{"kind":"dev","methods":{"get(string)":{"params":{"_name":"The name of the deployment."},"returns":{"_0":"The deployment."}},"getAddress(string)":{"params":{"_name":"The name of the deployment."},"returns":{"_0":"The address of the deployment. May be `address(0)` if the deployment does not exist."}},"has(string)":{"params":{"_name":"The name of the deployment."},"returns":{"_0":"Whether the deployment exists or not."}},"mustGetAddress(string)":{"returns":{"_0":"The address of the deployment."}},"prankDeployment(string,address)":{"params":{"_addr":"The mock address of the deployment.","_name":"The name of the deployment."}},"save(string,address)":{"params":{"_deployed":"The address of the deployment.","_name":"The name of the deployment."}}},"version":1},"userdoc":{"kind":"user","methods":{"get(string)":{"notice":"Returns a deployment that is suitable to be used to interact with contracts."},"getAddress(string)":{"notice":"Returns the address of a deployment. Also handles the predeploys."},"has(string)":{"notice":"Returns whether or not a particular deployment exists."},"loadInitializedSlot(string)":{"notice":"Returns the value of the internal `_initialized` storage slot for a given contract."},"mustGetAddress(string)":{"notice":"Returns the address of a deployment and reverts if the deployment does not exist."},"newDeployments()":{"notice":"Returns all of the deployments done in the current context."},"prankDeployment(string,address)":{"notice":"Stubs a deployment retrieved through `get`."},"save(string,address)":{"notice":"Appends a deployment to disk as a JSON deploy artifact."},"setUp()":{"notice":"Setup function. The arguments here"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Artifacts.s.sol":"Artifacts"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"scripts/Artifacts.s.sol":{"keccak256":"0xf22eabc7ede49a6b02d02abfd3f2af092e2316f7e17371b236ded6981483340d","urls":["bzz-raw://cde726a7044d8b34c3dfd66b319bc78c98591d895639ac6ac44096f8d796329f","dweb:/ipfs/QmNhuLxsv4GMjLHPYvevW2SGaxDhwcvX11edKQL15p5MEY"],"license":"MIT"},"scripts/Config.sol":{"keccak256":"0x8ca0f72a6f788d56aa88d5854badab58eeb3a06d8324565e2fb532ec3fe213d3","urls":["bzz-raw://b60e6cd83217ff105667720366cd5562db5c88bf2e6b74e985ff34dea6e26b92","dweb:/ipfs/QmZLZYwAtRUCZiizvQ9jsdt7HfBwAa6xmThJnqdNd89smP"],"license":"MIT"},"scripts/Executables.sol":{"keccak256":"0x111dbe563e6013c1264f27b962e2c2bd9c39bb0967f8532d2443588930d74ba1","urls":["bzz-raw://a04f796d9a7bcf97902c9dcd48c8c106f9cc7d8443b5699027bd7c1238cfc23d","dweb:/ipfs/Qma8AwPLD1MG9FwGbSwJgY3CwrwwtJ8ym89QCGG22VkFT1"],"license":"MIT"},"scripts/ForgeArtifacts.sol":{"keccak256":"0xb08a4120bffbfdd21ed439c04325230c9314ea31f2e9283cf86d2f4f82680901","urls":["bzz-raw://18a233ba20fc54af2649ae6761246f3b6ed405d97097b62bd5ff4dc58bcd7600","dweb:/ipfs/Qmb2Xa5cfuHNnvcng1SybUa6UK3hyQbwxyhbFyt1amK7kh"],"license":"MIT"},"scripts/interfaces/IAddressManager.sol":{"keccak256":"0x8535ed4854cada3ed9eca1a04a6fd2567862f7bd7dc4a8a1be36095ec437da53","urls":["bzz-raw://afd8602362aee418eac66093e59bab8da103122a3c08c8f79f44effdfe4fd6ce","dweb:/ipfs/QmUBeiKWmEpx2yK4237QMz12nrPhmbWe56xd6QFH9vfrPt"],"license":"MIT"},"scripts/libraries/Process.sol":{"keccak256":"0xf2ad1d9d948fb8914adc25b691f2ec18c396930069c492f5d3d3b67b0a5e0920","urls":["bzz-raw://912b145d1a5dd62c18e22c0058e345c55ebf8157e704f2e6dbd90fb8cff9fa1c","dweb:/ipfs/QmNweSeEiuML5bYbHGDw98Rkup1e1URWWdQJqUBbQPQGPP"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f","urls":["bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3","dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3"],"license":"MIT"},"test/mocks/EIP1967Helper.sol":{"keccak256":"0xd9d733dc223cd612def7a4b19310c05816a8b3aa23b67be7149bb66bde9fd967","urls":["bzz-raw://6f18f09dd627c175a39b83f9849a7e2288846160852facfbc7b312a941d450e4","dweb:/ipfs/QmYmj5hMmKmReU6Zc6BYgA3H8piAgSpt93shNMfx2rm3K8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49324,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"_namedDeployments","offset":0,"slot":"0","type":"t_mapping(t_string_memory_ptr,t_struct(Deployment)49289_storage)"},{"astId":49329,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"_newDeployments","offset":0,"slot":"1","type":"t_array(t_struct(Deployment)49289_storage)dyn_storage"},{"astId":49332,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"deploymentsDir","offset":0,"slot":"2","type":"t_string_storage"},{"astId":49335,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"deploymentOutfile","offset":0,"slot":"3","type":"t_string_storage"},{"astId":49338,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"deploymentContext","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_struct(Deployment)49289_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct Deployment[]","numberOfBytes":"32","base":"t_struct(Deployment)49289_storage"},"t_mapping(t_string_memory_ptr,t_struct(Deployment)49289_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct Deployment)","numberOfBytes":"32","value":"t_struct(Deployment)49289_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Deployment)49289_storage":{"encoding":"inplace","label":"struct Deployment","numberOfBytes":"64","members":[{"astId":49286,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":49288,"contract":"scripts/Artifacts.s.sol:Artifacts","label":"addr","offset":0,"slot":"1","type":"t_address_payable"}]}}},"userdoc":{"version":1,"kind":"user","methods":{"get(string)":{"notice":"Returns a deployment that is suitable to be used to interact with contracts."},"getAddress(string)":{"notice":"Returns the address of a deployment. Also handles the predeploys."},"has(string)":{"notice":"Returns whether or not a particular deployment exists."},"loadInitializedSlot(string)":{"notice":"Returns the value of the internal `_initialized` storage slot for a given contract."},"mustGetAddress(string)":{"notice":"Returns the address of a deployment and reverts if the deployment does not exist."},"newDeployments()":{"notice":"Returns all of the deployments done in the current context."},"prankDeployment(string,address)":{"notice":"Stubs a deployment retrieved through `get`."},"save(string,address)":{"notice":"Appends a deployment to disk as a JSON deploy artifact."},"setUp()":{"notice":"Setup function. The arguments here"}},"errors":{"DeploymentDoesNotExist(string)":[{"notice":"Error for when attempting to fetch a deployment and it does not exist"}],"FfiFailed(string)":[{"notice":"Error for when an ffi command fails."}],"InvalidDeployment(string)":[{"notice":"Error for when trying to save an invalid deployment"}]},"notice":"Useful for accessing deployment artifacts from within scripts. When a contract is deployed, call the `save` function to write its name and contract address to disk. Inspired by `forge-deploy`."},"devdoc":{"version":1,"kind":"dev","methods":{"get(string)":{"params":{"_name":"The name of the deployment."},"returns":{"_0":"The deployment."}},"getAddress(string)":{"params":{"_name":"The name of the deployment."},"returns":{"_0":"The address of the deployment. May be `address(0)` if the deployment does not exist."}},"has(string)":{"params":{"_name":"The name of the deployment."},"returns":{"_0":"Whether the deployment exists or not."}},"mustGetAddress(string)":{"returns":{"_0":"The address of the deployment."}},"prankDeployment(string,address)":{"params":{"_addr":"The mock address of the deployment.","_name":"The name of the deployment."}},"save(string,address)":{"params":{"_deployed":"The address of the deployment.","_name":"The name of the deployment."}}},"title":"Artifacts"},"ast":{"absolutePath":"scripts/Artifacts.s.sol","id":50365,"exportedSymbols":{"Artifacts":[50364],"Config":[50917],"Deployment":[49289],"EIP1967Helper":[61756],"Executables":[51014],"ForgeArtifacts":[51994],"IAddressManager":[52056],"LibString":[47666],"Predeploys":[56375],"Process":[52596],"StorageSlot":[51038],"Vm":[15857],"console":[32046],"stdJson":[7286]},"nodeType":"SourceUnit","src":"32:12342:32","nodes":[{"id":49259,"nodeType":"PragmaDirective","src":"32:23:32","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49261,"nodeType":"ImportDirective","src":"57:61:32","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":32047,"symbolAliases":[{"foreign":{"id":49260,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32046,"src":"66:8:32","typeDescriptions":{}},"local":"console","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49263,"nodeType":"ImportDirective","src":"119:48:32","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"forge-std/StdJson.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":7287,"symbolAliases":[{"foreign":{"id":49262,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7286,"src":"128:7:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49265,"nodeType":"ImportDirective","src":"168:38:32","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":15858,"symbolAliases":[{"foreign":{"id":49264,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"177:2:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49267,"nodeType":"ImportDirective","src":"207:54:32","nodes":[],"absolutePath":"scripts/Executables.sol","file":"scripts/Executables.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":51015,"symbolAliases":[{"foreign":{"id":49266,"name":"Executables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51014,"src":"216:11:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49269,"nodeType":"ImportDirective","src":"262:58:32","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":56376,"symbolAliases":[{"foreign":{"id":49268,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56375,"src":"271:10:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49271,"nodeType":"ImportDirective","src":"321:44:32","nodes":[],"absolutePath":"scripts/Config.sol","file":"scripts/Config.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":50918,"symbolAliases":[{"foreign":{"id":49270,"name":"Config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50917,"src":"330:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49273,"nodeType":"ImportDirective","src":"366:57:32","nodes":[],"absolutePath":"scripts/ForgeArtifacts.sol","file":"scripts/ForgeArtifacts.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":51995,"symbolAliases":[{"foreign":{"id":49272,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"375:11:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49275,"nodeType":"ImportDirective","src":"424:61:32","nodes":[],"absolutePath":"test/mocks/EIP1967Helper.sol","file":"test/mocks/EIP1967Helper.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":61757,"symbolAliases":[{"foreign":{"id":49274,"name":"EIP1967Helper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61756,"src":"433:13:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49277,"nodeType":"ImportDirective","src":"486:56:32","nodes":[],"absolutePath":"lib/solady/src/utils/LibString.sol","file":"@solady/utils/LibString.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":47667,"symbolAliases":[{"foreign":{"id":49276,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47666,"src":"495:9:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49279,"nodeType":"ImportDirective","src":"543:60:32","nodes":[],"absolutePath":"scripts/ForgeArtifacts.sol","file":"scripts/ForgeArtifacts.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":51995,"symbolAliases":[{"foreign":{"id":49278,"name":"ForgeArtifacts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51994,"src":"552:14:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49281,"nodeType":"ImportDirective","src":"604:73:32","nodes":[],"absolutePath":"scripts/interfaces/IAddressManager.sol","file":"scripts/interfaces/IAddressManager.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":52057,"symbolAliases":[{"foreign":{"id":49280,"name":"IAddressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52056,"src":"613:15:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49283,"nodeType":"ImportDirective","src":"678:56:32","nodes":[],"absolutePath":"scripts/libraries/Process.sol","file":"scripts/libraries/Process.sol","nameLocation":"-1:-1:-1","scope":50365,"sourceUnit":52597,"symbolAliases":[{"foreign":{"id":49282,"name":"Process","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52596,"src":"687:7:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49289,"nodeType":"StructDefinition","src":"865:64:32","nodes":[],"canonicalName":"Deployment","documentation":{"id":49284,"nodeType":"StructuredDocumentation","src":"736:129:32","text":"@notice Represents a deployment. Is serialized to JSON as a key/value\n pair. Can be accessed from within scripts."},"members":[{"constant":false,"id":49286,"mutability":"mutable","name":"name","nameLocation":"896:4:32","nodeType":"VariableDeclaration","scope":49289,"src":"889:11:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":49285,"name":"string","nodeType":"ElementaryTypeName","src":"889:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":49288,"mutability":"mutable","name":"addr","nameLocation":"922:4:32","nodeType":"VariableDeclaration","scope":49289,"src":"906:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49287,"name":"address","nodeType":"ElementaryTypeName","src":"906:15:32","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"name":"Deployment","nameLocation":"872:10:32","scope":50365,"visibility":"public"},{"id":50364,"nodeType":"ContractDefinition","src":"1181:11192:32","nodes":[{"id":49308,"nodeType":"VariableDeclaration","src":"1253:84:32","nodes":[],"constant":true,"documentation":{"id":49291,"nodeType":"StructuredDocumentation","src":"1215:33:32","text":"@notice Foundry cheatcode VM."},"mutability":"constant","name":"vm","nameLocation":"1273:2:32","scope":50364,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"},"typeName":{"id":49293,"nodeType":"UserDefinedTypeName","pathNode":{"id":49292,"name":"Vm","nameLocations":["1253:2:32"],"nodeType":"IdentifierPath","referencedDeclaration":15857,"src":"1253:2:32"},"referencedDeclaration":15857,"src":"1253:2:32","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":49302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1315:17:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":49301,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1305:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1305:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1297:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49299,"name":"uint256","nodeType":"ElementaryTypeName","src":"1297:7:32","typeDescriptions":{}}},"id":49304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1297:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":49297,"name":"uint160","nodeType":"ElementaryTypeName","src":"1289:7:32","typeDescriptions":{}}},"id":49305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:46:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":49296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1281:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49295,"name":"address","nodeType":"ElementaryTypeName","src":"1281:7:32","typeDescriptions":{}}},"id":49306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1281:55:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49294,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"1278:2:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15857_$","typeString":"type(contract Vm)"}},"id":49307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:59:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"visibility":"private"},{"id":49313,"nodeType":"ErrorDefinition","src":"1430:37:32","nodes":[],"documentation":{"id":49309,"nodeType":"StructuredDocumentation","src":"1343:82:32","text":"@notice Error for when attempting to fetch a deployment and it does not exist"},"errorSelector":"b2f5b290","name":"DeploymentDoesNotExist","nameLocation":"1436:22:32","parameters":{"id":49312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49313,"src":"1459:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49310,"name":"string","nodeType":"ElementaryTypeName","src":"1459:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1458:8:32"}},{"id":49318,"nodeType":"ErrorDefinition","src":"1540:32:32","nodes":[],"documentation":{"id":49314,"nodeType":"StructuredDocumentation","src":"1472:63:32","text":"@notice Error for when trying to save an invalid deployment"},"errorSelector":"dfc8467d","name":"InvalidDeployment","nameLocation":"1546:17:32","parameters":{"id":49317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49318,"src":"1564:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49315,"name":"string","nodeType":"ElementaryTypeName","src":"1564:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1563:8:32"}},{"id":49324,"nodeType":"VariableDeclaration","src":"1655:56:32","nodes":[],"constant":false,"documentation":{"id":49319,"nodeType":"StructuredDocumentation","src":"1577:73:32","text":"@notice The set of deployments that have been done during execution."},"mutability":"mutable","name":"_namedDeployments","nameLocation":"1694:17:32","scope":50364,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Deployment_$49289_storage_$","typeString":"mapping(string => struct Deployment)"},"typeName":{"id":49323,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49320,"name":"string","nodeType":"ElementaryTypeName","src":"1663:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1655:29:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Deployment_$49289_storage_$","typeString":"mapping(string => struct Deployment)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49322,"nodeType":"UserDefinedTypeName","pathNode":{"id":49321,"name":"Deployment","nameLocations":["1673:10:32"],"nodeType":"IdentifierPath","referencedDeclaration":49289,"src":"1673:10:32"},"referencedDeclaration":49289,"src":"1673:10:32","typeDescriptions":{"typeIdentifier":"t_struct$_Deployment_$49289_storage_ptr","typeString":"struct Deployment"}}},"visibility":"internal"},{"id":49329,"nodeType":"VariableDeclaration","src":"1782:37:32","nodes":[],"constant":false,"documentation":{"id":49325,"nodeType":"StructuredDocumentation","src":"1717:60:32","text":"@notice The same as `_namedDeployments` but as an array."},"mutability":"mutable","name":"_newDeployments","nameLocation":"1804:15:32","scope":50364,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Deployment_$49289_storage_$dyn_storage","typeString":"struct Deployment[]"},"typeName":{"baseType":{"id":49327,"nodeType":"UserDefinedTypeName","pathNode":{"id":49326,"name":"Deployment","nameLocations":["1782:10:32"],"nodeType":"IdentifierPath","referencedDeclaration":49289,"src":"1782:10:32"},"referencedDeclaration":49289,"src":"1782:10:32","typeDescriptions":{"typeIdentifier":"t_struct$_Deployment_$49289_storage_ptr","typeString":"struct Deployment"}},"id":49328,"nodeType":"ArrayTypeName","src":"1782:12:32","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Deployment_$49289_storage_$dyn_storage_ptr","typeString":"struct Deployment[]"}},"visibility":"internal"},{"id":49332,"nodeType":"VariableDeclaration","src":"1904:30:32","nodes":[],"constant":false,"documentation":{"id":49330,"nodeType":"StructuredDocumentation","src":"1825:74:32","text":"@notice Path to the directory containing the hh deploy style artifacts"},"mutability":"mutable","name":"deploymentsDir","nameLocation":"1920:14:32","scope":50364,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":49331,"name":"string","nodeType":"ElementaryTypeName","src":"1904:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":49335,"nodeType":"VariableDeclaration","src":"2018:33:32","nodes":[],"constant":false,"documentation":{"id":49333,"nodeType":"StructuredDocumentation","src":"1940:73:32","text":"@notice The path to the deployment artifact that is being written to."},"mutability":"mutable","name":"deploymentOutfile","nameLocation":"2034:17:32","scope":50364,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":49334,"name":"string","nodeType":"ElementaryTypeName","src":"2018:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":49338,"nodeType":"VariableDeclaration","src":"2155:33:32","nodes":[],"constant":false,"documentation":{"id":49336,"nodeType":"StructuredDocumentation","src":"2057:93:32","text":"@notice The namespace for the deployment. Can be set with the env var DEPLOYMENT_CONTEXT."},"mutability":"mutable","name":"deploymentContext","nameLocation":"2171:17:32","scope":50364,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":49337,"name":"string","nodeType":"ElementaryTypeName","src":"2155:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":49401,"nodeType":"FunctionDefinition","src":"2246:724:32","nodes":[],"body":{"id":49400,"nodeType":"Block","src":"2278:692:32","nodes":[],"statements":[{"expression":{"id":49346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49342,"name":"deploymentOutfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49335,"src":"2288:17:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49343,"name":"Config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50917,"src":"2308:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Config_$50917_$","typeString":"type(library Config)"}},"id":49344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2315:17:32","memberName":"deploymentOutfile","nodeType":"MemberAccess","referencedDeclaration":50557,"src":"2308:24:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":49345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2308:26:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2288:46:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":49347,"nodeType":"ExpressionStatement","src":"2288:46:32"},{"expression":{"arguments":[{"hexValue":"57726974696e6720617274696661637420746f202573","id":49351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2356:24:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_4800a45a0f1ae327887a91cd0c6372a17d223ccd978cdac74bb49c517430f18f","typeString":"literal_string \"Writing artifact to %s\""},"value":"Writing artifact to %s"},{"id":49352,"name":"deploymentOutfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49335,"src":"2382:17:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4800a45a0f1ae327887a91cd0c6372a17d223ccd978cdac74bb49c517430f18f","typeString":"literal_string \"Writing artifact to %s\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":49348,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32046,"src":"2344:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$32046_$","typeString":"type(library console2)"}},"id":49350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":24707,"src":"2344:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure"}},"id":49353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49354,"nodeType":"ExpressionStatement","src":"2344:56:32"},{"expression":{"arguments":[{"id":49358,"name":"deploymentOutfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49335,"src":"2436:17:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":49355,"name":"ForgeArtifacts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51994,"src":"2410:14:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ForgeArtifacts_$51994_$","typeString":"type(library ForgeArtifacts)"}},"id":49357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2425:10:32","memberName":"ensurePath","nodeType":"MemberAccess","referencedDeclaration":51993,"src":"2410:25:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":49359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2410:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49360,"nodeType":"ExpressionStatement","src":"2410:44:32"},{"assignments":[49362],"declarations":[{"constant":false,"id":49362,"mutability":"mutable","name":"chainId","nameLocation":"2473:7:32","nodeType":"VariableDeclaration","scope":49400,"src":"2465:15:32","stateVariable":false,"st